PHP Problem - upload
|
Verfasser |
Nachricht |
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
PHP Problem - upload
Mahlzeit,
habe folgendes Problem :
Unzwar möchte ich, dass durch ein Formular ein Bild hochgeladen wird, nat. wird es erst auf Größe, auf Maße und Endung überprüft.
Dann soll die Variable in die DB geschrieben werden, damit man nacher auf das hochgeladene Bild wieder zugreifen kann. Nur irgendwie stoppt es nach dem überprüfen immer
Das Formular :
echo "<form ". " name=\"Avatar\" ". " action=\"system/checkbearbeiten-avatar-upload.php\" ". " method=\"post\" ". " enctype=\"multipart/form-data\" ". " accept-charset=\"ISO-8859-1\">\n"; echo "<span style=\"font-weight:bold;\" ". " title=\"max. 20kb\nmax 150x150 Pixel\n .jpg .gif oder .png\">\n". "Avatar :\n". "</span>\n"; if($row['Avatar']=='') echo "<br><img alt=\"\" src=\"upload/avatare/default.png\" />"; else echo "<br><img src=\"upload/avatare/".htmlentities($row['Avatar'], ENT_QUOTES)."\">\n"; if($row['Avatar']=='') { echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".(0.02*1024*1024)."\">"; echo "<input name=\"pic\" type=\"file\">\n"; echo "<input class=\"derinput\" type=\"submit\" name=\"submit\" value=\"Avatar hochladen\">\n"; } else echo "<input class=\"derinput\" type=\"submit\" name=\"submit\" value=\"Avatar löschen\">\n"; echo "</form>\n";
Das Script :
<?php session_start();
error_reporting(E_ALL); $MYSQL_HOST = 'localhost'; $MYSQL_USER = 'root'; $MYSQL_PASS = 'passwort'; $MYSQL_DATA = 'flipspot';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error()); mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error()); $sql = "SELECT Avatar FROM User WHERE ID = '".mysql_real_escape_string($_SESSION['UserID'])."' "; $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); $row = mysql_fetch_assoc($result);
// Avatar hochladen if(isset($_POST['submit']) AND $_POST['submit'] == "Avatar hochladen") { $errors = array(); // Uploadfehler prüfen switch ($_FILES['pic']['error']){ case 1: $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist."; break; case 2: $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist."; break; case 3: $errors[] = "Die Datei wurde nur teilweise hochgeladen."; break; case 4: $errors[] = "Es wurde keine Datei ausgewählt."; break; default : break; } // Prüfen, ob eine Grafikdatei vorliegt if(!@getimagesize($_FILES['pic']['tmp_name'])) $errors[] = "Ihre Datei ist keine gültige Grafikdatei."; else { // Mime-Typ prüfen $erlaubte_typen = array('image/pjpeg', 'image/jpeg', 'image/gif', 'image/png' ); if(!in_array($_FILES['pic']['type'], $erlaubte_typen)) $errors[] = "Der Mime-Typ ihrer Datei ist verboten.";
// Endung prüfen $erlaubte_endungen = array('jpeg', 'jpg', 'gif', 'png' ); // Endung ermitteln $endung = strtolower(substr($_FILES['pic']['name'], strrpos($_FILES['pic']['name'], '.')+1)); if(!in_array($endung, $erlaubte_endungen)) $errors[] = "Die Dateiendung muss .jpeg .jpg .gif oder .png lauten ";
// Ausmaße prüfen $size = getimagesize($_FILES['pic']['tmp_name']); if ($size[0] > 150 OR $size[1] > 150) $errors[] = "Die Datei darf maximal 150 Pixel breit und 150 Pixel hoch sein."; } // Dateigröße prüfen if($_FILES['pic']['size'] > 0.2*1024*1024) $errors[] = "Bitte wählen Sie eine Datei aus, die kleiner als 20 KB ist.";
if(count($errors)){ echo "Ihr Avatar konnte nicht gespeichert werden.<br>\n". "<br>\n"; foreach($errors as $error) echo $error."<br>\n"; echo "<br>\n". "Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n"; } else { // Bild auf dem Server speichern $uploaddir = 'upload/avatare/'; // neuen Bildname erstellen $Name = "IMG_".substr(microtime(),-8).".".$endung; if (move_uploaded_file($_FILES['pic']['tmp_name'], $uploaddir.$Name)) { $sql = "UPDATE User SET Avatar = '".mysql_real_escape_string(trim($Name))."' WHERE ID = ".$_SESSION['UserID']." "; mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
echo "Ihr Avatar wurde erfolgreich gespeichert.<br>\n". "Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n"; } else { echo "Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n". "Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n"; } } } // Avatar löschen elseif(isset($_POST['submit']) AND $_POST['submit'] == 'Avatar löschen'){ // Bildname des Avatars aus der Datenbank holen $sql = "SELECT Avatar FROM User WHERE ID = '".$_SESSION['UserID']."' "; $result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); $row = mysql_fetch_assoc($result); // Datei löschen unlink('upload/avatare/'.$row['Avatar']); // Bildname des Avatars als leeren String setzen $sql = "UPDATE User SET Avatar = '' WHERE ID = '".$_SESSION['UserID']."' "; mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error()); echo "Ihr Avatar wurde erfolgreich gelöscht.<br>\n". "Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n"; } ?>
Es stoppt beim speichern des Bildes auf dem Server.
Habe es jetzt schon ca. 1 Stunde probiert und bin nervlich am Ende
Kann mir jmd helfen ? Bin über jede Hilfe dankbar!
mfg
Portfolio: [Link: Registrierung erforderlich]
Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2012 12:01 von Aaron.
|
|
15.05.2012 11:03 |
|
|
Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status:
offline
|
RE: PHP Problem - upload
Kommt ne Fehlermeldung? Schon versucht zu debugen?
Und seit wann gibt man beim Upload kein MimeType mit?
|
|
15.05.2012 11:28 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
RE: PHP Problem - upload
er gibt dies aus :
echo "Es trat ein Fehler auf, bitte versuche es später erneut.<br>\n".
"Zurück zum <a href=\"../index.php?id=profil&uid=" . $_SESSION['UserID'] . "\">Profil</a>\n";
also müsste es davor an der if-Verzweigung liegen, oder ?
Portfolio: [Link: Registrierung erforderlich]
Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
|
|
15.05.2012 11:30 |
|
|
Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status:
offline
|
RE: PHP Problem - upload
1. Schreibrechte auf dem Verzeichnis?
2. Mime Type mitgegeben?
Wenn du beides hast, klappts auch mit dem upload!
|
|
15.05.2012 11:33 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
|
15.05.2012 11:36 |
|
|
Beiträge: 38
Bewertung: 0
Registriert seit: Mar 2012
Status:
offline
|
RE: PHP Problem - upload
Was gibt $_FILES aus?
und noch ne andere Sache...warum loggst du dich per mysql mit root ein?
Dieser Beitrag wurde zuletzt bearbeitet: 15.05.2012 11:44 von coloskopie.
|
|
15.05.2012 11:39 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
|
15.05.2012 12:13 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
RE: PHP Problem - upload
Problem dank dem User "Kokspflanze" gelöst
neues hat sich mit der Zeit aufgetan :
Wenn ich jetzt eine Eingabe von einem Textfeld in der Datenbank speicher, wie erzeuge ich dann, die im Textfeld gemachten Zeilenumbrüche ? Denn diese werden nicht bei der Ausgabe angezeigt
Danke für jede Hilfe!
Portfolio: [Link: Registrierung erforderlich]
Projekte
[Link: Registrierung erforderlich]
[Link: Registrierung erforderlich]
|
|
23.05.2012 07:30 |
|
|
Beiträge: 645
Bewertung: 16
Registriert seit: Jan 2012
Status:
offline
|
|
23.05.2012 08:27 |
|
|
Beiträge: 3.413
Bewertung: 33
Registriert seit: Oct 2010
Status:
offline
|
|
23.05.2012 08:33 |
|
|