ftp upload

Könnt ma den preg_match Befehl noch um jpg erweitern ? sorry aber mit regulären Ausdrücken kann ich überhaupt nix anfangen :D. Kann mir da jemand helfen ?

mfg lomo
 
Also jpeg und gif geht. Aber wenn ich versuch ein jpg (ohne e :)) hochladen will geht des nicht. Bringt dann trotzdem die Meldung, dass es nur gif und jpeg sein darf. Aber png währe auch super wenns dabei währe :D
 
Das von mir vorgeschlagene Skript überprüft nicht etwa die Endung der Datei – was mglicherweise deine Vermutung ist –, sondern den vom User Agent übermittelten MIME- oder auch Media-Typ. Und diese lautet bei JPEG-Grafiken üblicherweise image/jpeg oder auch seltener image/pjpeg (für progressive JPEGs). Demnach sollte eigentlich keine Probleme bei der Überprüfung von richtigen JPEG-Grafiken geben.


Ich habe nun meinen Vorschlag nochmals überarbeitet. Ich hoffe, nun funktioniert alles reibungslos.
 
Eigenartig egal was ich für ein Bild hoch lade es kommt immer die Fehlermeldung: "Die Grafik muss eine GIF,PNG oder JPEG-Datei sein!".

Hier mal mein aktueller Code:

PHP:
					if(isset($_POST['Bild']) && $_FILES['Bild']['error'] !== UPLOAD_ERR_OK) 
					{ 
						$comzeichen = 0; 
						if( !(bool)preg_match('/^image\x2F(gif|p?jpeg|png|jpg)$/i',$_FILES['Bild']['type'])) { 								
							echo '<br />&nbsp;<span class="Warntext">Die Grafik muss eine GIF,PNG oder JPEG-Datei sein!</span>'; 
							$comzeichen = 1; 
							unset($_POST['Bild']);
						} 
						if( $_FILES['Bild']['size'] > 400000 ) { 
							echo '<br />&nbsp;<span class="Warntext">Die Grafik darf nicht größer als 4 MB sein!</span>'; 
							$comzeichen = 1; 
							unset($_POST['Bild']);
						} 
					}


Was auch noch ein Problem ist. Das Bild hochladen ist nur optional weil man kann auch noch text erfassen aber die Abfrage isset($_POST['Bild']) bringt irgendwie nix.


Wisst ihr vielleicht was ich da machen könnte ?

mfg lomo
 
Zuletzt bearbeitet:
Könnt ihr mir vielleicht in folgenden Sachen noch helfen ?

-> Wenn der User kein Bild auswählt soll er keine Fehlermeldung bringen. Bild = "optional"

-> Wie kann ich noch einbauen, das er bei der automatischen Umbenennung der Datei beim hochladen auch den richtigen Dateityp zuweiset ? (im moment macht er jpeg)

Hier mal der komplette Code:

PHP:
<?
	session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>

<?php
	function datenbank_verbinden($username,$password,$database)
	{
		$connection = mysql_connect("xxx",$username,$password);
		
		if ($connection)
		{
			// Erfolgreich mit Server verbunden
			mysql_select_db($database,$connection); // Wählt eine Datenbank aus
		}
		else
		{
			echo "Konnte keine Verbindung zur Datenbank herstellen";
		}
		return $connection;
	}
?>

<?	
	function datenbank_schreiben($db)
	{
		$Reg_Uhrzeit = date('s:i:H');
		$Reg_Datum = date('Y-m-d');
		
		if (trim($_POST['Datum']) != '')
		{
			$Datum_Am = date("Y-m-d", strtotime($_POST['Datum']));
		}

		$temp_fund = strlen($_POST['PLZ']);
		$temp_ort[1] = trim(substr($_POST['PLZ'],0,$temp_fund));
		
		$query = "select * from parameter_plz where PLZ like '".$temp_ort[1]."'";
		$rs2 = mysql_query($query,$db);
		$objekt = mysql_fetch_object($rs2);
		
		$comzeichen = 0;
		
		if (isset($_POST['Bild']))
		{
			$ftp_id = ftp_connect("xxx");
			$ftp_login = ftp_login($ftp_id,"xxx","xxx");
			
			if($ftp_id || $ftp_login)
			{
				$query = "select * from schnaeppchen_registrierung order by Index1 desc";
				$rs = mysql_query($query);
				if ($rs)
				{
					$objekt = mysql_fetch_object($rs);
					$Index = $objekt->Index1 + 1;
				}
				
				if ($Index==0){
					$Index=1;
				}
				
				$remote_adress = "/usr/www/users/msbcl/www2/kunden/schnaeppchen_bilder/".$_SESSION['User_KDNR']."_".$Index.".jpeg";				
				$upload = ftp_put($ftp_id,$remote_adress,$_POST['Bild'], FTP_BINARY); 
	
				if (!$upload) 
				{ 
						echo "Ftp upload war fehlerhaft!";
						$comzeichen = 1;
				}
				else 
				{
						$comzeichen = 0;
						$remote_adress = str_replace("/usr/www/users/msbcl","",$remote_adress);
				}
			}
			ftp_close($ftp_id);
		}
		
		if ($comzeichen = 0)
		{
			$query = "INSERT INTO kunden_schnaeppchen_registrierung 
							(Produkt,Datum_bis,Ort,Beschreibung,Registrierungs_Datum,Registrierungs_Uhrzeit,KDNR,PLZ,Bundesland,Bezirk,Landkreis,LKZ,Strasse,Preis,Bild) 
						VALUES 
							('{$_POST['Schnaeppchen']}', '$Datum_Am', '{$_POST['Ort']}', '{$_POST['Beschreibung']}','$Reg_Datum','$Reg_Uhrzeit','{$_SESSION['User_KDNR']}', '$objekt->PLZ', '$objekt->Bundesland', '$objekt->Bezirk', '$objekt->Landkreis', '$objekt->LKZ', '{$_POST['Strasse']}', '{$_POST['Preis']}'), '$remote_adress')";
			
			$rs = mysql_query($query,$db);
			
			if ($rs)
			{
				echo '<table width="100%" bgcolor="#E0F2FF"><tr><td align="center"><span class="Warntext">Ihr Eintrag ist erfolgreich eingetroffen und wird baldmöglichst bearbeitet</span></td></tr></table>';
				echo '<br />';
				unset($_POST);
			}
			else
			{
				echo mysql_error($db);
			}
		}
	}
?>

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Schn&atilde;ppchen - Neuerfassung</title>

<link href="csf.css" rel="stylesheet" type="text/css">

</head>

<body>


<table width="100%" cellpadding="0" cellspacing="0">
  <tr>
    <?
	echo '<td class="Ueberschrift_Suchergebniss">Aktuell: 
	<a class="Ueberschrift_Suchergebniss" href="Kundenbereich_Startseite.php" target="hauptframe">Kundenbereich</a> / 
	<a class="Ueberschrift_Suchergebniss" href="#" target="hauptframe">Schn&atilde;ppchen Neuerfassung</a></td>';
	
	?>
	<td align="right">
		<a class="Ueberschrift_Suchergebniss" href="javascript:history.back()">Schritt zurück</a>
	</td>
  </tr>
</table>
	<? 
		echo '<hr width="100%" noshade color="#BAE1F7">';
	?>

<table width="100%">
<tr>
<td align="center" valign="top">
 <table width="700" border="0">
  <tr>
   <td width="10" height="10" background="images/Rahmen_oben_links.jpg"></td>
   <td height="10" background="images/Rahmen_oben.jpg"></td>
   <td width="10" height="10" background="images/Rahmen_oben_rechts.jpg"></td>
  </tr>
  <tr>
	<td width="10" background="images/Rahmen_links.jpg"></td>	
	<td align="center" valign="top">

	<table width="100%" bgcolor="#E0F2FF" border="0" cellpadding="0" cellspacing="0">
	  <tr>
	    <td align="center">&nbsp;</td>
	    </tr>
	  <tr>
		<td align="center"><span class="Ueberschriften">Schn&atilde;ppchen Neuerfassung</span></td>
	  </tr>
	  <tr>
		<td align="center">&nbsp;</td>
	  </tr>
	  <tr>
		<td bgcolor="#E0F2FF">
			<div align="left">
			<?
				error_reporting("E_NOTICE");
				
				if ($_POST['submit'])
				{	 
					$comzeichen = 0;
				
					if (!$_POST['Schnaeppchen'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte ein Schn&atilde;ppchen eingeben</span>';
							$comzeichen = 1;
					}
					
					if (!$_POST['Datum'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte ein Datum eingeben</span>';
							$comzeichen = 1;
					}
					
					if (!$_POST['Beschreibung'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte eine Beschreibung eingeben</span>';
							$comzeichen = 1;
					}
					
					if (!$_POST['Preis'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte einen Preis eingeben</span>';
							$comzeichen = 1;
					}
					
					if(isset($_POST['Bild']) && $_FILES['Bild']['error'] !== UPLOAD_ERR_OK) 
					{ 
						$comzeichen = 0; 
						if( !(bool)preg_match('/^image\x2F(gif|p?jpeg|png|jpg)$/i',$_FILES['Bild']['type'])) { 								
							echo '<br />&nbsp;<span class="Warntext">Die Grafik muss eine GIF,PNG oder JPEG-Datei sein!</span>'; 
							$comzeichen = 1; 
							unset($_POST['Bild']);
						} 
						if( $_FILES['Bild']['size'] > 400000 ) { 
							echo '<br />&nbsp;<span class="Warntext">Die Grafik darf nicht größer als 4 MB sein!</span>'; 
							$comzeichen = 1; 
							unset($_POST['Bild']);
						} 
					} 
					
					if (!$_POST['PLZ'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte eine PLZ w&atilde;hlen</span>';
							$comzeichen = 1;
					}
					
					if (!$_POST['Ort'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte einen Ort eingeben</span>';
							$comzeichen = 1;
					}
					
					if (!$_POST['Strasse'])
					{
							echo '<br />&nbsp;<span class="Warntext">Bitte eine Strasse eingeben</span>';
							$comzeichen = 1;
					}
					
					if ($comzeichen == 0)
					{
						$db = datenbank_verbinden("xxx","xxx","xxx");
						datenbank_schreiben($db);
						mysql_close($db);
					}
				}
			?>
			</div>
		</td>
	  </tr>
	 </table>
	<table width="100%" bgcolor="#E0F2FF" border="0">
	  <tr>
		<td align="left" valign="center" class="Text_Fett" width="130"><form name="form1" method="post" action="<? $_SERVER['PHP_SELF']?>">
Schn&atilde;ppchen:</td>
		<td align="left" valign="center"><input name="Schnaeppchen" type="text" class="Textfelder" id="Schnaeppchen" value="<? echo $_POST['Schnaeppchen'];?>" size="88" maxlength="200" tabindex="1">
		*</td>
	    </tr>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">G&uuml;ltig bis:</td>
		<td align="left" valign="center"><input name="Datum" type="text" class="Textfelder" id="Datum" value="<? echo $_POST['Datum'];?>" size="20" maxlength="20" tabindex="2">
		*</td>
	  </tr>
	  <tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	  </tr>
	  <tr>
		<td align="left" valign="top" class="Text_Fett">Beschreibung:</td>
		<td align="left" valign="top"><textarea name="Beschreibung" cols="90" rows="10" class="Textfelder" id="Beschreibung" type="text" tabindex="3"><? echo $_POST['Beschreibung'];?></textarea> *
		</td>
	  </tr>
	  <tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	  </tr>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">Preis:</td>
		<td align="left" valign="center"><input name="Preis" type="text" class="Textfelder" id="Preis" value="<? echo $_POST['Preis'];?>" size="20" maxlength="20" tabindex="6">
		* (inkl. MWST)</td>
	  <tr>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">Bild: </td>
		<td align="left" valign="center"><input name="Bild" type="file" class="Textfelder" id="Bild" size="50"></td>
	  </tr>
	  <tr>
		<td>&nbsp;</td>
		<td>&nbsp;</td>
	  </tr>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">PLZ:</td>
		<td align="left" valign="center">
		<select name="PLZ" id="PLZ" class="Textfelder">
		<?php
			$db = datenbank_verbinden("xxx","xxx","xxx");
			$query = 'select distinct PLZ  from parameter_plz order by PLZ asc';
			$rs = mysql_query($query,$db);
			
			if ($rs)
			{
				echo '<option selected>'.($_POST['PLZ']).'</option>';
				while($objekt = mysql_fetch_object($rs))
				{
					if ($objekt->PLZ != '')
					{
						echo '<option>'.$objekt->PLZ.'</option>';
					}
				}
			}
			else
			{
				echo mysql_error($db);
			}
			mysql_close($db);
		 ?>
		</select> *</td>
	  </tr>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">Ort:</td>
		<td align="left" valign="center"><input name="Ort" type="text" class="Textfelder" id="Ort" value="<? echo $_POST['Ort'];?>" size="50" maxlength="50" tabindex="6">
		*</td>
	  <tr>
		<td align="left" valign="center" class="Text_Fett">Strasse:</td>
		<td align="left" valign="center"><input name="Strasse" type="text" class="Textfelder" id="Strasse" value="<? echo $_POST['Strasse'];?>" size="50" maxlength="50" tabindex="6">
		*</td>
	  </tr>
	 </table>
	<table width="100%" bgcolor="#E0F2FF" cellpadding="0" cellspacing="0">
	  <tr align="left" valign="top">
		<td height="10" background="images/Rahmen_oben.jpg"></td>
	  </tr>
	</table>
	 <table width="100%"  border="0"  bgcolor="#E0F2FF" >
	  <tr>
		<td align="center">&nbsp;</td>
	  </tr>
	  <tr>
		<td align="center">
				<input name="submit" type="submit" id="submit" value="Schn&auml;ppchen Senden" tabindex="7">
		</form></td>
	  </tr>
	</table>

	</td>
	   <td width="10"  background="images/Rahmen_rechts.jpg"></td>
	  </tr>
	  <tr>
	   <td height="10" width="10" background="images/Rahmen_unten_links.jpg"></td>
	   <td height="10" background="images/Rahmen_unten.jpg"></td>
	   <td height="10" width="10" background="images/Rahmen_unten_rechts.jpg"></td>
	  </tr>
	</table>
	</td></tr></table>
	
 <table width="100%">
  <tr>
   <td align="center"><span class="Text_Verkleinert">Alle mit * gekennzeichneten Felder sind Pflichtfelder</span></td>
  </tr>
 </table>

	<? 
		echo '<hr width="100%" noshade color="#BAE1F7">';
	?>

</body>
</html>

hab den fehler gefunden hab in <form> des vergessen: enctype="multipart/form-data"
 
Zuletzt bearbeitet:
Zurück