kostenloser Webspace werbefrei: lima-city


PHP gbook Adminbereich

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    hallo,
    ich möchte gerne eine Seite haben, wo kommentare zu Einträge abgegeben können und auch welche gelöscht werden können.
    Aber dat Kommentar abgeben geht net:
    1.) keine Übertragung der Daten aus dem Formular feld <input>
    2.) wir $Gästebuch-> net genommen also es wird nur KOmmen... eingetragen
    CODE:
    <html>
    <head>
    <title>Mein Gästebuch - Administration</title>
    </head>
    <body>
    <h2>Mein Gästebuch - Administration</h2>
    <?php
    
    
    
       $DatabasePointer = mysql_connect("ma-city.de", "U", "ad6");
       mysql_select_db("db__3", $DatabasePointer);
    
       if($_REQUEST['Loeschen'] && $_REQUEST['id'])
       {
          mysql_query("DELETE FROM guestbook WHERE id = '".$_REQUEST['id']."'", $DatabasePointer);
       }
    if($_REQUEST['kommentar'] && $_REQUEST['id'])
       {
          mysql_query("UPDATE guestbook Set message = '$Gaestebuch->message <br><i>Kommentar von Yinka:</i><br>".mysql_real_escape_string($_POST['kommentar'])."' WHERE id = '".mysql_real_escape_string($_GET['id'])."'", $DatabasePointer);
       }
    
    
       $ResultPointer = mysql_query("SELECT * FROM guestbook ORDER BY id ASC", $DatabasePointer);
    ?>
    
    <table border="0">
    <?php
       for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
       {
          $Gaestebuch = mysql_fetch_object($ResultPointer);
    ?>
     <tr>
      <td><b>#<?php echo$i+1; ?>: <?php echo$Gaestebuch->name; ?></b></td>
     </tr>
     <tr>
      <td><?php echo nl2br($Gaestebuch->message); ?></td>
     </tr>
     <tr>
    
     </tr>
     <tr>
      <td><a href="<?php echo$_SERVER['PHP_SELF']; ?>?Send=1&Passwort=<?php echo$_REQUEST['Passwort']; ?>&Loeschen=1&id=<?php echo$Gaestebuch->id; ?>">Eintrag löschen</a></td>
    <td>
    </td>
    <td>
    <input type="text" name="kommentar" value="sdf Kommentar" size="120"> <br>
                                                                      
    </td>
      <td>
    
    
    
    
    <a href="<?php echo$_SERVER['PHP_SELF']; ?>?Send=1&Passwort1=<?php echo$_REQUEST['Passwort']; ?>&kommentar=1&id=<?php echo$Gaestebuch->id; ?>">Eintrag kommentieren</a></td>
    
    
     </tr>
     <tr>
      <td><hr></td>
     </tr>
    <?php
       }
    ?>
    </table>
    
    </body>
    </html>


    Bitte helft mir den Fehler zu finden.

    Danke Dieme

    PS Hosted: http://hce.lima-city.de/yinka/gb/gaestebuch-administration.php

    Beitrag geaendert: 26.4.2007 15:48:13 von hce
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. e**6

    if($_REQUEST['kommentar'] && $_REQUEST['id'])

    Warum Request wenn es eigentlich $_GET[] sein sollte???

    Irgendwie solteste das script mal überarbeiten, das ist n bissel durcheinander.
    Input ohne <Form .......>..........</Form> ???

    Das funzt doch alles irgendwie nicht!
    Auch die Frage der Sicherheit (Codeinjektion) ist hier völlig nebensächlich behandelt!


    Beitrag geaendert: 26.4.2007 16:12:07 von ef06
  4. Hallo

    Also ich hab des bei mir auch mal gemacht und ich habe es immer auf folgende Weise gemacht - vllt kann ich dich ja dazu überzeugen^^

    Mach am Anfang einen auf (der Submitbutton muss den Namen "submit" tragen^^
    <?php
            if (!isset($_POST['submit'])) {
            hier dann alles was ausgegeben werden soll wenn der Submitbutton noch
            nicht gedrückt würde. }
    ?>

    Jetzt kommt der Code wenn der Submitbutton gedrückt wurde:
    <?php
                else {
                hier alles was passieren soll, wenn der Button gedrückt würde! }
    ?>


    Ansonsten kann ich auf die Schnelle keinen Fehler entdecken ...
    Hoffe mein Post war nicht ganz umsonst xD

    Gruß

    //EDIT-1
    Wie jemand wieder schneller war und ich dazu lerne xD
    Also <form ...></form> sollte man wirklich benutzen ..
    Aber ... $_REQUEST müsst eig richtig sein ... $_GET benutzt man, denn in der URL etwas hinterlegt ist .. $:REQUEST wenn man durch Drücken eines Buttons wohin gelangt.

    Beitrag geaendert: 26.4.2007 16:16:51 von derdeagle
  5. e**6

    if (!isset($_POST['senden'])&& !empty($_POST['kommentar'])) { 
        echo"
        Ausgabe wenn senden=True und Kommentar != leer"; 
    }else{ 
        echo "Kein Kommentar angegeben ";
    }
    
    echo"
     <form method=\"post\" action=\"$_SERVER[PHP_SELF]\">
      <input type=\"text\" name=\"kommentar\" size=\"120\"> <br>
      <input type=\"submit\" name=\"senden\" style=\"width:300\" value=\"senden\"><br>";



    Aber ... $_REQUEST müsst eig richtig sein ... $_GET benutzt man, denn in der URL etwas hinterlegt ist .. $:REQUEST wenn man durch Drücken eines Buttons wohin gelangt.


    Kurz erläutert!
    $_POST[''] - nur für Post
    $_GET[''] - nur für Get
    $_REQUEST[] - für Post als auch Get

    Guckst Du hier:
    http://de3.php.net/manual/en/language.variables.predefined.php


    Beitrag geaendert: 26.4.2007 16:57:08 von ef06
  6. e**6

    Sry (;-(

    Beitrag geaendert: 26.4.2007 16:37:41 von ef06
  7. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    Also habe um gescrieben geht auchh fast bis, dass mit dem kommentar, dann hohlt er sich noch net die ID spalte
    CODE:
    <html>
    <head>
    <title>Mein Gästebuch - Administration</title>
    </head>
    <body>
    <h2>Mein Gästebuch - Administration</h2>
    <?php
    
    
    
       $DatabasePointer = mysql_connect("mysql.lima-city.de", "U761", "ak16");
       mysql_select_db("db_77", $DatabasePointer);
    
       if($_REQUEST['Loeschen'] && $_REQUEST['id'])
       {
          mysql_query("DELETE FROM guestbook WHERE id = '".$_REQUEST['id']."'", $DatabasePointer);
       }
    
       $ResultPointer = mysql_query("SELECT * FROM guestbook ORDER BY id ASC", $DatabasePointer);
    ?>
    
    <table border="0">
    <?php
       for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
       {
          $Gaestebuch = mysql_fetch_object($ResultPointer);
    ?>
     <tr>
      <td><b>#<?php echo$i+1; ?>: <?php echo$Gaestebuch->name; ?></b></td>
     </tr>
     <tr>
      <td><?php echo nl2br($Gaestebuch->message); ?></td>
     </tr>
     <tr>
    
     </tr>
     <tr>
      <td><a href="<?php echo$_SERVER['PHP_SELF']; ?>?Send=1&Passwort=<?php echo$_REQUEST['Passwort']; ?>&Loeschen=1&id=<?php echo$Gaestebuch->id; ?>">Eintrag löschen</a></td>
    <td>
    </td>
    <td>
    <form form enctype='multipart/form-data' action='#' method='post'>
    <input type="text" name="kommentar" value="sdf Kommentar" size="120"> <br>
     <input type="submit" name="neueintrag" value="Eintragen">
     <input type="reset" value="L&ouml;schen">
    </form>
    
    </td>
      <td>
    
    
    
    
    
    
    
    
     </tr>
     <tr>
      <td><hr></td>
     </tr>
    <?php
       }
    ?>
    </table>
    
    
    <?php
    
    $verbindung = mysql_connect( "mysql.lima-city.de", "US1", "ad16"); //Verbindung
    
    if (!$verbindung) 
    { 
        echo "<br><center><b>- Keine Verbindung zur Datenbank -</b></center>"; 
        exit;  
    } 
    
    mysql_select_db("d_3");  
    
    
    if(isset($_POST['neueintrag'])){
    
    $kommentar = addslashes($_POST['kommentar']);
    
    
    $update = mysql_query("UPDATE guestbook Set
    message = '$Gaestebuch->message<br><i>Kommentar von Yinka:</i><br>$kommentar' WHERE id = '$Gaestebuch->id'  ");
    
    
    
    
    {
    echo 'Eintrag erfolgreich in die Datenbank eingetragen. Und die Homeseite abgedaten';
    }
    
    }
    
    
    ?>
    
    
    </body>
    </html>


    Also eher nur dieser Code ist relevant:
    $update = mysql_query("UPDATE guestbook Set
    message = '$Gaestebuch->message<br><i>Kommentar von Yinka:</i><br>$kommentar' WHERE id = '$Gaestebuch->id'  ");

    Doch dat geht net, aber wenn z.B. 1 oda so geht dat alles.

    Bitte schriebt mir, den Befehl

    thx
  8. e**6

    Im Post ist ja auch keine Id mitgegeben ???
    echo "
    <form method=\'post\' action=\'$_SERVER[PHP_SELF]\'>
    <input type='hidden' name='id' value='Gaestebuch->id'> // hier wird die Id mitgesendet!
    <input type='text' name='kommentar' value='sdf Kommentar' size='120'> <br> 
     <input type='submit' name='neueintrag' value='Eintragen'> 
     <input type='reset' value='L&ouml;schen'> 
    </form>";


    Nun würde das aber auch hier so aussehen :
    $update = mysql_query('UPDATE guestbook Set 
    message = '$Gaestebuch->message<br><i>Kommentar von Yinka:</i><br>$kommentar' WHERE id = '$_POST[id]'  ');

    Hier
    if($_REQUEST['Loeschen'] && $_REQUEST['id'])

    wird Post verwendet
    if($_POST['Loeschen'] && $_POST['id'])

    Auch hier würde ich an Deiner Stelle auch anders vorgehen :
    $Gaestebuch = mysql_fetch_assoc($ResultPointer);


    Der rest würde dann nicht mit $Gaestebuch->... aufgerufen sondern mit $Gaestebuch[........] ist meiner Meinung nach auch übersichtlicher!

    Zeile 38 ??? ist auch irgendwie quatsch!
    Löschen, eintragen und bearbeiten kannste doch alles in einem machen!

    Variablen $Gaestebuch sollten doch $gaestebuch geschrieben werden

    enctype='multipart/form-data' ist an dieser Stelle auch nicht notwendig!

    Auch dene Datenbank-Connecterei ist auchirgendwie doppelt gemopelt. Wenn das der Adminbereich ist gehe ich davon aus das es bei der Ausgabe und eingabe ebenfals mehrere Conneckts geben wird und da bietet es sich doch an das in einer anderen Datei zb. cfg.php und diese dann mittels includen("cfg.php") bzw. require_once("cfg.php") aufrufen. Sparst Dir sehr viel schreibarbeit und Dein Script wird auch übersichtlicher.

    Also so wie das im Moment ausschaut wird das alles nichts richtiges.

    Beitrag geaendert: 27.4.2007 17:27:40 von ef06
  9. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    habe bei der Ausgabe dat net mit mehreren Conections gemacht, Aber dat mit hidden id geht net. habe es mal als text gemacht und dort steht nur $Gaestebuch->id und dat mit POST geht net real.Vll. wäre einer so net und würde den Code kurz umschreiben. Akt:
    <html>
    <head>
    <title>Mein Gästebuch - Administration</title>
    </head>
    <body>
    <h2>Mein Gästebuch - Administration</h2>
    <?php
    
    
    
       $DatabasePointer = mysql_connect("mysql.lima-city.de", "USE61", "ad16");
       mysql_select_db("db_71_3", $DatabasePointer);
    
       if($_REQUEST['Loeschen'] && $_REQUEST['id'])
       {
          mysql_query("DELETE FROM guestbook WHERE id = '".$_REQUEST['id']."'", $DatabasePointer);
       }
    
       $ResultPointer = mysql_query("SELECT * FROM guestbook ORDER BY id ASC", $DatabasePointer);
    ?>
    
    <table border="0">
    <?php
       for($i = 0; $i < mysql_num_rows($ResultPointer); $i++)
       {
          $Gaestebuch = mysql_fetch_object($ResultPointer);
    ?>
     <tr>
      <td><b>#<?php echo$i+1; ?>: <?php echo$Gaestebuch->name; ?></b></td>
     </tr>
     <tr>
      <td><?php echo nl2br($Gaestebuch->message); ?></td>
     </tr>
     <tr>
    
     </tr>
     <tr>
      <td><a href="<?php echo$_SERVER['PHP_SELF']; ?>?Send=1&Passwort=<?php echo$_REQUEST['Passwort']; ?>&Loeschen=1&id=<?php echo$Gaestebuch->id; ?>">Eintrag löschen</a></td>
    <td>
    </td>
    <td>
    <?php echo '
    <form method="post" action="#">
    <input type="text" name="id1" value="$Gaestebuch->id">
    <input type="text" name="kommentar" value="sdf Kommentar" size="120"> <br>
     <input type="submit" name="neueintrag" value="Eintragen">
     <input type="reset" value="L&ouml;schen">
    </form>'; ?>
    
    
    </td>
      <td>
    
    
    
    
    
    
    
    
     </tr>
     <tr>
      <td><hr></td>
     </tr>
    <?php
       }
    ?>
    </table>
    
    
    <?php
    
    $verbindung = mysql_connect( "mysql.lima-city.de", "USER77761", "ad13kk16"); //Verbindung
    
    if (!$verbindung)
    {
        echo "<br><center><b>- Keine Verbindung zur Datenbank -</b></center>";
        exit;
    }
    
    mysql_select_db("db_77761_3");
    
    
    if(isset($_POST['neueintrag'])){
    
    $kommentar = addslashes($_POST['kommentar']);
    $id2 = addslashes($_POST['id1']);
    
    $update = mysql_query("UPDATE guestbook SET
    message = 'Kommentar von Yinka1:' WHERE id = '$id2' ");
    
    
    
    
    
    {
    echo 'Eintrag erfolgreich in die Datenbank eingetragen. Und die Homeseite abgedaten';
    }
    
    }
    
    
    ?>
    
    
    </body>
    </html>


    PS: Habe eine feste Nachricht und net aus Formular genommen.

    Beitrag geaendert: 27.4.2007 22:09:27 von hce
  10. e**6

    So....
    weil ichheute wieder einmal richtig lange weile hatte hab ich Dir das mal auf die schnelle umgeschrieben.
    hier als ZIP-Datei auspacken auf den web hochladen und testen!
    Evtl. die Logindaten ganz oben anpassen.
    und erst einmal nix ändern einfach testen!
    Sollte was nicht funzen werden wir weiter sehen......
    Habe es selber nicht getestet! Könnten also noch der eine oder andere kleine Fehler drin sein
    http://papapeter.pa.funpic.de/admin.zip

    ich hoffe das es Dir weiter hilft!

    Beitrag geaendert: 27.4.2007 21:16:06 von ef06
  11. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    thx an ef06 und es sind noch ein paar fehler drin also pls add me zu deiner Kontaktliste ICQ 252-350-746
  12. e**6

    Funktioniert es nun?
  13. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    Nein leider nicht und damit ich nicht wegen jeden Problem/Fehler hier antworten will, dachte ich wäre ICQ cool. Aber egal also Fehler:

    Parse error: syntax error, unexpected '"' in /home/webpages/lima-city/hce/html/yinka/gb/admin_test/unzip_admin/admin.php on line 23

    URL http://hce.lima-city.de/yinka/gb/admin_test/unzip_admin/admin.php
  14. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    habe es mal umgeschrieben/verbessert(hoffe ich), aber es passiert leider nichts. Also es werden weder Daten versendet bzw. gelöscht. habe probiert es mit fester id (z.B. 1) probiert ,doch es hat nicht geklappt.
    Akt. Code:
    <?php
    // Logindaten
    $user = "U761";
    $database= "db_77_3";	
    $host = "mysql.limacity.de";
    $password = "ad136";
    
    echo"
    <html>
    <head>
    <title>Mein Gästebuch - Administration</title>
    </head>
    <body>
    <h2>Mein Gästebuch - Administration</h2>";
    
    //Datenbank connecten
    $conn = @mysql_connect("$host","$user","$password") or die ("<p>Es konnte keine Verbindung zur Datenbank herstellt werden! MfG</p>");
     mysql_select_db("$database") or die ("<p>Die Datenbank konnte nicht ausgewählt werden! MfG</p>");
    
       if(isset($_POST['neueintrag']) && !empty($_POST['id'])){
        $kommentar = addslashes($_POST['kommentar']);
        $id = $_POST['id'];
        $update = mysql_query("UPDATE guestbook SET message = ' ". $kommentar. " ' WHERE id =' ". $id. " ' ");
       }
    
       if(isset($_POST['loeschen']) && !empty($_POST['id'])){
        mysql_query("DELETE FROM guestbook WHERE id = '". $_POST['id']. "'");
       }
    
       $i=1;
       $res = mysql_query("SELECT * FROM guestbook ORDER BY id asc");
       echo'<table border="0">';
         while ($data = mysql_fetch_assoc($res)){
          echo "
          <tr>
           <td><b>";
            echo $i++;
    	echo ": ".$data[name]."</b>
           </td>
          </tr>
          <tr>
           <td>";
            echo nl2br($data[message]);
            echo"
           </td>
          </tr>
          <tr>
          <td></td>
          <td></td>
          <td>
           <FORM METHOD='POST' ACTION='#'>
    	<input type='hidden' name='id' value='data[id]'>
    	<input type='text' name='kommentar' value='sdf Kommentar' size='120'><br>
    	<input type='submit' name='neueintrag' value='ändern'>
    	<input type='submit' value='L&ouml;schen'>
           </form>
          </td>
          <td>
         </tr>
         <tr>
          <td><hr></td>
         </tr>";
        }// ende while
        echo"
       </table>
     </body>
    </html>";
    ?>


    Bitte helft mir dabei.

    thx ab ef06 für den script


    URL:http://hce.lima-city.de/yinka/gb/admin_test/unzip_admin/admin1.php
  15. e**6

    ICQ nutze ich leider nicht eher Skype!
    ...ja das läst sich doch aber rausbekommen....
    ich schau noch mal....



    EDIT
    So habe das Spiel mal local demonstriert und bei mir funktioniert die Sache.
    Habe auch keine Fehler finden können!
    hier noch mal der link als Zip-File zum runterladen.
    http://papapeter.pa.funpic.de/admin.zip
    das auspacken - Hochladen und auf einen neuen Versuch!

    Sollte nichts geändert werden liegt es an den Datenbank-Daten, dass hier ein Fehlerchen besteht.
    Heißen die Spalten auch message und id?
    Habe in diesem Script (änderung) die neu eingetragene message bei jedem durchlauf angezeigt! Dh. wenn eine änderung gemacht wurde diese gleich angezeigt! War vorher eine feste Ausgabe und dann kann sich auch nichts ändern (;-(

    Deine geänderte action bringt auch nichts denn was soll das bringen :
    http://hce.lima-city.de/yinka/gb/admin_test/unzip_admin/admin1.php#

    Beitrag geaendert: 28.4.2007 9:32:41 von ef06
  16. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    also skype habe ich auch sag , mal pls name oda add me wolf-arek . Try dat gerade mit dem Script.

    thx für die mühe.
  17. e**6

    werde dir ne pn senden
  18. Autor dieses Themas

    hce

    hce hat kostenlosen Webspace.

    okay thx weil im script scheint ein fehler zu sein. Also gleich bei skype.
  19. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!