preg_match klappt nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
anzeigen
bild
byte
datei
dateiname
daten
exit
fehler
fehlermeldung
format
formular
image
insert
kodierung
leere datei
mimen
ordner
speicher
stehen
wallpaper
-
Hi,
dieser Script soll testen, ob die Hochgeladene Datei ein jpg oder ein gif ist. Aber selbst wenn ich ein jpeg oder ein gif hochlade, ich bekomme immer eine Fehlermeldung. Was ist falsch?
if(!preg_match("/.+\.(jpeg|jpg|gif)$/i",$_FILES["datei"]["type"])) { header ("Location: new_pics.php?format=1"); exit; }
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
und was jetzt alopex???
-
moul schrieb:
und was jetzt alopex???
ok, ich bin nicht alopex, aber egal
Jetzt kannst Du den Mime-Type untersuchen:
<?
$mime = $_FILES["datei"]["type"];
printf("[[%s]]<br />", $_FILES["datei"]["type"]);
if($mime == "image/jpeg")
{
print("Das Bild ist vom Typ ". $mime);
}
elseif($mime == "image/gif")
{
print("Das Bild ist vom Typ ". $mime);
}
else
{
print("Das Bild ist vom Typ her weder gif noch jpeg!");
}
?>
-
danke so hat es geklappt
-
ich habe jetzt meinen Script erweiter, so das der Pfad eigentlich in einer Db gespeichert wird. Zus?tzlich kann man auch einen Titel schreiben und einen bereich ausw?hlen. Aber es kommt wieder das ich nur jpg daten hochlden kann obwohl es jpg ist. Wo ist der fehler?
hier mal das Formular:
<form action="save_pic.php" method="post" enctype="multipart/form-data"> <br><br> <div style="margin-left:85px"> <table> <tr> <td>Titel: </td><td><input type="text" name="title" size="42"></td> </tr> <tr> <td>Pic oder Wallpaper: </td><td><input name="datei" type="file"></td> </tr> <tr> <td>Katigorie</td> <td> <?php if (isset ($_REQUEST["choose"])) { echo "<span style=\"color:red\"><b>Bitte eine Katigorie ausw?hlen!</b></span>"; }?> <select name="type"> <option value="0">Bitte w?hlen... </option> <option value="Wallpaper">Wallpaper</option> <option value="Pics">Pics</option> </select></td> </tr> <tr> <td> </td> <td><input type="submit" value="Upload" name="senden"></center></td></tr> </table></div> </form>
und hier mal das andere scrip zum speichern:
<?php // Der Ordner, in den die Bilder hochgeladen werden sollen $bilder_ordner = "bilder/"; $katigorie = $_POST['type']; $title = $_POST['title']; if($katigorie == '0') { header ("Location: new_pics.php?choose=1"); exit; } // Dateiname leer? if($_FILES["datei"]["name"] == "") { header ("Location: new_pics.php?fehler=1"); exit; } // Tempor?rer Dateiname leer? if($_FILES["datei"]["tmp_name"] == "") { header ("Location: new_pics.php?fehler2=1"); exit; } // Leere Datei? if($_FILES["datei"]["size"] == 0) { header ("Location: new_pics.php?fehler3=1"); exit; } // Datei gr??er als 10000 Byte? if($_FILES["datei"]["size"] > 1572864) { header ("Location: new_pics.php?fehler4=1"); exit; } // jpg oder gif Datei? $mime = $_FILES["datei"]["type"]; if($mime == "image/jpeg" || $mime == "image/gif" || $mime == "image/jpg") { include ('verbindung.php'); $pfad = $bilder_ordner .$_FILES["datei"]["name"]; mysql_query("INSERT INTO wallpaper (title, pfad, bereich) VALUES('$title', '$pfad', '$bereich')") or die(mysql_error()); // In den Bilderordner verschieben move_uploaded_file($_FILES["datei"]["tmp_name"], $bilder_ordner .$_FILES["datei"]["name"]); // Wo ist die Datei jetzt? -> Pfad ausgeben header ("Location: new_pics.php?fertig=1"); } else { header ("Location: new_pics.php?format=1"); exit; } ?>
-
^danke Problem hat sich erledigt
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage