Webhilfe.info/board

Normale Version: upload
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
ich wollte 4 bilder per formular hochladen, aber es klappt nicht mal bei einem. Er sagt mir immer falsche datei (auch wenn es die richtige ist) oder es ist niergends auf dem webspace zu finden Mad
es sollte maximal 1 mb pro bild groß sein und nur bild dateien erlaubt sein
PHP-Code:
<?php

if($_POST[show]==1) {
 
$fehler="";
strip_tags  ($_POST[nick]);
strip_tags  ($_POST[mail]);
strip_tags ($_POST[passwort]);
strip_tags  ($_POST[passwort2]);
if(!
$_POST[nick]) { $fehler .= "Sie müssen einen Nickname eingeben. <br />";}
if(!
$_POST[mail]) { $fehler .= "Sie müssen eine eMail adresse eingeben. <br />";}
if(!
$_POST[passwort]) { $fehler .= "Sie müssen ein Passwort eingeben. <br />";}
if(!
$_POST[passwort2]) { $fehler .= "Sie müssen das passwort wiederholen eingeben. <br />";}
if(
$_POST[passwort] != $_POST[passwort2]) { $fehler .= "Sie müssen 2 gleiche Passwöter eingeben. <br />";}
if(!
$_POST[persov]) { $fehler .= "1. <br />";}
if(!
$_POST[person]) { $fehler .= "2. <br />";}
if(!
$_POST[nachv]) { $fehler .= "3. <br />";}
if(!
$_POST[nachn]) { $fehler .= "4. <br />";}
}
if(
$_POST[show]==AND $fehler=="") {
//speichern per FTP

$temp_name $_FILES['persov']['tmp_name']; 
$name $_FILES['persov']['name']; 
$type $_FILES['persov']['type']; 
$size $_FILES['persov']['size']; 
$pfad "./test/$name"
$er_size "10"

if(
$type != "image/gif" && $type != "image/pjpeg" && $type != "image/jpeg") { 
$err[] = "Es dürfen nur .gif und .jpeg Dateien dürfen hochgeladen werden."


if(
$size $er_size 1024) { 
$err[] = "Ihre Datei überschreitet die maximale Dateigrosse von $er_size KB."


if(empty(
$err)) { 
copy("$temp_name"$pfad); 
echo 
"Ihre Datei wurde erfolgreich geuploadet."

else { 
foreach(
$err as $error
echo 
$error."<br />"


///
} else {
//ausgeben der Fehlermeldung und des Formulares
 
if($fehler!="") { echo "<font color=red>".$fehler."</font><P>"; }
?>
<form  name="form1" action="anmeldung_18.php" method="post">
<input type="hidden"  name="show" value="1" size="20" />
Gewünschter Name:<input type="text"  name="nick" size="20" value="<?php echo $_POST[nick]; ?>" /><br />
eMail Adresse:<input type="text"  name="mail" size="20" value="<?php echo $_POST[mail]; ?>" /><br />
Gewünschtes Passwort: <input type="password"  name="passwort" size="20" value="<?php echo $_POST[passwort]; ?>" /><br />
Passwort Wiederholen: <input type="password"  name="passwort2" size="20" value="<?php echo $_POST[passwort2]; ?>" /><br />
bild 1: <input type="file" name="persov" size="20"  /><br />
bild 2: <input type="file"  name="person" size="20"  /><br />
bild 3: <input type="file"  name="nachv" size="20"  /><br />
bild 4: <input type="file"  name="nachn" size="20"  /><br />
<input type="submit" class="button" name="send" value="Abesenden" />
  </form>
<?php ?>
Hallo !

Ich bin mir nicht ganz sicher, ob das der Fehler ist, aber du sagst, dass nur .gif und .jpeg hochgeladen werden dürfen.

Manchmal habe Bilder aber nur die Endung .jpg . Laut Script ist das dann aber verboten.


Möglich, dass das der Fehler ist.



Ein anderer beliebter Fehler ist, dass der Ordner auf dem Webserver die falschen schreibrechte hat.



Hoffe dir geholfen zu haben.


Gruß

Sam


PS: Falls nein, dann warte bis die Profis wieder online gehen Biggrin
Zitat:PS: Falls nein, dann warte bis die Profis wieder online gehen
Danke, ich fühle mich geehrt. Wink

@xcoder: Ich habe mir erlaubt, dein Script ein wenig umzuschreiben und etwas hinzuzufügen.
Als ich in deinem Script mal alle Fehler, Warnungen und Meldungen anzeigen lies, bekam ich eine längere Liste mit Fehlern welche ich beseitigt habe. Hier erstmal das Script wie es funktionieren müsste, zumindest funzt es bei mir.
PHP-Code:
<?php
error_reporting
(E_ALL);

if(isset(
$_POST['send']))
{
  
$fehler="";

  
strip_tags  ($_POST['nick']);
  
strip_tags  ($_POST['mail']);
  
strip_tags ($_POST['passwort']);
  
strip_tags  ($_POST['passwort2']);
  if(empty(
$_POST['nick'])) { $fehler .= "Sie müssen einen Nickname eingeben. <br />";}
  if(empty(
$_POST['mail'])) { $fehler .= "Sie müssen eine eMail adresse eingeben. <br />";}
  if(empty(
$_POST['passwort'])) { $fehler .= "Sie müssen ein Passwort eingeben. <br />";}
  if(empty(
$_POST['passwort2'])) { $fehler .= "Sie müssen das passwort wiederholen eingeben. <br />";}
  if(
$_POST['passwort'] != $_POST['passwort2']) { $fehler .= "Sie müssen 2 gleiche Passwöter eingeben. <br />";}
  if(empty(
$_FILES['persov']['name'])) { $fehler .= "1. <br />";}
  if(empty(
$_FILES['person']['name'])) { $fehler .= "2. <br />";}
  if(empty(
$_FILES['nachv']['name'])) { $fehler .= "3. <br />";}
  if(empty(
$_FILES['nachn']['name'])) { $fehler .= "4. <br />";}
}

if(isset(
$_POST['send']) and empty($fehler))
{
//speichern per FTP

  
$temp_name $_FILES['persov']['tmp_name'];
  
$name $_FILES['persov']['name'];
  
$type $_FILES['persov']['type'];
  
$size $_FILES['persov']['size'];
  
$pfad "./test/$name";
  
$er_size "10";

  if((
$type != "image/gif") && ($type != "image/pjpeg") && ($type != "image/jpeg")) {
    
$err[] = "Es dürfen nur .gif und .jpeg Dateien dürfen hochgeladen werden.";
  }

  if(
$size $er_size 1024) {
    
$err[] = "Ihre Datei überschreitet die maximale Dateigrosse von $er_size KB.";
  }

  if(empty(
$err)) {
    
copy("$temp_name"$pfad);
    echo 
"Ihre Datei wurde erfolgreich geuploadet.";
  }
  else {
    foreach(
$err as $error)
    echo 
$error."<br />";
  }

///
} else {
//ausgeben der Fehlermeldung und des Formulares
 
if(!empty($fehler)) {
   echo 
"<font color=red>".$fehler."</font><P>";
 }

 
$nick = isset($_POST['nick']) ? $_POST['nick'] : '';
 
$email = isset($_POST['mail']) ? $_POST['mail'] : '';
 
$pw1 = isset($_POST['passwort']) ? $_POST['passwort'] : '';
 
$pw2 = isset($_POST['passwort2']) ? $_POST['passwort2'] : '';
?>
<form  name="form1" action="anmeldung_18.php" method="post" enctype="multipart/form-data">
Gewünschter Name:<input type="text"  name="nick" size="20" value="<?php echo $nick?>" /><br />
eMail Adresse:<input type="text"  name="mail" size="20" value="<?php echo $email?>" /><br />
Gewünschtes Passwort: <input type="password"  name="passwort" size="20" value="<?php echo $pw1?>" /><br />
Passwort Wiederholen: <input type="password"  name="passwort2" size="20" value="<?php echo $pw2?>" /><br />
bild 1: <input type="file" name="persov" size="20"  /><br />
bild 2: <input type="file"  name="person" size="20"  /><br />
bild 3: <input type="file"  name="nachv" size="20"  /><br />
bild 4: <input type="file"  name="nachn" size="20"  /><br />
<input type="submit" class="button" name="send" value="Abesenden" />
  </form>
<?php ?>
Was habe ich alles gemacht?! Als erstes hab ich ganz oben error_reporting(E_ALL); hingeschrieben damit mir das Script alle Fehler ausgibt.

Als nächstes habe ich in deinem Formular, das versteckte Eingabefeld gelöscht. Ich weiß, dass in Büchern drinnen steht, dass man dieses benötigt um zu wissen wann ein Formular abgeschickt wurde, dies geht aber auch mit dem submit-Button selber. Ich habe also statt "if($_POST[show] == 1" den submit-Button abgefragt.

Dein nächster Fehler bzw. Problem war, dass du fragtest ob die Variable $_POST[show] == 1 sei, kann sie aber nur sein wenn das Formular abgeschickt wurde. Vorher gibt es eine Meldung die nur durch das error_reporting(E_ALL); angezeigt wird.

Dann habe ich in deinem Formular ein paar Veränderungen vorgenommen. Immer wenn das Formular aufgerufen wurde, sollte das Script bei value einen Wert reinschreiben den es erst dann gibt wenn das Formular abgeschickt wurde. Ist es noch nicht abgeschickt worden, so gibt es diese Variablen natürlich noch nicht. Hier habe ich eine kleine Erweiterung eingefügt.

Nun kommen wir zu dem Hauptproblem. Da du Bilder hochladen willst und im Formular die entsprechenden Felder type="file" gewählt hast, kannst du nicht fragen ob $_POST['file1'] == '' ist. Du musst das mit dem Array $_FILES machen. Dies habe ich geändert. Nun wird auch nicht mehr die Variable $fehler gesetzt obwohl alle Bilder angegeben wurden.

Rechtschreibung bzw. Satzbau habe ich außer acht gelassen, dass ist nicht meine Aufgabe. Wink

Ich hoffe das du verstanden hast was ich versucht habe zu erklären und hoffe, dass das Script auch bei dir funzt. Wenn nicht denke an die Schreibrechte.

PS: Kleiner Tipp noch zum Schluss. Schreibe am Anfang deines Scriptes immer error_reporting(E_ALL);, damit kannst du selber auch viele Fehler herausfinden.
danke schön für deine hilfe
Hat es denn geklappt?
Hallo !

Das ist ein guter Tipp, das mache ich auch immer und es ersparrt einem viel Nerven.

Also, am besten immer so ein Dukument anfangen:
PHP-Code:
<?php
    error_reporting
(E_ALL);
    
    
//weiterer Code

?>


Gruß

Sam
Referenz-URLs