Problem mit löschen der einträge

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

  • Problem mit löschen der einträge

    Hallo, habe folgendes Problem:
    Ich will mich in mein Adminbereich loggen, das geht auch super.
    Nur kann ich die Einträge nicht löschen, es hat unentlich lange und wenn ich die Aktion abbreche, dann kommen immer folgende Fehlermeldungen:

    Warning: feof(): supplied argument is not a valid stream resource in /home/webmaste/public_html/service/guestbook/admin.php on line 112

    Warning: fgets(): supplied argument is not a valid stream resource in /home/webmaste/public_html/service/guestbook/admin.php on line 113

    ...


    Hier mal der PHP-Code von Zeile 104-119:


    $eintraege = "users/$user.txt";
    function loeschen($to_delete) {
    $zeile=array();
    $tosave=array();

    $to_delete=ereg_replace(" ","",$to_delete);
    $to_delete=ereg_replace(" ","",$to_delete);
    $datei=fopen("$eintraege","r");
    while (!feof($datei)){
    $zeile=fgets($datei,100000);
    $teil=explode("|",$zeile);
    $datum=ereg_replace(" ","",$teil[0]);
    $datum=ereg_replace(" ","",$datum);
    if ($datum!=$to_delete) array_push($tosave,$zeile);
    }
    fclose($datei);

    Der user wird im Link angegeben: admin.php?user=nick



    Findet hier jemand einen Fehler?

    Vielen Dank
    Gruss Adihas

  • #2
    könnte mir vorstellen, das du die datei gar nicht geöffnet hast...
    dann ist nämlich feof(keine datei) = false, und !false = true, und schon hast du ne endlosschleife...

    ohne gewähr, is bloß nen gedanke...
    eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

    Kommentar


    • #3
      Ja, darauf bin ich auch schon gekommen, aber wie kann ich denn das machen, das es den user im Link angibt und so auch die datei (indem man beim username einfach .txt anhängt)?

      Schluss entlich heisst der Link ja so:

      admin.php?user=nickname

      Kommentar


      • #4
        Re: Problem mit löschen der einträge

        mach erstmal mit echo eine ausgabe, ob $user auch wirklich im php-script mit dem erwarteten wert zur verfügung steht.

        sieht nämlich stark danach aus, als ob es zum x-ten mal ein register_gobals-problem ist (falls ja, dann schreie ich...)
        I don't believe in rebirth. Actually, I never did in my whole lives.

        Kommentar


        • #5
          mach mal
          PHP-Code:
           $datei=fopen($eintraege,"r")or die($eintraege); 
          ...und schau mal, was er sagt...
          eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

          Kommentar


          • #6
            ...man sollte hier sowas wie ne "register_globals-forum" einführen
            eval(str_pad(aa|db,4,slarti^~äü_i_)." \"áú¾ïùû䶳Ðäýï©üèíþç£þé\"^~\"no bugs, only features\";");

            Kommentar


            • #7
              hmm slarti, bei deinem Vorschlag zeigt es danach einfach keine Einträge an, die man löschen kann...Was kann man sonst noch tun?

              Kommentar


              • #8
                So, habe es selber herausgefunden!
                Nur kommt schon das nächste Problem.
                Es löscht anstatt nur den ausgewählten Eintrag gleich alle ausser der älteste, warum?
                Hier mal der Code:

                PHP-Code:
                <?

                if ($loeschen) loeschen($to_delete,
                            $user); 

                echo "<form action=\"$PHP_SELF?user=$user\" method=\"post\">";
                echo "<table cellpadding=\"5\" cellspacing=\"5\" width=\"100%\">";

                $eintrag=array();
                $lesen=array();
                $teil=array();

                if (file_exists("users/$user.txt")) {
                    $datei=fopen("users/$user.txt","r");
                    while (!feof($datei)) {
                        $lesen=fgets($datei,100000);
                        array_push($eintrag,$lesen);
                        }

                    array_pop($eintrag);
                    rsort($eintrag);

                    foreach ($eintrag as $zeile) {
                        $teil=explode("|",$zeile);
                        $sekunden=$teil[0];
                        $zeit=$teil[8];
                        $datum=$teil[0];
                        $zeit1=$teil[1];
                        $name=$teil[2];
                        $email=$teil[3];
                        $homepage=$teil[4];
                        $text=$teil[5];
                        $time=ereg_replace("&nbsp;","",$zeit);
                        $time=ereg_replace(" ","",$time);
                        echo "<tr><td width=\"50\" align=\"right\" valign=\"top\">";
                        echo "<input type=\"radio\" name=\"to_delete\" value=\"$sekunden\"><br>";
                        echo "</td><td>";
                        echo "<table border=\"0\" width=\"100%\" style=\"border: 1 solid #f0f8ff\"><tr>";
                        echo "<td valign=\"top\">Name: <b>$name</b><br>E-Mail: $email<br>Homepage: $homepage</td>";
                        echo "<td valign=\"top\"><span style=\"word-break: break-all; word-wrap: break-word\">Kommentar: $text</span><hr noshade size=\"1\" color=\"#f0f8ff\"></td>";
                        echo "</tr></table>";
                        echo "</td></tr>";
                        }
                    echo "<tr><td></td><td align=\"left\">";
                    echo "<input type=\"submit\" name=\"loeschen\" value=\"Eintrag löschen\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                    echo "</td></tr>";
                    echo "</table></form>";
                    }

                function loeschen($to_delete,
                          $user) {
                    $zeile=array();    
                    $tosave=array();

                    $to_delete=ereg_replace("&nbsp;","",$to_delete);
                    $to_delete=ereg_replace(" ","",$to_delete);
                    $datei=fopen("users/".$user.".txt","r");
                    while (!feof($datei)){
                        $zeile=fgets($datei,100000);
                        $teil=explode("|",$zeile);
                        $datum=ereg_replace("&nbsp;","",$teil[0]);
                        $datum=ereg_replace(" ","",$datum);
                        if ($datum!=$to_delete) array_push($tosave,$zeile);
                        }
                    fclose($datei);
                    
                    $datei=fopen("users/".$user.".txt","w");
                    foreach ($tosave as $x)    {
                        fputs($datei,"$x");
                        }
                    fclose($datei);
                    }
                ?>
                Vielen Dank
                Gruss Adihas


                [COLOR=red]
                [FONT=arial]Habe heraus gefunden, dass es einfach alle Einträge löscht[/FONT] [/COLOR]
                Zuletzt geändert von adihas; 11.02.2003, 18:37.

                Kommentar

                Lädt...
                X