kostenloser Webspace werbefrei: lima-city


Problem mit Upload

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    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" ?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. b*****n

    while(file_exists($uploddir.$newname) || !$newname)
    {
    $newname = md5(uniqid(rand()));
    }

    das muss zu

    $newname = "dateiname.gif";

    werden.

    b2k-fan
  4. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    Ja, aber ich will den Orginalnamen beibehalten.

    wenn ich $newname=$name mache, dann hab ich 2x die Dateiendung

    z.B. Test.jpg.jpg

  5. b*****n

    Dann

    $newname = "$name";

    machen.
    So m?sste es gehen.

    b2k-fan
  6. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    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 ...
  7. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    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?
  8. 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
  9. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.


    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
  10. 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
  11. b*****n

    <?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.
  12. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    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
  13. b*****n

    Hi

    @robertj: bitte keine pn's in diesem sinne schreiben, nur wenns halt sehr wichtig ist! :wink:

    <?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
  14. Autor dieses Themas

    robertju

    robertju hat kostenlosen Webspace.

    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
  15. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!