Link zum editieren/löschen

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

  • Link zum editieren/löschen

    Hallo.
    Hier mal meine Frage: Ich habe den unten stehenden Code, wie kann ich nun im Link festlegen, welchen Eintrag ich bearbeiten oder Löschen will.
    Dass wenn ich auf den Link klicke, ich gleich zum Bearbeiten oder zum löschen komme!?Ich hoffe Ihr versteht die Frage.


    PHP-Code:
    <?

    if($delete == "yes")
    {

    function nl2br_repl($text)
    {
      $retvalue="";
      for ($i=0;$i<strlen($text);$i++)
      {
        if ($text[$i]!=chr(13)) $text[$i]=="\n" ? $retvalue .= "<BR>" : $retvalue .= $text[$i];
      }
      return $retvalue;


    $entryfile = "entries.txt";
    $admentriesperpage = "10";
    $trennzeichen = "|";


    if ($edit == "1"){
               // jetzt speichern
            if ($todo == "delall") {
                // create empty file
                $fd = fopen($entryfile, "w");
                fclose($fd);
            }
            else {
                // gästebuchdatei einladen
                $zeile = file($entryfile);
                $fd = fopen($entryfile, "w");
                if ($fd){
                    // dann alle weiteren
                    for ($i = 0;$i < sizeof($zeile);$i++){
                        $id = sizeof($zeile) - $i;
                        // is this the line to write new entries
                        $lineedit = $_REQUEST["todo$id"] == 'on' ? 1 : 0;
                        if ($lineedit == 1) {
                            if ($todo == "write") {
                                $text = isset($_REQUEST["text$id"]) ? $_REQUEST["text$id"] : $text = "";
                                $date = isset($_REQUEST["date$id"])? $_REQUEST["date$id"] : "";
                                $email = isset($_REQUEST["email$id"])? $_REQUEST["email$id"] : "";
                                $teilnehmername = isset($_REQUEST["name$id"])? $_REQUEST["name$id"] : "";
                                $homepage = isset($_REQUEST["homepage$id"]) ? $_REQUEST["homepage$id"] : "";
                                $ip = isset($_REQUEST["ip$id"]) ? $_REQUEST["ip$id"] : "";
                                $host = isset($_REQUEST["host$id"]) ? $_REQUEST["host$id"] : "";
    //                            $text = htmlentities($text);
                                 $text = nl2br_repl($text);
                            $text = stripslashes($text);
                                 // In Teilnehmername, Email und Homepage dürfen keine Kommata vorkommen, also Kommata durch nix ersetzen
                                $teilnehmername = str_replace(",", "", $teilnehmername);
                                $email = str_replace(",", "", $email);
                                $homepage = str_replace(",", "", $homepage);
                                // Jetzt die Dateizeile zusammensetzen
                                  fputs($fd, "$date|$teilnehmername|$email|$homepage|$ip|$host|$text\n");
                            }
                            else {
                                 // is this not the entry to delete
                                if ($todo != "delete") {
                                    // then write it back
                                    fputs($fd, trim($zeile[$i]) . "\n");                                
                                }
                            }
                        }
                        else {
                            fputs($fd, trim($zeile[$i]) . "\n");                                
                        }
                    }
                    fclose($fd);
                }    
            }        
        }
        
        // gästebuchdatei einladen
        $zeile = file($entryfile);

        // admin template einlesen
    //    $fd = fopen($editentry, "r");
    //    $template = fread($fd, filesize($editentry));
    //    fclose($fd);
        echo "<h4>Zu bearbeitende Datei: $entryfile</h4>\n";
        
        echo "<form method=\"POST\" action=\"admin.php?edit=1&page=$page&delete=yes\">\n";
        echo "<table border=\"1\" width=\"100%\"><tr>\n";
        echo "<td width=\"59\"><b>Nummer</b></td>\n";
        echo "<td width=\"47\"><b>Auswahl</b></td>\n";
        echo "<td width=\"81\"><b>Datum & Zeit</b></td>\n";
        echo "<td width=\"68\"><b>Name</b></td>\n";
        echo "<td width=\"119\"><b>E-Mail</b></td>\n";
        echo "<td width=\"93\"><b>Homepage</b></td>\n";
        $oneselected =0;


        for ($i = 0;$i < sizeof($zeile);$i++){
            $id = sizeof($zeile) - $i;
            if ( floor($i / $admentriesperpage) == $page) {
                // is this the line to edit ?
                $lineedit = 0;
                if ($todo == "edit") {
                    $lineedit = $_REQUEST["todo$id"] == 'on' ? 1 : 0;
                }
                $eintrag = explode($trennzeichen, $zeile[$i]);
                $emailtext = $eintrag[2];
                $nametext = $eintrag[1];
                $homepagetext = $eintrag[3];
                $datetext = $eintrag[0];
                // der Text kann ja Kommata enthalten also alle Bestandteile nach 3 gehören zum Text
                $texttext = $eintrag[6];
                $iptext = $eintrag[4];
                $hosttext = $eintrag[5];

                    
                $texttext = nl2br_repl($texttext);
            
                echo "<tr>\n";
                echo "<td valign=\"top\" width=\"10\">$id</td>\n";
                if ($lineedit == 1) {
                    echo "<td valign=\"top\" width=\"51\"><input type=\"checkbox\" value=\"on\" checked name=\"todo$id\"></td>\n";
                    echo "<td valign=\"top\" width=\"205\"><input type=\"text\" size=\"20\" value=\"$datetext\" name=\"date$id\"></td>\n";
                    echo "<td valign=\"top\" width=\"224\"><input type=\"text\" size=\"20\" value=\"$nametext\" name=\"name$id\"></td>\n";
                    echo "<td valign=\"top\" width=\"258\"><input type=\"text\" size=\"20\" value=\"$emailtext\" name=\"email$id\"></td>\n";
                    echo "<td valign=\"top\" width=\"248\"><input type=\"text\" size=\"20\" value=\"$homepagetext\" name=\"homepage$id\"></td>\n";
                    echo "<tr><td valign=\"top\" width=\"1002\" colspan=\"5\" height=\"8\">Nachricht:<br><textarea rows=\"8\" name=\"text$id\" cols=\"90\">$texttext</textarea></td>";
                    echo "<tr><td valign=\"top\" width=\"1002\" colspan=\"5\" height=\"8\"><p align=\"center\">IP:<input type=\"text\" size=\"20\" value=\"$iptext\" name=\"ip$id\"> & Host:<input type=\"text\" size=\"20\" value=\"$hosttext\" name=\"host$id\"></td>";

                    $oneselected =1;
                }
                else {
                echo "<td valign=\"top\" width=\"51\"><input type=\"checkbox\" value=\"on\" name=\"todo$id\"></td>
            <td valign=\"top\" width=\"205\">$datetext&nbsp;</td>
            <td valign=\"top\" width=\"224\">$nametext&nbsp;</td>
        <td valign=\"top\" width=\"258\">$emailtext&nbsp;</td>
        <td valign=\"top\" width=\"248\">$homepagetext&nbsp;</td>
            <tr><td valign=\"top\" width=\"1002\" colspan=\"5\" height=\"8\">Nachricht:<br>
                $texttext&nbsp;</td>
            <tr><td valign=\"top\" width=\"1002\" colspan=\"5\" height=\"8\"><p align=\"center\">IP: <a href=\"admin.php?getip=yes&ip_addr=$iptext\">$iptext</a> &amp; Host: $hosttext</td>";
                }
                echo "</tr>\n";
            }
        }

        $form = $template;
        $form = ereg_replace("%SITE%", $_SERVER["SERVER_NAME"], $form);

        echo "</table>\n";
        if ($page>0) {
            $pagelink = $page-1;
            echo "<a href=\"admin.php?page=$pagelink&delete=yes\">vor</a>&nbsp;\n";
        }
        if (floor(sizeof($zeile)/$admentriesperpage)>$page) {
            $pagelink = $page+1;
            echo "<a href=\"admin.php?page=$pagelink&delete=yes\">zurück</a>&nbsp;\n";
        }
        if ($oneselected == 0) {
            echo "\n<br>Bitte wählen Sie: &nbsp;  <select size=\"1\" name=\"todo\">\n";
            echo "<option selected>&lt;Bitte wählen&gt;</option>\n";
            echo "<option value=\"delete\">löschen</option>\n";
            echo "<option value=\"edit\">bearbeiten</option>\n";
            echo "<option value=\"delall\">alle löschen</option>\n";
            echo "</select>\n";        
        } 
        else {
            echo "<input type=\"hidden\" name=\"todo\" value=\"write\">";
        }  
        echo "&nbsp;<input type=\"submit\" value=\"Abschicken\" name=\"B1\">\n</form>";


    }
    ?>

    Vielen Dank.
    Gruss adihas

  • #2
    da stehen einige links .... und auch in den actions der forms sind ein paar urls drin...

    was genau hast du denn vor?
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Dass man im Gästebuch auf den Link unter einem gewissen Eintrag klicken kann, und dann entweder zum editieren oder löschen des gewissen Eintrages kommt!?

      Kommentar


      • #4
        http://www.php-resource.de/forum/sho...threadid=16570

        is zwar auf mysql basis, aber von der grundidee her sollte es hilfreich sein
        Ich denke, also bin ich. - Einige sind trotzdem...

        Kommentar


        • #5
          das baust du bei der ausgabe ein.

          PHP-Code:
          <a href="admin.php?action=edit&id=<?php echo $id?>">edit</a>
          <a href="admin.php?action=delete&id=<?php echo $id?>">delete</a>
          und in der admin.php prüfst du nun ab, was in $action enthalten ist.

          PHP-Code:
          switch($action) {
            case 
          "edit"   // edit entry with id = $id
                            
          break;
            case 
          "delete" // delete entry with id = $id
                            
          break;
            default:        
          // list of all entries

          so kannst du das machen. musst das jetzt halt nur noch auf deine
          seite anpassen...

          EDIT:
          OffTopic:
          da schreibt der happy schon, und ich bin noch am tippen ...

          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


          Kommentar


          • #6
            Original geschrieben von Abraxax
            EDIT:
            OffTopic:
            da schreibt der happy schon, und ich bin noch am tippen ...

            OffTopic:
            und ich bin "immer" zu langsam? *g*
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              Original geschrieben von mrhappiness
              OffTopic:
              und ich bin "immer" zu langsam? *g*
              OffTopic:
              naja. heute warst du mal schneller...
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                Also, muss denn der Code so aussehen:

                PHP-Code:
                switch($action) {
                  case 
                "edit"   

                //hier der Code zum editieren des Eintrages
                                  
                break;
                  case 
                "delete" :
                //Code zum löschen des Eintrages
                                  
                break;
                  default:        
                // list of all entries <---?

                Kommentar


                • #9
                  Original geschrieben von adihas
                  Also, muss denn der Code so aussehen:
                  genau. infos im code...

                  PHP-Code:
                  switch($action) {
                    case 
                  "edit"   

                  //hier der Code zum editieren des Eintrages
                  //// ist klar 

                                    
                  break;
                    case 
                  "delete" :
                  //Code zum löschen des Eintrages
                  /// ist auch klar.

                                    
                  break;
                    default:        
                  // list of all entries <---?

                  // irgendwas soll ja gemacht werden ,wenn kein delte oder edit da war. also einfach mal die einträge anzeigen. default eben.

                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Irgendwie krieg ich das nicht hin . Komme bei meinem Code nicht mehr draus :-(

                    Kommentar


                    • #11
                      suche mal im forum nach älteren posts, oder im script-bereich .
                      da ist bestimmt schon was fertiges woraus du was lernen kannst.
                      hast du mysql zur verfügung, dann kann ich dir das nur empfehlen.
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        Ich finde nichts, und ich habe auch kein MySQL zur verfügung!?

                        Kommentar


                        • #13
                          Also, der Link zum editieren geht so:
                          admin.php?edit=1&page=&delete=yes
                          das problem aber ist, dass in diesem Link noch nicht definiert ist, welcher Eintrag zu editieren ist. Darum zeigt es einfach nur die Einträge an.

                          Ich hoffe mir kann jemand helfen.
                          Gruss adihas

                          Kommentar


                          • #14
                            Das musst doch auch machbar sein, dass man nur den bestimmten Link angeben muss!?

                            Kommentar


                            • #15
                              Weil das ohne nicht geht!
                              Dein Link bringt garnichts aus.

                              Kommentar

                              Lädt...
                              X