Kommentar wird nicht in Tabelle gezeigt

  • erste zu sage das mein deutsch nicht so gut ist und php kenntnisse sehr einfach ist…

    so , ich habe diese Kommentar in php gebaut..


    Wenn die test.php Datei wird auf meine Browser geöffnet , bekomme alles zusammen ohne Tabelle...


    a:4:{s:4:"name";s:7:"vvvvvvv";s:5:"email";s:2:"gg";s:7:"message";s:14:"vvvvvvvvvvvvvv";s:8:"datetime";s:22:"09/08/2018 12:09:22 pm";}
    a:4:{s:4:"name";s:4:"vvvv";s:5:"email";s:16:"bccc@hotmail.com";s:7:"message";s:39:"vvvvvvvvvv


    kann Bitte jemand hilfe ?

  • Jetz habe das Code so;


    HTML
    <!doctype html>
    <html>
    <head>
    <meta charset="utf-8"/>
    </head>
    <body>
    HTML
    </body>
    </html></body>
    </html>


    ich habe $data = serialize( $data ); gelöscht , wie du sagst , aber was einzige ich bekomme ist der Tittel . Auf meine prove_kontak2.php


    habe meine Kommentar zu fühlen , wie auf Anfang der dieser Beitrag habe...

  • Zeilen 29 ist schon mal ein Fehler.

    Beim 2 ten html hast du body und html doppelt.

    Deine echo Abrage in 17 sieht mir auch etwas merkwürdig aus. ( Das sage ich aber unter vorbehalt weil ich mir da jetzt ohne testen nicht sicher bin)

  • Klassischer Fall von


    Richtig debuggen


    1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
    2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(-1);
    3. Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
    4. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
    5. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysqli_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
    6. Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
    7. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
    8. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
    9. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.
  • danke für eure empfehlungen ! , jetzt habe "etwas" verendert....


    auf meine prove_contakt2.php , habe meine Kommentar zu einfühlen.. und ich möchte bekomme der Name , datetime und Message zurück...



    Auf dem test.php , habe meinen php Code und wo möchte auch meine tabelle zu zeigen ..




    das probleme bekomme wenn auf prove_contakt2.php wird eingefült , kommt nichts.. und sie wird zur test.php Datei eingezogen.....

  • dreh doch mal error report hoch .

    Fehler zeile 17

    Fehler zeile 66 ein } Fehlt

    Bei deinen echo in 51 , warum hast du da ." und " zuviel ? Also ich kenne das so nicht . Vieleicht darf man das so machen das weiß ich nicht .Wird im error Report auch nicht angezeigt. Nur wie gesagt ich kenne das so nicht ,da kann wer anders mehr zu sagen.


    Hättest du den Post von m.scatello gelesen und auch so gemacht würdest du die Fehler auch selber finden.



    Ps:

    Code
    <button  type="submit" name="post"  value="POST COMMENT">POST COMMENT</button>

    Das value kannst du weg lassen wenn du den nich mit nach php schicken willst. Der Button Name wird ja zwischen den Tags <button> Hier </button> angegeben.

  • ich bin raus!

    Kann ich verstehen, vor allem weil man einfaches debuggen schon vor dem Forum posten tun sollte.


    Ich kann ja viele sachen verstehen warum einer welche Fehler macht, wir fangen alle klein an, aber das zumindest der error report hoch gedreht werden soll beim programmieren das sollte man eigentlich als erstes beachten.

    Wäre der error report an hättest du einiges an Zeit gesparrt und das Script hättest du auch schon von alleine zum laufen bekommen.

    Nochmal zur erinnerung, das

    Code
    error_reporting(-1);
    ini_set('display_errors', true);

    kommt ganz am anfang deines Scriptes, dann findest du die meißten Fehler auch selber.

    Das sollte man beim programmieren immer benutzen ( gerade als anfänger ).Wenn das Script dann läuft kann man die beiden Zeilen wieder löschen.

    Dann mach das erstmal und wenn du dann nicht weiter kommst dann meld dich nochmal.

  • Stimmt, aber irgendwann lernt man es.


    So zurück zum Code.

    Er hat in Zeile 17 ja eine echo Ausgabe wo " und Punkte sind. Sollte das der error report nicht anzeigen ?

    Als ausgabe sieht man den " und Punkt auch nicht.

  • Da ist zu vieles falsch.


    Was erwartest Du z.B. an dieser Stelle?

    PHP
    if(empty($_POST['name']) || empty($_POST['email']) || empty($_POST['message'])) {
                    
    } echo "<br><b><h3>*** Please enter all required fields ***</h3></b>";
    else
    {

    Mit dem angesprochenen ErrorReporting würdest Du hier schon den ersten Fehler erhalten.


    Benutzereingaben solltest Du immer filtern:

    PHP
    $name = filter_input( INPUT_POST, 'name', FILTER_SANITIZE_STRING ); 
    $email = filter_input( INPUT_POST, 'email', FILTER_SANITIZE_STRING ); 
    $message = filter_input( INPUT_POST, 'message', FILTER_SANITIZE_STRING );

    Diese Abfrage:

    PHP
    if(isset($_POST["name"]) && isset($_POST["email"]) && isset($_POST["message"]))

    kommt zu spät, Du hast bereits zuvor versucht darauf zuzugreifen.


    Hier wieder etwas komplett sinnloses:

    PHP
    if ( $line > 0) {
       }

    Auch in $data steht etwas anders, als Du erwartest. Wenn Du es so befüllst:

    PHP
    $data = array("name" => $name, "email" => $email, "message" => $message);

    hast Du ein Array, nach diesem Schema:

    Code
    Array (
        [name] => 'Hans Wurst'
        [email] => 'hans.wurst@example.com'
        [message] => 'einmal mit CurrySoße'
    )

    Wenn Du jetzt foreach ( $data as $line ) verwendest, hast Du in $line immer nur ein Element:

    Code
    1. Durchlauf: Hans Wurst
    2. Durchlauf: hans.wurst@example.com
    3. Durchlauf: einmal mit CurrySoße

    Da Du eine Schleife verwendest, liegt die Vermutung nahe, dass Du an der Stelle alle bisherigen Kommentare der Reihe nach anzeigen willst. Dazu sollte Dein Array $data aber anders aufgebaut sein:

    Code
    Array (
        [0] => Array (
            [name] => 'Hans Wurst'
            [email] => 'hans.wurst@example.com'
            [message] => 'einmal mit CurrySoße'
        )
    )

    Und selbst wenn Du das hast, stimmt Deine Verarbeitung innerhalb der foreach nicht.

    Du musst dann nämlich auf $line zugreifen und nicht auf $data.


    Bei manchen anderen Sachen kann man ein Auge zudrücken, aber das waren jetzt mal die Selbstverständlichkeiten, die Dir längst hätten selbst auffallen sollen.

  • Erste zu sagen danke für eure empfehlungen ! , @m.scatello Bitte ergert du dich nicht , ich Arbeite als Spüler , Abends kann nur zwei Stunde lernen weil sehr Müde bin und noch , bin ich keine Junge mehr.... , ich möchte euch nicht mehr frage bis ich alles eure Vorschlagen gelesen und verstehe habe....;)

  • Du solltest nichts persönlich nehmen, was hier geschrieben wird. Wenn wir darauf beharren, dass Du debuggen sollst oder eigentlich die meisten Sachen hättest selbst sehen sollen, meinen wir das konstruktiv, auch wenn es nicht so rüber kommen mag.


    Du kannst uns aber ruhig glauben, manche hier haben einiges an Erfahrungen und wissen, dass das am Ende den größeren Lerneffekt hat.

    Keiner meint das böse...

    ;)

  • ich weiss gestern habe gesagt das erste möchte alles lesen und dann später euch etwas frage<X , ich möchte erste versuche mit ein Code teil und dann mit dem andere....


    @Arne Drews du fragst was ich mit disen Code möchte :


    Zitat
    1. if(empty($_POST['name']), empty($_POST['email']), empty($_POST['message'])) {
    2. } echo "<br><b><h3>*** Please enter all required fields ***</h3></b>";
    3. else
    4. {


    ich möchte wenn jemand nicht alle Drei input-Elementen eingefüllt hat , dieses warnung bekommt.....


    so was jetzt versuche...


    mein Code auf prove_contakt2.php


    PHP
    <?php  ### messages.php ### utf8 ### äöüÄÖÜ ###
        header('Content-Type: text/html; Charset=utf-8');
        mb_internal_encoding('UTF-8');
        date_default_timezone_set('Europe/Berlin');
    ?>



    Mein Code auf test.php



    HTML
    <html>
    <head>
    <meta charset="utf-8"/>
    </head>
    <body>


    HTML
    </body>
    </html>


    Erste möchte versuche wenn jemand alle drei input-Elemente eingefüllt hat , bekomme auf der Datei prove_contakt2.php , alle Drei Elemente die bevor eingefühlt hat , aber bekomme die Warnung der du bevor bewartst hast...


    Zitat


    Mit dem angesprochenen ErrorReporting würdest Du hier schon den ersten Fehler erhalten.


    ich kann dieser warnung nicht behalte wenn gleichzeit benutze ?

    1. error_reporting(-1);
    2. ini_set('display_errors', true);
  • ich kann dieser warnung nicht behalte wenn gleichzeit benutze ?

    1. error_reporting(-1);
    2. ini_set('display_errors', true);

    Ich verstehe dich zwar nicht ganz ,aber den Code setzt du ganz am Anfang deines Php scriptes und Löscht den erst wenn alles Fehlerfrei läuft und das Script fertig ist. Fals das Script irgendwann nicht mehr läuft ( wegen Updates oder so ) schreibst du den Code wieder rein zum Fehler suchen.

    Aber sonst beim programieren sollte der error report immer voll hoch gedreht sein,weil du siehst ja was der dir an Fehler anzeigt , die du ohne nicht gesehen hättest.


    Code
    $name = filter_input( INPUT_POST, 'name', FILTER_SANITIZE_STRING); 
         $email = filter_input(INPUT_POST, 'email', FILTER_SANITIZE_STRING); 
         $message = filter_input(INPUT_POST, 'message', FILTER_SANITIZE_STRING);

    diese Zeilen kommen glaube ich weiter nach oben ,bevor du damit irgendwas machst. Aber das kann dir Arne Drews besser erklären.


    Was ist den jetzt mit dein array passiert ? Willst du das jetzt ohne array und schleife machen?

  • Erste danke für deine hilfe !


    Zitat


    Was ist den jetzt mit dein array passiert ? Willst du das jetzt ohne array und schleife machen?


    ich habe das Code in zwei teil geteilt ;


    Erste Teil ,

    ich möchte alle drei input-Element werden eingefühlen und dann werden sie auf prove_contakt2.php gezeigt .


    Zweite Teil;


    ich möchte die array und schleife benutze um meine Tabelle mit den Name , email , Message auf test.php gezeigt werden .


    Ich habe in zwei Teilen geteilt um besser die fehler zu suchen.... Erste Anfang mit einem Kleine Code und wenn keine Probleme bekomme , gehen weiter.....

  • Ich habe in zwei Teilen geteilt um besser die fehler zu suchen.... Erste Anfang mit einem Kleine Code und wenn keine Probleme bekomme , gehen weiter.....

    Finde ich gut. So habe und mache ich das auch noch wenn es mir zu viel auf einmal ist und ich nicht ganz durchblicke.

  • Leider verstehe auch ich Dich ganz schlecht.

    Was ich auf den ersten Blicke sehe ist, dass Du bspw. den ersten Fehler, auf den ich in #13 hinaus wollte, in #16 nicht mehr machst.


    Nun weiß ich nicht, ob Du es verstanden und den Fehler korrigiert hast oder Du einfach Deinen Code tlw. falsch postest?!


    Wie sieht es denn mit anderen Sprachen aus? Kannst Du Dich in englisch vielleicht besser ausdrücken? Dann probier das mal.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!