kostenloser Webspace werbefrei: lima-city


Dateien via HTML und PHP hochladen

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    vosliker

    vosliker hat kostenlosen Webspace.

    Hallo,
    ich hab da eine Frage: ich versuche seit einiger Zeit eine Website zu schreiben, die Dateien hochlädt (ich habe lediglich vor die Website Privat online zu stellen) . Ich habe schon einen Code, der in drei Dateien zu zählen ist: default.html , upload.php , status.html :

    ich hab nun ein Problem, immer wenn ich es online stelle und es aufrufe kommt da ein Fehler:
    und ich hab keine Ahnung was da falsch ist...

    PHP Error Message
    
    Warning: preg_match() expects at least 2 parameters, 1 given in /home/a5839748/public_html/upload/upload.php on line 10


    wobei status.html nur zur äußerlichen darstellung dient.

    default.html:

    <html>
    <form method="post" action="upload.php" enctype="multipart/form-data">
    <input type="hidden" name="MAX_FILE_SIZE" value="1000000">
    <input name="Datei" type="file" size="60" maxlength="1000000" accept="text/txt*, text/php, image/jpeg, image/gif, image/png, video/*,   audio/x-wav, audio/x-mpeg, application/octet-stream, application/pdf, application/zip">
    <input type="submit" name="Submit" value="Senden">
    </html>


    upload.php

    <?php
       if (isset($_FILES["datei"]))
       {
       echo "Variablen überprüfen fertig..."; 
       }
       else 
       {
       echo "Es wurde keine Datei gefunden, deshalb wurde auch keine Datei hochgeladen!";
       }
    if (preg_match($_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 1000000) 
       
        {move_uploaded_file($_FILES["datei"]["tmp_name"],"public_html/".$_FILES["datei"]["name"]);
        header("Location: status.html"); }
     else 
       {
       echo "Entweder ist keine Datei ausgewählt oder die Datei ist zu gro&szlig!";
       }
    ?>



    status.php

    <html>
    
    <head>
    
    <title>Dateiupload – Erfolgreich</title>
    
    </head>
    
    <body>
    
    <p><font face="Arial, Helvetica, sans-serif" size="6">Upload: Erfolgreich</font></p>
    
    <p><font face="Arial, Helvetica, sans-serif"><a href="default.php">[Zum Dateiupload]</a></font></p>
    
    </body>
    
    </html>


    Danke im Vorraus... ;-)


    Beitrag zuletzt geändert: 27.5.2013 20:24:28 von vosliker
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. Ahoy!

    Also die Fehlermeldung ist eh schon recht aussagekräftig :)

    Sie besagt, dass in der Datei upload.php in der Zeile 12 ein unerwarteter String vorkommt... allerdings sehe ich da grade keinen Fehler... aber vielleicht hab ich dir geholfen das Problem selbst zu finden?!

    EDIT:
    timebandit hat vollkommen Recht, wie konnte ich das übersehen? :wall: Sorry^^

    MfG

    Beitrag zuletzt geändert: 27.5.2013 18:59:37 von destodes
  4. if (preg_match($_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 1000000) 
       
        move_uploaded_file($_FILES["datei"]["tmp_name"],"public_html/".$_FILES["datei"]["name"]);
        header("Location: status.html");

    Dort fehlen schließende bzw. öffnende Klammern.
    Korrigiert sieht das so aus:
    Edit
    if (preg_match($_FILES["datei"]["size"] )> 0 && $_FILES["datei"]["size"] < 1000000)

    {move_uploaded_file($_FILES["datei"]["tmp_name"],"public_html/".$_FILES["datei"]["name"]);
    header("Location: status.html");}




    Beitrag zuletzt geändert: 27.5.2013 19:38:58 von timebandit
  5. Autor dieses Themas

    vosliker

    vosliker hat kostenlosen Webspace.

    ich probier es gleich mal aus...
    gerade ist der Server abgestürtzt, deswegen wird es wohl eine Weile dauern :-(
    Edit:
    ich hab es jetzt ausprobiert, nur jetzt ist da ein anderer Fehler:
    PHP Error Message
    
    Warning: preg_match() expects at least 2 parameters, 1 given in /home/a5839748/public_html/upload/upload.php on line 10


    Beitrag zuletzt geändert: 27.5.2013 19:18:47 von vosliker
  6. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    timebandit schrieb:
    Korrigiert sieht das so aus:
    if (preg_match($_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 1000000))
    Auch nicht. Eher so:
    if(preg_match('/\\.(txt|jpg|png)$', $_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 1000000)


    Woher soll
    preg_match()
    wissen, wonach du suchst? Dazu musst du der Funktion einen entsprechenden regulären Ausdruck geben, und das hast du nicht gemacht. Außerdem willst du vermutlich mit
    preg_match()
    auf Dateinamen bzw. Dateierweiterungen prüfen…

    In meinem Beispiel werden alle Dateien zugelassen, deren Dateiname auf txt, jpg oder png endet.

    Weitere Details: siehe Dokumentation.
  7. Autor dieses Themas

    vosliker

    vosliker hat kostenlosen Webspace.

    Ok hab ich gemacht, danke, jetzt kommt aber leider eine andere Fehlermeldung:
    "Es wurde keine Datei gefunden, deshalb wurde auch keine Datei hochgeladen!", die ich selbst erstellt habe, wegen:

    if (isset($_FILES["datei"]))
       {echo "Variablen überprüfen fertig...";  }
       else 
       {echo "Es wurde keine Datei gefunden, deshalb wurde auch keine Datei hochgeladen!"; }


    Was ist nun wieder los?
  8. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Das könnte an der unterschiedlichen Groß-Kleinschreibung liegen. Im Formular nennst du das Feld
    Datei
    , mit PHP willst du aber ein Feld namens
    datei
    bearbeiten. Nenn das Feld im Formular ebenfalls
    datei
    (klein geschrieben) und es wird vermulich funktionieren…
  9. Autor dieses Themas

    vosliker

    vosliker hat kostenlosen Webspace.

    Hey danke jetzt steht bei mir erfolgreich...
    nur ich sehe keinen upload im Archiv :-(
    kannst du mir da weiterhelfen?
  10. Der Server wird dein Verzeichnis so nicht finden. Verwende besser das Wurzelverzeichnis.
    Wenn deine Datei im Ordner vosliker.lima-city.de/public_html liegt, dann genügt
    $uploaddir = "{$_SERVER["DOCUMENT_ROOT"]}/public_html/";
    ansonsten $uploaddir = "{$_SERVER["DOCUMENT_ROOT"]}/dein/Pfad/zum/public_html/";
    Das könnte dann etwa so aussehen:
    if(preg_match('/\\.(txt|jpg|png)$', $_FILES["datei"]["name"]) && $_FILES["datei"]["size"] > 0 && $_FILES["datei"]["size"] < 1000000)
      {
       $uploaddir = "{$_SERVER["DOCUMENT_ROOT"]}/dein/Pfad/zum/public_html/";    // Pfad anpassen
    /* Hier könnte noch eine Überprüfung vorgenommen
    werden, ob das Verzeichnis existiert
    if(is_dir($uploaddir))*/
       if(move_uploaded_file($_FILES["datei"]["tmp_name"],$uploaddir.$_FILES["datei"]["name"]))
          {
           header("Location: status.html");
          }
          else 
           {
            echo "<h1>Der Upload ist gescheitert</h1>";
           }
       }
       else 
       {
       echo "Entweder ist keine Datei ausgewählt oder die Datei ist zu gro&szlig!";
       }
  11. 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!