PHP per Javascript confirm abbrechen

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

  • PHP per Javascript confirm abbrechen

    Hallo!

    Ich habe ein Script, mit dem überprüft wird, ob eine Datei in einem Serververzeichnis bereits existiert, bevor eine andere Datei mit gleichem Namen hochgeladen werden kann und die erste möglicherweise überschreibt. Der Benutzer wird per JavaScript confirm gefragt, ob Überschreiben ok ist, und bei [Abbrechen] soll der Uploadvorgang abgebrochen werden. Ich weiß nur nicht, was ich an der Stelle
    Code:
    if (Check == false) {???}
    als Anweisung eintragen muss, damit das PHP-Script nicht weiter ausgeführt wird, bzw. der Uploadteil übersprungen wird. Kann mir da jemand helfen?

    PHP-Code:
    <?php

    $dir 
    "..".strrchr(getcwd(),"/")."/";

      if ( 
    $_POST['Button2'] == "Hochladen") {
      
        
    $filename basename($_FILES['file']['name']);
        
    $uploadfile $dir $filename;
        
    $newname str_replace(" ""_"$filename);

        if (
    $dh opendir($dir)) {
            while (
    $file readdir($dh)) {
              if (
    $file == $newname) {
                echo 
    "<script language='JavaScript' type='text/javascript'>
    Check = confirm('Eine Datei mit dem Namen \""
    .$newname."\" existiert bereits!\\nSoll diese
     überschrieben werden?');
     if (Check == false) {???}</script>"
    ;
              }
            }
        }
            
    closedir($dh);

    if (
    move_uploaded_file($_FILES['file']['tmp_name'], $uploadfile)) {
        
    rename($filename$newname);
        
    $filename $newname;
       echo 
    "<span class='alert'>Datei <span style='color:black;'>\"".$filename."\"</span>
     erfolgreich hochgeladen!</span><br>"
    ;
    echo 
    $upload;
    } else {
       echo 
    "<p align=center class=text>Possible file upload attack!</p>\n";
    echo 
    'Here is some more debugging info:';
    print_r($_FILES);
    }

      }

    ?>
    http://www.zentralplan.de/

  • #2
    Du solltest dir im Klaren sein, das JS Clientseitig und PHP Serverseitig ausgeführt wird.

    Mein Tipp für dein Problem: Frage mittels PHP ab, ob die Datei existiert, wenn ja, gebe eine extra Seite mit dem Hinweis aus, dass die Datei existiert und frage dort ab, ob die Datei überschrieben werden soll.
    Sunshine CMS
    BannerAdManagement
    Borlabs - because we make IT easier
    Formulargenerator [color=red]Neu![/color]
    Herkunftsstatistik [color=red]Neu![/color]

    Kommentar


    • #3
      Ich weiß zwar nicht, ob das die eleganteste Art ist, das Problem zu lösen, aber ich mach es jetzt so: Das Uploadformular wird beim Absenden per Javascript überprüft, welcher Dateiname hochgeladen werden soll. Das Javascript habe ich vorher selbst per php generiert, wobei in einer Schleife alle im Verzeichnis vorkommenden Dateien mit der Eingabe des Formulars verglichen werden. Das erzeugt zwar bei fetten Verzeichnissen ein fettes JavaScript, aber es funktioniert sehr gut.

      Code:
      function chkForm()
      {
           setoff = document.upload.file.value.lastIndexOf("\\");
           fname = document.upload.file.value.substr(setoff+1);
      
           if(!fname)
            {
             alert("Es wurde noch keine Datei ausgewählt!");
             document.upload.file.focus();
             return false;
            }
      
           fname = fname.replace(" ", "_");
      
      <?php
      
          $dir = "..".strrchr(getcwd(),"/")."/";
          if ($dh = opendir($dir)) {
              while ($file = readdir($dh)) {
                echo "if (fname == \"".$file."\")";
      
      ?>
            {
              Check = confirm("Eine Datei mit dem Namen \"" + fname + "\" existiert bereits!\n
      Soll diese überschrieben werden?"); if (Check == false) { return false; }
            }
      
      <?php
      
              }
          }
              closedir($dh);
      
      ?>
      
      }
      Zuletzt geändert von hamoda108; 03.02.2006, 13:07.
      http://www.zentralplan.de/

      Kommentar


      • #4
        und was machst du wen JavaScript deaktiviert ist
        Sunshine CMS
        BannerAdManagement
        Borlabs - because we make IT easier
        Formulargenerator [color=red]Neu![/color]
        Herkunftsstatistik [color=red]Neu![/color]

        Kommentar


        • #5
          Tja, meine User müssen eben JavaScript enablen.
          http://www.zentralplan.de/

          Kommentar


          • #6
            Original geschrieben von hamoda108
            Tja, meine User müssen eben JavaScript enablen.
            ROFL

            Kommentar

            Lädt...
            X