Problem mit Upload
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
action
ansehen
bild
byte
count
datei
dateiname
einstellung
erweiterung
extension
falsche erweiterung
fan
fehler
hochladen
mache
mimen
ordner
originalname
pawort
zusammen
-
der Code
<?php
// Einstellungen
$maxsize = "300000"; // Maximale Uploadgr?sse
$uploddir = "replay/"; // Upload Ordner
$extensions = array(".w3g"); // Erlaubte Erweiterungen
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname
$name = $HTTP_POST_FILES['bild']['name']; // Der Originalname
$size = $HTTP_POST_FILES['bild']['size']; // Gr??e der Datei
$type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei
$ext_tmp = explode(".", $name);
$ext = ".".$ext_tmp[(count($ext_tmp)-1)];
if(in_array($ext, $extensions))
{
if($size<=$maxsize && $size!=0)
{
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = md5(uniqid(rand()));
}
if(move_uploaded_file($tmp_name, $uploddir.$newname.$ext))
{
echo "Die Datei erfolgreich hochgeladen.<br>";
echo "Gr??e: ".$size." Byte<br>";
echo "Name: ".$name."<br>";
echo "MIME-Type: ".$type."<br>";
echo "Ansehen: <a href='".$uploddir.$newname.$ext."'>".$uploddir.$newname.$ext."</a>";
}
else{echo "Fehler: Deitei konnte nicht verschoben werden!";}
}
else
{
echo "Ihre Datei ($size) ist ?ber $maxsize Bytes oder gleich 0 KB";
}
}
else
{
echo "Falsche Erweiterung: ".$name;
}
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo "<input type='hidden' name='action' value='upload'>";
echo "<table>";
echo "<tr>";
echo "<td>Datei</td><td><input type='file' name='bild'></td>";
echo "</tr><tr>";
echo "<td> </td><td><input type='submit' value='Hochladen'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
Ist der Code wie er in dem "Wie mache ich..." Artikel beschrieben ist.
Die Dateinamen werden aber st?ndig umbenannt( sinnlose zahlen/buchstabenkombi, hat nichts mit orginalname zu tun)
Wie kann ich das "abstellen" ? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = md5(uniqid(rand()));
}
das muss zu
$newname = "dateiname.gif";
werden.
b2k-fan -
Ja, aber ich will den Orginalnamen beibehalten.
wenn ich $newname=$name mache, dann hab ich 2x die Dateiendung
z.B. Test.jpg.jpg
-
Wie kann ich noch eine Passwortabfrage einbauen, also er l?d nur hoch wenn PW richtig eingegeben ist ( klar Passwortfeld erstellen, Pw abgleichen und so ) aber wo bau ich das ein. denn ich sehe leider nicht ganz durch bei den vielen Ifs ...
-
nunja ich habe mal etwas probiert...
der Code :
<?php
if ($pw!='***') {
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "Passwort : <input type='text' name='pw'>";
echo "<br>\n<input type='submit' value='Senden' name='pwsend'>";
echo "</form>";
}
if($_POST['pwsend']==true)
{
$pw = $_POST['pw'];
if ($pw=='***') {
// Haupteil
// Einstellungen
$maxsize = "300000"; // Maximale Uploadgr?sse (40 Kb)
$uploddir = "replay/"; // Upload Ordner
$extensions = array(".w3g"); // Erlaubte Erweiterungen
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname
$name = $HTTP_POST_FILES['bild']['name']; // Der Originalname
$size = $HTTP_POST_FILES['bild']['size']; // Gr??e der Datei
$type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei
$ext_tmp = explode(".", $name);
$ext = ".".$ext_tmp[(count($ext_tmp)-1)];
if(in_array($ext, $extensions))
{
if($size<=$maxsize && $size!=0)
{
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = "$name";
}
if(move_uploaded_file($tmp_name, $uploddir.$newname))
{
echo "Die Datei erfolgreich hochgeladen.<br>";
echo "Gr??e: ".$size." Byte<br>";
echo "Name: ".$name."<br>";
echo "MIME-Type: ".$type."<br>";
echo "Ansehen: <a href='".$uploddir.$newname."'>".$uploddir.$newname."</a>";
}
else{echo "Fehler: Deitei konnte nicht verschoben werden!";}
}
else
{
echo "Ihre Datei ($size) ist ?ber $maxsize Bytes oder gleich 0 KB";
}
}
else
{
echo "Falsche Erweiterung: ".$name;
}
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo "<input type='hidden' name='action' value='upload'>";
echo "<table>";
echo "<tr>";
echo "<td>Datei</td><td><input type='file' name='bild'></td>";
echo "</tr>";
echo "<tr><td> </td><td><input type='submit' value='Hochladen'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
// Ende Haupteil
}
else {
echo "Passwort falsch!";
}
}
?>
Die Passwortabfrage klappt. Aber jetzt wird der Haupteil nicht mehr korrekt ausgef?hrt( es wird nichts hochgeladen) Wenn ich nur den Hauptteil als Code habe ( also alles ?ber //Haupteil und alles unter //ende haupteil wegnehmen ), dann klappt es einwandfrei ( aber halt keine PW abfrage ) hat jemd. eine L?sung?
-
Hoi,
ne ganz einfache logische L?sung w?re doch eingentlich die Passwortabfrage auf ne seperate Seite zu machen.
Wenn das Passwort richtig ist kann man auf die n?chste Seite (mit dem Upload) weitergeleitet werden.
Wenn das Passwort Falsch is kommt ne Fehlermeldung und danach die Passwortabfrage erneut.
Ich hab auch ein sch?nes Tutorial dar?ber wie man das mit Sessions macht und die dann zu Upload-Seite weitergibt.
Bei interesse einfach mal Melden, dann schick ichs dir.
MfG
DarkNight -
Dann k?nnte man diese Seite aber zur Not auch so aufrufen... Weil ich will das in nen Verzeichnis hochladen und dort werden die Dateien einfach nur so angezeigt ( hoffe du weist was ich meine [ Link einfach nur auf nen Ordner mit dateien..])
so k?nnte jemd da die upload seite finden...
schick mal plz das Tut an robertju at web.de -
Hoi,
Du kannst ja die upload.php auch in einen anderen Ordner tun und die Dateien Replays in ein gesondertes Verzeichnis hochladen.
Desweiteren hasst du Post (PN)
MfG
DarkNight -
<?php
if ($pw=='***') {
// Haupteil
// Einstellungen
$maxsize = "300000"; // Maximale Uploadgr?sse (40 Kb)
$uploddir = "replay/"; // Upload Ordner
$extensions = array(".w3g"); // Erlaubte Erweiterungen
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname
$name = $HTTP_POST_FILES['bild']['name']; // Der Originalname
$size = $HTTP_POST_FILES['bild']['size']; // Gr??e der Datei
$type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei
$ext_tmp = explode(".", $name);
$ext = ".".$ext_tmp[(count($ext_tmp)-1)];
if(in_array($ext, $extensions))
{
if($size<=$maxsize && $size!=0)
{
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = "$name";
}
if(move_uploaded_file($tmp_name, $uploddir.$newname))
{
echo "Die Datei erfolgreich hochgeladen.<br>";
echo "Gr??e: ".$size." Byte<br>";
echo "Name: ".$name."<br>";
echo "MIME-Type: ".$type."<br>";
echo "Ansehen: <a href='".$uploddir.$newname."'>".$uploddir.$newname."</a>";
}
else{echo "Fehler: Deitei konnte nicht verschoben werden!";}
}
else
{
echo "Ihre Datei ($size) ist ?ber $maxsize Bytes oder gleich 0 KB";
}
}
else
{
echo "Falsche Erweiterung: ".$name;
}
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo "<input type='hidden' name='action' value='upload'>";
echo "<table>";
echo "<tr>";
echo "<td>Datei</td><td><input type='file' name='bild'></td>";
echo "</tr>";
echo "<tr><td> </td><td><input type='submit' value='Hochladen'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
// Ende Haupteil
}
else {
echo "Passwort falsch!";
}
}
?>
Dann das formular an den anfang. -
Klappt alles irgendwie nicht so.
habs jetzt mal mit dem include versucht..
<?php
if ($pw!='***') {
echo "<form action='".$_SERVER['PHP_SELF']."' method='post'>";
echo "Passwort : <input type='text' name='pw'>";
echo "<br>\n<input type='submit' value='Senden' name='pwsend'>";
echo "</form>";
}
if($_POST['pwsend']==true)
{
$pw = $_POST['pw'];
if ($pw=='***') {
echo "right";
include ("upload.php");
}
else {
echo "Passwort falsch!";
}
}
?>
upload.php
<?php
// Einstellungen
$maxsize = "300000"; // Maximale Uploadgr?sse (40 Kb)
$uploddir = "replay/"; // Upload Ordner
$extensions = array(".w3g"); // Erlaubte Erweiterungen
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname
$name = $HTTP_POST_FILES['bild']['name']; // Der Originalname
$size = $HTTP_POST_FILES['bild']['size']; // Gr??e der Datei
$type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei
$ext_tmp = explode(".", $name);
$ext = ".".$ext_tmp[(count($ext_tmp)-1)];
if(in_array($ext, $extensions))
{
if($size<=$maxsize && $size!=0)
{
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = "$name";
}
if(move_uploaded_file($tmp_name, $uploddir.$newname))
{
echo "Die Datei erfolgreich hochgeladen.<br>";
echo "Gr??e: ".$size." Byte<br>";
echo "Name: ".$name."<br>";
echo "MIME-Type: ".$type."<br>";
echo "Ansehen: <a href='".$uploddir.$newname."'>".$uploddir.$newname."</a>";
}
else{echo "Fehler: Deitei konnte nicht verschoben werden!";}
}
else
{
echo "Ihre Datei ($size) ist ?ber $maxsize Bytes oder gleich 0 KB";
}
}
else
{
echo "Falsche Erweiterung: ".$name;
}
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo "<input type='hidden' name='action' value='upload'>";
echo "<table>";
echo "<tr>";
echo "<td>Datei</td><td><input type='file' name='bild'></td>";
echo "</tr>";
echo "<tr><td> </td><td><input type='submit' value='Hochladen'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
Damit wird es leider auch nicht hochgeladen...
edit: hat da wirklich keiner ne Idee? Der Uploade funtzt allein und das PW funtzt allein, aber zusammen geht es nicht!
Beitrag ge?ndert am 28.12 16:59 von robertju -
Hi
@robertj: bitte keine pn's in diesem sinne schreiben, nur wenns halt sehr wichtig ist!
<?php
// Einstellungen
$maxsize = "300000"; // Maximale Uploadgr?sse (40 Kb)
$uploddir = "replay/"; // Upload Ordner
$extensions = array(".w3g"); // Erlaubte Erweiterungen
if($_POST['action']=="upload")
{
$tmp_name = $HTTP_POST_FILES['bild']['tmp_name']; // Der Originalname
$name = $HTTP_POST_FILES['bild']['name']; // Der Originalname
$size = $HTTP_POST_FILES['bild']['size']; // Gr??e der Datei
$type = $HTTP_POST_FILES['bild']['type']; // Der MIME Type der Datei
$ext_tmp = explode(".", $name);
$ext = ".".$ext_tmp[(count($ext_tmp)-1)];
if(in_array($ext, $extensions))
{
if($size<=$maxsize && $size!=0)
{
while(file_exists($uploddir.$newname) || !$newname)
{
$newname = "$name[1].$name[2]";
}
if(move_uploaded_file($tmp_name, $uploddir.$newname))
{
echo "Die Datei erfolgreich hochgeladen.<br>";
echo "Gr??e: ".$size." Byte<br>";
echo "Name: ".$name."<br>";
echo "MIME-Type: ".$type."<br>";
echo "Ansehen: <a href='".$uploddir.$newname."'>".$uploddir.$newname."</a>";
}
else{echo "Fehler: Deitei konnte nicht verschoben werden!";}
}
else
{
echo "Ihre Datei ($size) ist ?ber $maxsize Bytes oder gleich 0 KB";
}
}
else
{
echo "Falsche Erweiterung: ".$name;
}
}
else
{
echo "<form action='".$_SERVER['PHP_SELF']."' enctype=\"multipart/form-data\" method='post'>";
echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"".$maxsize."\">";
echo "<input type='hidden' name='action' value='upload'>";
echo "<table>";
echo "<tr>";
echo "<td>Datei</td><td><input type='file' name='bild'></td>";
echo "</tr>";
echo "<tr><td> </td><td><input type='submit' value='Hochladen'></td>";
echo "</tr>";
echo "</form>";
echo "</table>";
}
?>
So sollte es gehen! Die Funktion "explode()" erstellt einen Array!
b2k-fan -
Ich hatte den Upload teil Ja schon funktionsf?hig und die Passwortabfrage auch, aber ich habe beide Teile nicht zusammen bekommen. W?re gut, wenn du dir erst mal den ganzen Thread durchliest. Hoffe jemd findet noocj ne L?sung
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage