adminbereich erweitern - aber wie ?

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

  • adminbereich erweitern - aber wie ?

    hi,

    also ich versuch mich eben in php - hab daher mir ein gästebuch geschrieben um da mal reinzukommen ... nun hab ich das auf "reiner txt basis laufen" ohne datenbankanbindeung !

    mein versuch ist nun folgender - ich will im adminbereich alle beiträge auslesen und in ein "admin-formular" wieder einlesen.

    das funzt auch !! nun will ich das per action an entweder übergeben, oder gleich per klick editiert speichern.

    ich hab da ein umsetzungsproblem - wo ich eure hilfe benötige.
    hier meine admin.php

    ( und nicht irre machen lassen von den vielen variablen - die hab ich extra in der config.php abgelegt.)



    PHP-Code:

    <? include "config.php"; ?>
    <?
    ////////////////////////////////////////////////////////////////////
    $lines = file("../$datei");              // datei in array
    $num   = sizeof($lines);                 // einträge zählen

    // br umbruch test
      function mein_test ($text) {
          $retvalue="";
             for ($ii=0; $ii < strlen($text); $ii++){
                  if ($text[$ii]!=chr(13)) {
                      $text[$ii]=="\n" ? $retvalue .= "<br \>" : $retvalue .= $text[$ii];
                  }
             }
          return $retvalue;
      }

    // seitenanzahl ermitteln:
    $seiten = ceil($num / $buch_seiten);
    if (!$z){
    $z = 1;                             // z = normal seite 1
    $y = $z * $buch_seiten;             // y = maximal einträge pro seite (5)
    $x = $y - $buch_seiten;             // x = y - maximal pro seite
    }

    if ($y < $num) {
    $y = $num;
    }

    $vor  = $z - 1;
    $next = $z + 1;
    //__BASISDATEN ENDE_______________________________________________//
    ////////////////////////////////////////////////////////////////////
    ?>


    <?
    ////////////////////////////////////////////////////////////////////
    //__LOGIN PASS___________________________________________________//

    if ($action == "$my_login") {
       if (($username == $admin_log) AND ($passwort == $admin_pass)) {

    //__ADMIN MENU__________________________________________________//
    ////////////////////////////////////////////////////////////////////

    include "$header";
    echo "<tr><td colspan=2><font size=1><b>Login OK ! $num Einträge gefunden. [ Seite $z ]</b></td></tr>";

     for ($i=$num-($z*$buch_seiten-$buch_seiten) -1; $i >= $num-$z*$buch_seiten; $i--) {
          $lg = explode ("||°||", $lines[$i]);

          if ($i >= 0) {  // nicht das der leer felder anzeigt :)  START *1*

          $name     = $lg[0];
          $ort      = $lg[1];
          $email    = $lg[2];
          $geheim   = $lg[3];
          $hp       = $lg[4];
          $comment  = $lg[5];
          $datum    = $lg[6];
          $nr       = $lg[7];

    echo "<tr><td colspan=2><font size=1>";
    // so und nun alle beiträge in das formular einlesen:
    ?>

    <form action="<?php echo $PHP_SELF?>" method=post>
    <input type=hidden name=action value="<? echo $my_edit ?>">
    <input type=hidden name=nr value="<? echo $nr ?>">
    <font size=1>Beitrag Nummer <b><? echo $nr ?></b> bearbeiten:
    <br /><br />
    <font size=1>Name:<br />
    <input type="text" name="name_neu" size="50" maxlength="200" value="<? echo $name ?>"><br />
    <font size=1>Wohnort:<br />
    <input type="text" name="ort_neu"  size="50" maxlength="200" value="<? echo $ort ?>"><br />
    <font size=1>Homepage (wenn vorhanden):<br />
    <input type="text" name="hp_neu"   size="50" maxlength="200" value="<? echo $hp ?>"><br />
    <font size=1>E-Mail:<br />
    <input type="text" name="email_neu" size="50" maxlength="200" value="<? echo $email ?>"><br />
    <? if ( $geheim == "on" ) {
    echo "<input type=\"checkbox\" name=\"geheim\" checked=\"checked\"> <font size=1>E-Mail im Gästebuch anzeigen ! Bitte möglichst <b>NICHT</b> ändern.";
    } else {
    echo "<input type=\"checkbox\" name=\"geheim\"> <font size=1>E-Mail im Gästebuch nicht anzeigen ! Bitte möglichst <b>NICHT</b> ändern.";
    }
    ?>
    <br /><br />
    <font size=1>Beitrag:<br />
    <TEXTAREA NAME="comment_neu" ROWS="5" COLS="45">
    <? echo $comment ?>
    </TEXTAREA>
    <br /><br />
    <INPUT TYPE=SUBMIT VALUE="DATEN NEU SPEICHERN">
    </form>


    <?
          echo "<br /><br />";
          echo "</td></tr>";

          } // Ende Start *1*
    } // ende der for schleife für die bearbeitung

    // start der seitenanzeige
    if ($num > $buch_seiten) {
    echo "<tr><td colspan=2>";

    if ($vor != 0) {
    echo "
    <form action=admin_main.php?z=$vor method=POST>
    <input type=hidden name=action value=login>
    <input type=hidden name=username value=$admin_log>
    <input type=hidden name=passwort value=$admin_pass>
    <INPUT TYPE=SUBMIT VALUE=ZURÜCK></form>
    ";
    }

    if ($next <= $seiten) {
    echo "
    <form action=admin_main.php?z=$next method=POST>
    <input type=hidden name=action value=login>
    <input type=hidden name=username value=$admin_log>
    <input type=hidden name=passwort value=$admin_pass>
    <INPUT TYPE=SUBMIT VALUE=WEITER></form>
    ";
    }

    echo "</td></tr>";
    } // ende der seitenanzeige

    //__END ANZEIGE DER BEITRÄGE______________________________________//
    ////////////////////////////////////////////////////////////////////

    if ($action == "$my_edit") {             // so nun editieren wir mal




    ???








    include "$footer_show";

    //__END LOGIN PASS______________________________________________//
    ////////////////////////////////////////////////////////////////////

       } else {
       include "$header";
       echo "<tr><td colspan=2><font size=1><b>Fehler beim Login !</b></td></tr>";
       include "$footer_show";
       }
    } // end login_pass action
    ?>
    besucht mich mal ...

  • #2
    ich spiele ja auch mit der idee in dem adminbereich nur die beitragsnummer anzugeben (speicher ich beim eintrag in $lg[7] - um dann nur den einen eintrag zusehen - und zu editieren ...

    ich müßte dann aber wohl zeilenbezogen überschreiben - und da kenn ich mich noch nicht so aus ...

    nächster teil ist dann mein wunsch zeilen zu löschen (nicht alles !) nur 1 eintrag - wenn er mir haöt nicht gefällt.


    ihr könnt das doch - oder ? bitte helfen
    besucht mich mal ...

    Kommentar


    • #3
      einzelne Zeilen zu überschreiben funzt nicht, du mußt ohnehin die ganze Datei auslesen und geändert wieder wegschreiben.
      mein Sport: mein Frühstück: meine Arbeit:

      Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

      Kommentar


      • #4
        na dann ist der weg ja gar nicht so falsch ...

        wie aber übergeb ich am besten die geänderten daten zum schreiben ???
        besucht mich mal ...

        Kommentar


        • #5
          Ich würde die Zeilennummer (also deinen Schleifenzähler $i) noch unter anderem Namen ($zeile?)als hidden field mitschicken.

          Nach dem file("../$datei") kannst du dann ganz einfach auf den Datensatz zugreifen,
          die Änderungen vornehmen und speichern.

          Löschen:
          for ($k=0; $k<$zeile; $k++) fputs ($fp, $lines[$k]);
          for ($k=$zeile+1; $k<count($lines); $k++) fputs ($fp, $lines[$k]);

          Ändern:
          $lines[$zeile] = "$name||$ort||$email||$geheim||$hp||$comment||$datum||$nr\n";
          for ($k = 0; $k<count($lines); $k++) fputs ($fp, $lines[$k]);

          Vorher natürlich $fp = fopen("../$datei", 'w'); und hinterher fclose($fp);
          mein Sport: mein Frühstück: meine Arbeit:

          Sämtliche Code-Schnipsel sind im Allgemeinen nicht getestet und werden ohne Gewähr auf Fehlerfreiheit und Korrektheit gepostet.

          Kommentar


          • #6
            ähm, du willst also die einträge bearbeiten und löschen können.
            also ich mach das so, musst es dir halt umschreiben.

            PHP-Code:
            <?PHP
            $datei 
            "gb.txt";
            $file file($datei);
            $zahl count($file);
            //***********************************
            $ok "<b>Warte auf Eintrag...</b>";
            if(
            $action == "eintragen"){
                for(
            $x 0$x <= $zahl 1$x++){
                
            $n "||";
                
            $nl "\n";
                if(
            $loeschen[$x] == "Ja"){
                
            $news_neu .= "";
                
            $ok "<b>Eintrag wurde erfolgreich gelöscht.</b>";
                }
                else{
                  
            $newss[$x] = ereg_replace("\n","<br>",$newss[$x]);
                  
            $news_neu .= "$titel[$x]$n$newss[$x]$n$name[$x]$n$date[$x]$nl";
                  }
                }
                
            $fp fopen($datei,"w");
                
            fputs($fp,$news_neu);
                
            fclose($fp);
                
            $ok "<b>Eintrag erfolgreich hinzugefügt, $zahl Einträge in der Datenbank.</b>";
            }
            else{
            echo 
            "
                 <form method=\"POST\" action=\"\">
                 <table cellspacing=\"2\" cellpadding=\"0\">
                 <tr>
                 "
            ;
                 
            //***********************************
                 
            for($x 0$x <= $zahl 1$x++){
                 
            $get explode("||"$file[$x]);
                 
            //***********************************
                 
            if($x%2){
                   
            $color "#585858";
                   }
                   else{
                   
            $color "#646464";
                   }
                   
            //***********************************
                   
            echo "
                   <td align=\"left\" valing=\"middle\" bgcolor=\"
            $color\" class=\"normal\">
                   <input name=\"titel[
            $x]\" type=\"text\" size=\"40\" maxlength=\"100\" value=\"$get[0]\" class=\"box\"><br>
                   </td>
                 </tr>
                 <tr>
                   <td align=\"left\" valing=\"middle\" bgcolor=\"
            $color\" class=\"normal\">
                   <textarea name=\"newss[
            $x]\" rows=\"8\" cols=\"35\" maxlength=\"5000\" class=\"box_area\">$get[1]</textarea>
                   </td>
                 </tr>
                 <tr>
                   <td align=\"left\" valing=\"middle\" bgcolor=\"
            $color\" class=\"normal\">
                   <input name=\"name[
            $x]\" type=\"text\" size=\"40\" maxlength=\"100\" value=\"$get[2]\" class=\"box\"><br>
                   <input name=\"date[
            $x]\" type=\"text\" size=\"40\" maxlength=\"100\" value=\"$get[3]\" class=\"box\">
                   </td>
                 </tr>
                 <tr>
                   <td align=\"left\" valign=\"middle\" class=\"normal\">
                   <b>löschen?:</b>
                   <select name=\"loeschen[
            $x]\" size=\"1\" class=\"box_drop\">
                   <option selected> Nein
                   <option> Ja
                   </select>
                   <hr color=\"#000000\">
                   </td>
                 </tr>
                 "
            ;
                 }
                 echo 
            "
                 <tr>
                   <td align=\"left\" valign=\"middle\" class=\"normal\">
                   <br>
                   <input type=\"submit\" name=\"action\" value=\"eintragen\" class=\"button\">
                   </td>
                 </tr>
                 </table>
                 </form>
                 "
            ;
            }
            echo 
            "$ok";
            ?>
            vielleicht hilft es....
            Zuletzt geändert von Mr.Fies; 04.07.2002, 02:18.

            Kommentar


            • #7
              Hallo, ich habe gerade mal Dein Script ausprobiert, es geht auch einigermassen, nur ändert es automatisch den Code wenn ich ihn neu speichere:

              Orginal:

              31.01.03|12:14|test|test@email.de|keine|<img src="grafik/ichbindoof.gif"> test<br / >

              Nach dem speichern:

              31.01.03|12:14|test|test@email.de|keine|<img src=\"grafik/ichbindoof.gif\"> test<br / >



              Wer kann mir da helfen?
              Gruss
              Adihas

              Kommentar


              • #8
                Hallo, ich habe gerade mal Dein Script ausprobiert, es geht auch einigermassen, nur ändert es automatisch den Code wenn ich ihn neu speichere:
                benutze strip_slashes() um die \ wieder wegzubekommen.
                I don't believe in rebirth. Actually, I never did in my whole lives.

                Kommentar


                • #9
                  Also muss ich einfach strip_slashes() einfügen?

                  Kommentar


                  • #10
                    Original geschrieben von adihas
                    Also muss ich einfach strip_slashes() einfügen?
                    darauf giabt's jetzamoal koa antwort, des probierst jetz oimfach amoal aus, gelle...?
                    I don't believe in rebirth. Actually, I never did in my whole lives.

                    Kommentar

                    Lädt...
                    X