| PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here! |
 |

24-09-2009, 15:14
|
|
Rey
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 20
|
|
Uploadscript seite bleibt weis
hi,
bin dabei ein Uploadscript zu basteln es sollen nur bestimmte datei typen zugelassen werden, wenn eine datei mit dem selben Namen schon vorhanden ist soll diese umbennent werden z.B. Datei test.png, jemand anders hat auch eine datei mit dem selben namen jedoch anderen inhalt.
also soll die zweite datei dann test1.png heißen eine dritte test3.png etc.
sobald die datei hochgeladen wurde sollen die ganzen Informationen in eine Datenbank geschrieben werden.
File size
imagesize
pfad.
aber mein Problem ist es wird gar nichts angezeigt.
PHP-Code:
<html>
<head> <title>UPLOAD</title> </head>
<body> <?php if(isset($_FILES["file"])) { switch($_FILES['file']['type']) { case "image/png" : $error = false; $endung = "png"; break; case "image/jpeg" : $error = false; $endung = "jpg"; break; case "image/tiff" : $error = false; $endung = "tiff"; break; case "image/jpeg" : $error = false; $endung = "jpeg"; break; default : $error = true; break; } if(!$error) { if(file_exists($_FILES['file']['name'] )){ $verzeichnis="http://www.php-resource.de/forum/images/"; $dateiname=$_FILES['file']['name']."{NeueNummer}"; $n_nummer=1; $a_nummer=array(); $verzeichnisoffen=opendir($verzeichnis); while($datei = readdir($verzeichnisoffen)) { $match=str_replace("{NeueNummer}", "(.*)", $dateiname); preg_match("/" . $match . $endung . "/Uis", $datei, $array_datei); if(!empty($array_datei[1])) { $a_nummer[]=$array_datei[1]; } } closedir($verzeichnisoffen); if(count($a_nummer)>=1) { $n_nummer=max($a_nummer)+1; // } $dateiname=str_replace("{NeueNummer}", $n_nummer . $endung, $dateiname); if(!@move_uploaded_file($_FILES["file"]["tmp_name"], $verzeichnis . $dateiname)) { echo "Es gab einen Fehler<br> Bitte einen weiteren versuch starten!" } } } else{ if(move_uploaded_file($_FILES['file']['tmp_name'], "http://www.php-resource.de/forum/images/".htmlspecialchars(basename($_FILES['file']['name'] )))) { $dateiname=htmlspecialchars(basename($_FILES['file']['name']; echo "<br /><font color=green><b>Die Datei (".htmlspecialchars(basename($_FILES['file']['name'] )).") wurde erfolgreich hochgeladen</b></font><br />"; } else{ echo "<br /><font color=red><b>Es gab einen Fehler beim Hochladen der Datei: (".htmlspecialchars(basename($_FILES['file']['name'] )).")</b></font><br />"; }
} } /* $pfad = $dateiname; $format=getimagesize($pfad); $fielsize=filesize($pfad); redirect("uploadimage-2.php&path=".$pfad."&format=".$format."&filesize=".$filesize."","",0); */ ?> Hier haben Sie die Moeglichkeit ein Bild hochzuladen. Es sind nur Grafiken erlaubt die das Format: gif, jpg, jpeg, jpe oder png haben! <form method="POST" action="<?php echo $PHPSELF; ?>" enctype="multipart/form-data"> <p>Datei upload:<br> <input type="file" name="file" size="60"><br> <input type="submit" name="Upload" value="Upload" /> </form>
</body>
</html>
|

24-09-2009, 15:23
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
@ vor Funktionsaufrufen rauswerfen;
error_reporting auf E_ALL und display_errors auf on stellen, wenn nicht bereits geschehen.
Kontrollausgaben machen, eventuellen Fehlercode des Uploads auswerten.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

24-09-2009, 15:33
|
|
Rey
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 20
|
|
error reporting und error display hatte ich drinnen aber wurde mir auch nichts angezeigt.
ich vermute es liegt an irgend etwas dieses blockes
PHP-Code:
if(file_exists($_FILES['file']['name'] )){ $verzeichnis="http://www.php-resource.de/forum/images/"; $dateiname=$_FILES['file']['name']."{NeueNummer}"; $n_nummer=1; $a_nummer=array(); $verzeichnisoffen=opendir($verzeichnis); while($datei = readdir($verzeichnisoffen)) { $match=str_replace("{NeueNummer}", "(.*)", $dateiname); preg_match("/" . $match . $endung . "/Uis", $datei, $array_datei); if(!empty($array_datei[1])) { $a_nummer[]=$array_datei[1]; } } closedir($verzeichnisoffen); if(count($a_nummer)>=1) { $n_nummer=max($a_nummer)+1; // } $dateiname=str_replace("{NeueNummer}", $n_nummer . $endung, $dateiname); if(!move_uploaded_file($_FILES["file"]["tmp_name"], $verzeichnis . $dateiname)) { echo "Es gab einen Fehler<br> Bitte einen weiteren versuch starten!" } } }
wieso wird die URL http://www.php-resource.de/forum/images/ ausgegeben?
im quellcode steht "images/"...
bug im forum BB code
Geändert von Rey (24-09-2009 um 15:43 Uhr)
|

24-09-2009, 15:35
|
wahsaga
 Moderator
|
|
Registriert seit: Sep 2001
Beiträge: 24.486
|
|
Zitat:
Zitat von Rey
error reporting und error display hatte ich drinnen aber wurde mir auch nichts angezeigt.
|
Toll, damit bist du auf genau einen der Punkte, die ich angesprochen hatte, eingegangen!
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
|

24-09-2009, 16:18
|
|
Rey
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 20
|
|
das @ hatte ich auch mal rausgenommen,
und den anderen punkt verstehe ich nicht. zumal wie gesagt ich nicht einmal das formular sehe
|

24-09-2009, 16:30
|
AmicaNoctis
 Moderatorin
|
|
Registriert seit: Jul 2009
Beiträge: 5.550
|
|
Benutze Kommentare, um Teile des Codes zu deaktivieren. Achte dabei darauf, dass bei Blöcken ({...}) immer beide Klammern entweder aktiv oder auskommentiert sind. Mach das solange, bis das Formular angezeigt wird. Dann hast du die fehlerhaft Stelle eingegrenzt und kannst sie sukzessive noch weiter eingrenzen.
Trotzdem kann ich mir nicht vorstellen, dass dir keine Fehler angezeigt werden. Hast du error_reporting und display_errors auch richtig benutzt?
Gruß,
Amica
|

24-09-2009, 16:56
|
|
Rey
Registrierter Benutzer
|
|
Registriert seit: Apr 2006
Beiträge: 20
|
|
hm das ist dumm gelaufen nun weiß ich das die komplette file exist falsch ist ;/
und ja meines wissens hatte ich die richtig eingesetzt.
ich hatte diese zeile am anfang des php dokuments eingefügt
error_reporting(E_ALL);
ini_set('display_errors', 1);
|

24-09-2009, 17:38
|
|
PHP-Desaster
PHP Expert
|
|
Registriert seit: Mar 2006
Beiträge: 3.104
|
|
file_exists($_FILES['file']['name'])
ist doch eh Blödsinn, der Dateipfad steht in tmp_name (siehe auch dein move_uploaded_file-Aufruf).
|
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
|
| Themen-Optionen |
|
|
| Thema bewerten |
|
|
Forumregeln
|
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.
HTML-Code ist aus.
|
|
|
|
PHP News
|