Ankündigung

Einklappen
Keine Ankündigung bisher.

Bau eines einfachen foto-uploadscripts,Fehlermeldungen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Bau eines einfachen foto-uploadscripts,Fehlermeldungen

    Hallo ihr Lieben,
    als Php-Anfänger bin ich nun auch an dem Punkt angelangt, wo ich es Besuchern ermöglichen will, ein Foto upzuloaden.
    Dabei soll auf dem Server das Foto unter dem Namen des Benutzers gespeichert werden.
    Hier nun mal mein script:
    PHP-Code:
    <?php 
    include ("bewerber/login/checkuser.php"); 
    $bildname $_SESSION["user_id"];
    error_reporting(E_ALL);
    ini_set('display_errors'1);

    ?>
    <form method="post" enctype="multipart/form-data">
    <input type="file" name="datei"><br>
    <input type="submit" value="Hochladen" name="uploadbutton">
    </form>
    <?
    if(isset($_POST['uploadbutton']))
       {
        $dateityp = GetImageSize($_FILES['datei']['tmp_name']);
        if($dateityp[2] == 2)
           {
        
           if($_FILES['datei']['size'] <  5242800)
              {
              move_uploaded_file($_FILES['datei']['tmp_name'], "../bilder/".$bildname.".jpg"); 
              echo "Das Bild wurde erfolgreich hochgeladen";
              }
        
           else
              {
                 echo "Das Bild darf nicht größer als 500 kb sein ";
              }
        
            }
        
        else
            {
            echo "Bitte nur Bilder im JPG - Format hochladen";
            }
       }
    ?>
    Tja, ich bekomm die Meldungas Bild wurde erfolgreich hochgeladen, hab aber zusätzlich noch 2 Fehlermeldungen und auf dem Server ist natürlich kein bild. Vielleicht wisst ihr ja, wo an dem Code der Fehler liegt. Ich bin schon blind vor lauter Suchen

    Hier die 2 Fehlermeldungen:
    Warning: move_uploaded_file(../bilder/djsky.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in /www/htdocs/xxx/xxx/bewerber/persdaten/foto.php on line 21

    Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php3ashdj to '../bilder/djsky.jpg' in /www/htdocs/xxx/xxx/bewerber/persdaten/foto.php on line 21
    Das Bild wurde erfolgreich hochgeladen

  • #2
    2 Sachen

    1) ist safe_mode an? dann muss der Ordner "Bilder" dem www-User gehören
    2) in jedem Fall : der www-User braucht Schreibrechte im Ordner "Bilder" - wenn du den mit deinem FTP-Programm angelegt hast, geh ich stark davon aus, dass die Rechte nur Root zustehen - also zumindest während der Testphase chmod(0777)
    "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

    Kommentar


    • #3
      der ordner wurde mit meinem ftp-programm angelegt und die rechte auf chmod(777) gesetzt. An dem liegt es also nicht.
      Was meinst du mit safe_mode?
      bin wie gesagt php-anfänger

      Kommentar


      • #4
        das ist eine inzwischen zwar veraltete (deprecated) Option in der php.ini - gerade bei Webhostern oft gesetzt (weil es vermeintlich vor einigen Sicherheitslücken schützt) - wenn der Safe-Mode gesetzt ist, dann "will" PHP nur noch Dateien in Ordner erstellen, deren Owner-ID die gleiche ist, wie vom Script .. dummerweise geht er aber beim laufenden Script im Normalfall vom www-User aus (das ist halt der User, unter dem der Webserver läuft und die Seite ausliefert) - so dass du also mit chown Sicherheitshalber mal den www-User mal zum Besitzer des Bilderorders machen musst - dies geht für dich wohl am einfachsten in deinem FTP-Programm ....
        "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

        Kommentar


        • #5
          wie meinst du das ich soll den Bilderordner zum besitzer des www-user machen? Was muss ich da umstellen?? chmod777 sind doch sämtliche rechte vergeben? Irgendiwe check ich das immer noch nicht.

          Kommentar


          • #6
            hmm, das ist jetzt aber mal echt komisch, hab jetzt die move_uploaded-zeile geändert in:
            PHP-Code:
                      move_uploaded_file($_FILES['datei']['tmp_name'], "bewerber/bilder/foto.jpg"); 
            Nun erscheint mir auf jeden Fall keine einzige Fehlermeldung, nur noch die Meldung "Das Bild wurde erfolgreich hochgeladen".
            Tja, nur auf dem Server ist weit und breit kein Bild zu finden.
            Weiß vielleicht jemand, an was das liegen könnte? Wie gesagt, keine einzige fehlermeldung.

            Kommentar


            • #7
              ich vermute mal , der Ordner bewerber existiert gar nicht an der Stelle .

              bau mal das normale Error-reporting ein

              PHP-Code:
              error_reporting(E_ALL);
              ini_set('display_errors'1); 
              bitte als erste Befehle direkt nach dem "ersten" <?PHP einbauen (ein session_start() darf davor aufgerufen werden)
              "Irren ist männlich", sprach der Igel und stieg von der Drahtbürste [IMG]http://www.php.de/core/images/smilies/icon_lol.gif[/IMG]

              Kommentar

              Lädt...
              X