Probleme mit Gästebuch

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

  • Probleme mit Gästebuch

    Hallo! Bin neu hier also hoffe ich, dass ich hier richtig bin.
    Habe gerade erst begonnen mit PHP und MySQL zu arbeiten und möchte nun ein Gästebuch machen aber iwie will das nicht so wie ich.

    Es werden zwar die Beiträge, dich ich direkt in die MySQL-Datenbank schreibe angezeigt aber ich kann direkt auf der Site keine neuen schreiben, bearbeiten oder löschen. Beziehungsweise funktioniert die Formatierung auch noch nicht so wirklich aber das is momentan nicht wirklich tragisch...


    PHP-Code:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Gaestebuch</title>
    </head>
    <body>
    <?php

        $root 
    "############";
        
        
    // MySQL-Verbindung herstellen
        
    $db_link    mysql_connect("#######","#######","#######");
        
    $db        mysql_select_db("########",$db_link);

        
    $beitraege    5;


    if (!isset(
    $action)) {
        
    $action "show";
        }
    if (!isset(
    $seite)) {
        
    $seite 1;
        }
    if (
    $action == "show") {
        echo
    "<html>".
        
    "<head>".
        
    "<title>Gaestebuch</title>".
        
    "</head>".
        
    "<body>"
        
    $conn mysql_connect("localhost","usr_tchausmening","m3lz3r");
        
    mysql_select_db($db);
        
    $anfang = ($seite-1)*$beitraege+1;
        
    $ende $anfang+$beitraege-1;
        
    $query "SELECT * FROM t_gaestebuch ORDER BY c_dtum DESC";
        
    $result mysql_query($query,$conn);
        
    $gesamt mysql_num_rows($result);

        if (
    $gesamt == 0) {
            echo 
    "Keine Beiträge vorhanden!";
            }
            
    $counter 1;
        if (
    $ende $gesamt) { $ende $gesamt; }
        echo
    "<table cellspacing=\"2\" cellpadding=\"2\" border=\"1\" align=\"center\">";
        while (
    $zeileholen mysql_fetch_array($result,MYSQL_ASSOC)) {
            if ((
    $counter >= $anfang) AND ($counter <= $ende)){
                echo
    "<tr width=\"20%\">".
                
    "<td>geschrieben von :<br>".stripslashes($zeileholen["c_name"])."<br><br><br>eMail :".stripslashes($zeileholen["c_email"]).                        
                
    "</td>".
                
    "</tr>".
                
    "<tr>".
                
    "<td><br>am ".$zeileholen["c_dtum"]."</td>".
                
    "<td colspan=\"2\" cols=\"20\">".stripslashes(nl2br(htmlentities($zeileholen["c_eintrag"])))."</td>".
                
    "</tr>";
            }
        
    $counter++;
        }
        echo 
    "<tr><td>";
        if (
    $seite == 1){
            echo
    " ";
        }
        else{
            echo
    "<a href=\"php/gaestebuch/main.php?action=show&seite=".($seite-1)."\">zurück</a>";
        }
            echo
    "</td><td><a href=\"php/gaestebuch/main.php?action=edit\">neuer Beitrag</a></td><td>";
        if (
    $ende >= $gesamt){
            echo
    " ";
        }
        else{
            echo
    "<a href=\"php/gaestebuch/main.php?action=show&seite=".($seite+1)."\">weiter</a>";
        }
        echo 
    "</td></tr>";
        echo
    "</table>";
    }

    if (
    $action == "edit")
    {
    echo
    "<html>".
    "<head>".
    "<title>Gaestebuch</title>".
    "</head>".
    "<body>";
    echo
    "Bitte hier schreiben :";
    echo
    "<form action=\"php/gaestebuch/main.php?action=insert\" method=\"post\">".
    "<table cellspacing=\"2\" cellpadding=\"2\" border=\"1\">".
        
    "<tr>".
            
    "<td>Name : </td>".
            
    "<td><input type=\"text\" name=\"name\" size=\"30\" maxlength=\"50\"></td>".
        
    "</tr>".
        
    "<tr>".
            
    "<td>eMail : </td>".
            
    "<td><input type=\"text\" name=\"email\" size=\"30\" maxlength=\"50\"></td>".
        
    "</tr>".
        
    "<tr>".
            
    "<td>Titel :</td>".
            
    "<td><input type=\"text\" name=\"titel\" size=\"30\" maxlength=\"100\"></td>".
        
    "</tr>".
        
    "<tr>".
            
    "<td>Beitrag :</td>".
            
    "<td><textarea cols=\"70\" rows=\"20\" name=\"beitrag\"></textarea></td>".
        
    "</tr>".
        
    "<tr>".
            
    "<td><input type=\"submit\" name=\"sub\" value=\"Eintragen\"></td>".
            
    "<td><input type=\"reset\" name=\"res\" value=\"Reset\"></td>".
        
    "</tr>".
    "</table>".
    "</form>";
    }
    if (
    $aktion == "insert")
    {
    $conn mysql_connect($db_link);
    mysql_select_db($db);
    $datum date("Y-m-d H:i:s",time());
    $query "INSERT INTO t_gaestebuch VALUES ('', '".addslashes($c_name)."', '".addslashes($c_email)."', '".addslashes($c_eintrag)."' ,'".$datum."')";
    $result mysql_query($query,$conn);
    if (!
    $result)
    {
    die (
    "Sorry, Datenbankeintrag hat nicht funktioniert");
    }
    mysql_close($conn);
    }
    ?>


    </body>
    </html>
    Kann mir bitte jemand helfen?? Wäre echt dankbar..

    Lg

  • #2
    Was wird denn überhaupt angezeigt?

    Meiner Meinung nach ist jede Bedingung unwahr, da ab PHP 4.x.x standadmäßig die register_globals = off gesetzt wurde in der PHP Config.

    Aus diesem Grund ist deine Variable lediglich in $_POST['action'] enthalten und $action darf standardmäßig nicht existieren.

    Was man aus Sicherheitsgründen auch so belassen sollte
    [color=blue]MfG Payne_of_Death[/color]

    [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
    [color=red]Merke:[/color]
    [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

    Murphy`s Importanst LAWS
    Jede Lösung bringt nur neue Probleme
    Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
    In jedem kleinen Problem steckt ein großes, das gern raus moechte.

    Kommentar


    • #3
      http://hanoi.boozle.de/tchausmening/...ite=gaestebuch

      also das wird angezeigt...
      eine tabelle mit 2 spalten, in der die daten der sql-datenbank ausgegeben werden...

      Kommentar


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

        lesen und befolgen, danke!

        Kommentar


        • #5
          Du solltest mal deinen Code übersichtlicher gestalten z. B. so

          PHP-Code:
          if($blubb)
          {
            if(
          $bla)
               echo 
          'test';
            else 
              if(
          $blubb)
                echo 
          "test';

          Jedenfalls solltest du auf Anhieb sehen können wie alles zusammenhängt.

          Dann als nächstes wie gesagt verwende register_globals = off in deiner php.ini

          Das diese Einstellung getroffen wurde siehst du ja bereits daran das:
          http://hanoi.boozle.de/tchausmening/...ch&action=edit

          zur selben Ausgabe führt


          Variabeln die per Url oder Formular (Method=post) übergeben werden sind lediglich in den Superglobalen
          $_GET bzw. $_POST enthalten

          Um auf beide Variabeln abzuprüfen, könntest du dich z.B. $_REQUEST bedienen.

          Du solltest aber POST bevorzugen

          PHP-Code:
          if( $_REQUEST['action'] == 'edit')
          .....
          ... 
          Ach ja dein Stil alles mit if abzufragen ist nicht ganz sinnvoll, da ja immer nur eine einzige Bedingung eintreffen kann d.h.

          nimm entweder if...else.if...else..if...else
          oder gleich einen übersichtlicheren switch...case.break Block
          [color=blue]MfG Payne_of_Death[/color]

          [color=red]Manual(s):[/color] <-| PHP | MySQL | SELFHTML |->
          [color=red]Merke:[/color]
          [color=blue]Du brauchst das Rad nicht neu erfinden ! [/color]<-ForumSuche rettet Leben-> || <-Schau in den Codeschnippsels->

          Murphy`s Importanst LAWS
          Jede Lösung bringt nur neue Probleme
          Das Fluchen ist die einzige Sprache, die jeder Programmierer beherrscht.
          In jedem kleinen Problem steckt ein großes, das gern raus moechte.

          Kommentar

          Lädt...
          X