liebewinter: Wie verwalte meine PHP Formular-Kommentar

Erste zu sage dass die meine kenntnissi über html/css wie php sehr einfacher sind...Ich habe diese Code für meinen Formular-Kommentar .Aber sehe das ich mit diese Code nicht viel machen kann... .Ich habe in internet verschieden Formular-Kommentar gesehen aber sie haben JavaScript ,jQuery ,.. . Meine frage ist , ich brauche für eine einfache Formular-Kommentar mit PHP so viele sachen ??

Die andere frage ist , mit eine einfacche Formular-Kommentar mit PHP erreich zu haben nur phpmyadmin ?

  1. Hello,

    um ein einfaches Formular zur Speicherung von Eingaben aufzubauen, benötigst Du nur HTML und auf dem Server (in deinem Fall) PHP.

    Was Du bauen willst, findest Du auch beschrieben unter "Affenformular".

    Im Prinzip funktioniert die Logik folgendermaßen:

    1. PHP-Datei mit dem Formular und nachfolgender Ausgabe aufrufen.
    2. Formular ausfüllen und per Submit wieder an das Script schicken.
    3. Im Script Formulardaten übernehmen, kontrollieren und bei Erfolg
    4. in Datei eintragen (write).
    5. Im Script Datei auslesen und zusammen mit dem Formular wieder ausgeben an Client.

    Diesen Turnus kannst Du auch noch ergänzen um Fehlermeldungen, Zugriffsberechtigungen, seitenweise Ausgabe, usw.

    Zu deinem Beispiel gibt es noch einiges zu sagen, aber das folgt demnächst separat.

    Liebe Grüße
    Tom S.

    --
    Es gibt nichts Gutes, außer man tut es!
    Das Leben selbst ist der Sinn.
    1. Hello,

      im PHP-Teil fehlen mindestens zwei geschweifte Klammern.

      Ich rate daher immer dazu, dass Anfänger keinen PHP-Kurzcode schreiben, sondern sich erst einmal eine explizite Schreibweise und den Allman-Style angewöhnen, in der sie auch penetrant mit Einrückungen und Kommentaren arbeiten.

      Kommentare sollten nich den Code direkt in Umgangssprache wiederholen, sondern die Intention des Programmierers für den jeweils nächsten Programmabschnitt wiedergeben, beschreiben woher welche verwendeten Variablen stammen und sie der Abschnitt mit seiner Umgebung zusammenarbeiten soll.

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. Danke für deine hilfe! , eine frage...ich kenne Ein bissen Python aber ich habe keine ahnung über PHP... was würdest du mir empfehlt ?

        ich versuche jetzt PHP Ein Bissen zu lerne hier aber für meine Website script brauchen mehr ?? , Beispiel das ? .

    2. Hello,

      am HTML habe ich nicht wirklich etwas geändert. Das sollte noch diskutiert werden, auch wie man das Design mittels CSS steuern kann.

      Aber so funktioniert das Script erst einmal. Dazu muss dein PHP im Verzeichnis Dateien anlegen dürfen.

      <?php  ### messages.php ### utf8 ### äöüÄÖÜ ###
          header('Content-Type: text/html; Charset=utf-8');
          mb_internal_encoding('UTF-8');
          date_default_timezone_set('Europe/Berlin');    
      ?>
      <html>
          <head>
              <title>Message schreiben</title>
          </head>
          <body>
              <h1>Messages</h1>
              <h2>Insert new Message:</h2>
              <form action="" method="post">
                  <label> Name: <br><input type="text" name="name"><br></label>
                  <label> Message: <br><textarea cols="45" rows="6" name="text"></textarea><br></label>
                  <input type="submit" name="post" value="post">
              </form>
      
      <?php 
          ### Wenn die Felder für die Pflichteingaben alle gesendet wurden,
          ### Daten und Markup gemischt wegschreiben in Datei:
      	if(isset($_POST['post'], $_POST['name'], $_POST['text']))
      	{
              ### hier eventuell noch prüfen, ob die Felder auch ausgefüllt wurden
              
              $write = fopen('messages.inc.html', "a+");
      		fwrite($write, '<u><b>' . htmlspecialchars($_POST['name']) . '</b></u><br>' . 
                  htmlspecialchars($_POST['text']) . PHP_EOL . 
                  '<hr>' . PHP_EOL); 
      		fclose($write);
          }
      
          ### wenn eine Datei vorhanden ist, alle Daen auslesen:    
          clearstatcache();  ### ist notwendig, da PHP Datei-Metadaten zwischenspeichert
          if ($read = @fopen('messages.inc.html', "rb"))   
          {   
              echo "<h2>Read all Messages:</h2>";
      
              while(!feof($read))
              { 
                  echo fread($read, 1024);
              }
      
              fclose($read);
          }
          ### sonst eine Message ausgeben:
          else
          {
              echo "<h2>No Messages availabe</h2>";        
          }
      ?>
      
          </body>
      </html>    
      

      Liebe Grüße
      Tom S.

      --
      Es gibt nichts Gutes, außer man tut es!
      Das Leben selbst ist der Sinn.
      1. Viel dank für deinen bemühst !

        Diese code habe gescriebe ganz Oben

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

        ohne <!doctype html> , mit ihn , verendert ganz Website....

        Die date_default_timezone_set('Europe/Berlin'); hat keine wirkung auf der Website ,die UHR wird nicht gezeigt....

        wenn ich fülle alles und dann gibe zum absenden , kommt nichts....

        Wie meine Website aussiehst....

        wie meine website aussiehst nach dem ich alles ausgefülltet habe

        1. Hello,

          dann geht es an die Fehlersuche:

          kann die Datei für die Messages angelegt werden?
          Kannst Du direkt auf dem Server in die Datei hineingucken? Was steht drin?

          Gibt es Fehlermeldungen im Browser, im error-log, oder im php-error-log?

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
          1. Gibt es Fehlermeldungen im Browser, im error-log, oder im php-error-log?

            es gibt keine.... aber es passiert eine Kömmisse sache , auf meine Browser habe ein fenster nur mit deine codec , noch habe andere Fenster mit meinem codec und deine .Wenn schreibe auf dem fenster mit deine Code alles geht gut ,mit meine codec nicht , aber wenn druck auf absenden , bekomme was auf dem andere fenster geschrieben habe .....

            1. Hello,

              es gibt keine.... aber es passiert eine Kömmisse sache [...]

              Dann brauchen wir deinen Code!
              Raten, wo der Fehler steckt, ist hier kaum möglich.

              Liebe Grüße
              Tom S.

              --
              Es gibt nichts Gutes, außer man tut es!
              Das Leben selbst ist der Sinn.
              1. Meine code ,ich wird gepostet wie die Ordnung hat..

                PHP

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

                HTML

                <html>
                <head>
                	<title>Kontakt</title>
                <style>
                

                CSS

                body {
                background-color: #ebf5d7;
                grid-gap: 5px;
                grid-template-columns: 10% 72% 17%;
                grid-template-areas:
                
                
                "header   header   header"
                "nav      nav      nav"
                "linkBox  linkBox  linkBox"
                "main     main     main"
                "infoBox  infoBox  infoBox"
                "footer   footer   footer" ;
                }
                @media screen and (min-width: 40em) {
                  body {
                    display: grid;
                    grid-template-columns: 10% 72% 17%;
                      grid-template-areas:
                  "header  header  header"
                  "nav     nav     nav"
                  "linkBox main    infoBox"
                  "footer  footer  footer";
                  }
                }
                body > header {
                	grid-area: header;
                	background-image: url("../meine2.png");
                    padding: 60px;
                }
                
                body > nav {
                	grid-area: nav;
                	background-color: #d2f5c4;
                
                }
                
                body > #externalLinks {
                	grid-area: linkBox;
                	background-color:  #d2f3c6;
                	;
                }
                body > main {
                	grid-area: main;
                	background-color: #eaf6e5;
                }
                
                body > #furtherInformation {
                	grid-area: infoBox;
                	background-color: #d2f3c6;
                }
                
                body > footer {
                	grid-area: footer;
                	background-color: #99ee7a;
                
                }
                
                
                /* Nav  */
                
                nav {background-color: #d2f5c4;}
                
                nav a{
                    color: black;
                    text-decoration: none;
                	display: inline;
                	padding: 0px 8px;
                	font-size: 17px;
                	font-family:  Candara, Calibri, Segoe, "Segoe UI", Optima, sans-serif;
                }
                
                nav ul {list-style-type: none;}
                
                nav li {display: block;display:inline-block;}
                
                
                /* ExternalLinks  */
                
                #externalLinks a	{
                
                    text-decoration: none;
                	display: block;
                	text-align: center;
                
                    font-size: 15px;
                	font-family: Candara, Calibri, Segoe, "Segoe UI", Optima, sans-serif;
                }
                
                #externalLinks ul {
                	list-style-type: none;
                	margin: 5px;
                    padding: 0;
                
                }
                
                #externalLinks li{float: left}
                
                /* Geben an Link1, link2, link3 ; Farbe , Padding, .... */
                
                
                li a, .dropbtn {
                    display: block;
                    color: #000;
                    padding: 8px 16px;
                    text-decoration: none;
                
                }
                
                li a:hover, .dropdown:hover .dropbtn { background-color: #f1ebeb;}
                
                .dropdown-content {
                    display: none; /* display wird ausgeschaltet ,aber erlaubt die anderen elemente, position ,background ,.... */
                    font-size: 15px;
                	position: absolute; /* die stellung folgt der Erste Link(li) */
                    background-color: #f1f1f1 ;
                    min-width: 160px; /* macht größer die Inneren Links */
                    box-shadow: 0px 8px 16px 0px rgba(0,0,0,0.2); /* Bau ein Schatte und geben an dem Schatten Farbe  */
                    z-index: 1;    /*  Zeigen die Ordnung wie die Links gezeigt werden... */
                
                }
                
                .dropdown-content a {
                    color: black;
                    padding: 12px 16px;
                    text-decoration: none;               /* Bekomme die Liks keine Unten Stricht ....*/
                    display: block;
                }
                
                .dropdown-content a:hover {
                background-color: #9f9e9e;
                }
                /* Offnen die Innere Links */
                
                .dropdown:hover .dropdown-content {
                    display: block;
                	 left: 109px;       /* zeigt wo dem innere link fenster gezeigt wird */
                     top: 214px;       /* zeigt wo dem innere link fenster gezeigt wird */
                
                }
                
                /*    Main           */
                
                input, textarea{
                			background:rgba(220,220,220,0.75);
                			border:1px solid rgba(220,220,220,0.75);
                			font:inherit;
                			border-radius:0.2941em;/*5px;*/
                			padding:0.4118em;/*7px;*/
                			/*farbigen Rahmen in Chrome und Safari abschalten.*/
                			outline:none;
                }
                
                input:focus, textarea:focus{
                			background:#fff;
                			border:1px solid #000;
                	        outline: none; /* einige Browser add line auf input , das verhindert es... */
                }
                input[type=submit]{
                			background:#be633c;
                			border:none;
                			color:#fff;
                			border-radius:50% 50%;
                			box-shadow:inset 0 0 1em #fb9d23;
                			padding:0.5882em;/*10px*/
                }
                input[type=submit]:focus, input[type=submit]:active{
                		 background-color:#A33202;
                }
                
                
                
                
                
                /* Footer  */
                
                #copry {
                	overflow: auto;
                	font-size: 2px;
                    list-style-type: none;
                	font-family:  Candara, Calibri, Segoe, "Segoe UI", Optima, sans-serif;
                
                }
                
                #img1 {float: left;margin-bottom: 3px;}
                #copry a {text-decoration: none;margin-bottom: 3px;}
                #copry p {font-size: 10px;margin-bottom: 0;}
                
                HTML
                
                ~~~html
                <body>
                
                <header></header>
                <nav>
                  <ul>
                    <li><a href="https://wiki.selfhtml.org/wiki/HTML/Seitenstrukturierung/nav">Home</a></li>
                    <li><a href="https://wiki.selfhtml.org/wiki/HTML/Tutorials/HTML5-Seitenstrukturierung">About Us</a></li>
                    <li><a href="#">Contact</a></li>
                  </ul>
                </nav>
                
                
                <aside id="externalLinks">
                <ul>
                  <li class="dropdown">
                    <a href="#" class="dropbtn">Computer</a>
                     <div class="dropdown-content">
                       <a href="#">Linux Mint</a>
                       <a href="#">Ubuntu</a>
                       <a href="#">Debian</a>
                       <a href="#">Android</a>
                	  </div>
                  <li><a href="#">News</a></li>
                  <li><a href="#">Bucher</a></li>
                
                 </ul>
                
                </aside>
                
                <main>
                
                
                
                <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
                
                
                	<p>Vorname *<br>
                		<input placeholder="my name" name="name" size="30" maxlength="50" type="text">
                
                     </p>
                	<p>E-Mail *<br>
                		<input placeholder="mail@example.com" name="email" size="30" maxlength="50" type="email">
                		<br>
                    </p>
                	<p>Nachricht *<br>
                		<textarea placeholder="Write something to us" name="text" rows="5" cols="40" maxlength="200" style="width: 678px; height: 203px;"></textarea>
                	</p>
                	<p>
                		<input value="absenden" type="submit">
                	</p>
                </form>
                
                PHP
                
                ~~~php
                <?php 
                    ### Wenn die Felder für die Pflichteingaben alle gesendet wurden,
                    ### Daten und Markup gemischt wegschreiben in Datei:
                if(isset($_POST['post'], $_POST['name'], $_POST['text']))
                {
                        ### hier eventuell noch prüfen, ob die Felder auch ausgefüllt wurden
                        
                        $write = fopen('messages.inc.html', "a+");
                		fwrite($write, '<u><b>' . htmlspecialchars($_POST['name']) . '</b></u><br>' . 
                            htmlspecialchars($_POST['text']) . PHP_EOL . 
                            '<hr>' . PHP_EOL); 
                		fclose($write);
                }
                
                    ### wenn eine Datei vorhanden ist, alle Daen auslesen:    
                    clearstatcache();  ### ist notwendig, da PHP Datei-Metadaten zwischenspeichert
                if ($read = @fopen('messages.inc.html', "rb"))   
                {   
                        echo "<h2>Read all Messages:</h2>";
                
                        while(!feof($read))
                { 
                            echo fread($read, 1024);
                }
                
                        fclose($read);
                }
                    ### sonst eine Message ausgeben:
                    else
                {
                        echo "<h2>No Messages availabe</h2>";        
                }
                ?>
                
                HTML 
                
                ~~~html
                
                </main>
                
                <aside id="furtherInformation"></aside>
                
                <footer id="copry" >
                	<p>My Website: Linux and More  © 2018. All Rights Reserved.</p>
                <a id="img1" href="https://creativecommons.org/licenses/by-nc/4.0/"><img alt="Creative Commons License" width="120px" height="40px" src="../CC-Lizenz.png" ></a>
                <p>This work is licensed under a Creative Commons Attribution-NonCommercial 4.0<br> International License.
                	Content of this site cannot be republished<br> either online or offline without our permissions. </p>
                
                </footer>
                
                
                </body>
                </html>
                
                1. Hello,

                  auf den ersten Blick:

                  <input value="absenden" type="submit">
                  

                  Da fehlt der Name des Objektes (name="post"). Der wird im Script per PHP geprüft.

                  Durch den Rest steige ich jetzt noch nicht durch. Ich bin vom PC aufs Tablet umgestiegen. Da habe ich keine Testmöglichkeit.

                  Liebe Grüße
                  Tom S.

                  --
                  Es gibt nichts Gutes, außer man tut es!
                  Das Leben selbst ist der Sinn.
                  1. Vieeeeeeeel danke , das war das probleme !!! , für mich ist gut von heute....morgen Arbeite (ich arbeite als Spüler) ,es wäre für dich keine probleme , wenn näschte mal eine probleme ich dich wird gefragt ?

                    ich wünsche dir eine schöne Abends !

                    1. Hello,

                      Vieeeeeeeel danke , das war das probleme !!!

                      Kannst Du uns bitte noch einen Link auf deine Seite senden, wenn sie öffentlich ist?

                      wäre für dich keine probleme , wenn näschte mal eine probleme ich dich wird gefragt?

                      Es ist für uns kein Problem, Dir zu helfen. Das tun hier alle gerne.
                      Welche Muttersprache hast Du?

                      Liebe Grüße
                      Tom S.

                      --
                      Es gibt nichts Gutes, außer man tut es!
                      Das Leben selbst ist der Sinn.
                      1. Kannst Du uns bitte noch einen Link auf deine Seite senden, wenn sie öffentlich ist?

                        ja , aber das soll noch Ein Bissen wartet .... ich möchte noch PHP verarbeitet , Bei Spiel , ich möchte wenn jemand ihre kommentar schreibt , ihre e-mail zu sehen , auch wenn er wird nicht gezeigt..., ich möchte auch über sicherheit auf PHP kümmere , ich habe gelesen das oft Website mit PHP wird gehackt... , ich möchte auch lernen Phpmyadmin ,ich denke wenn jemand ein Website hat , muss sie Verwaltet und ich denke phpmyadmin kann die lösung zu sein.... , dann kommt den Artikel ...ich möchte Über Linux schreiben , jetzt habe Ein Bissen arbeit bekomme das bedeutet das ich nicht viel Zeit habe wie die letze Zeit hatte ....aber ich möchte wie schneller möglich meine Website beende...

                        Welche Muttersprache hast Du?

                        ich komme aus den Baskenland , aber ich sprecht auch spanische ....

                      2. Warum nicht funzioniert

                        date_default_timezone_set('Europe/Berlin');

                        wenn gebe eine name und ein Text , bekomme beiden, aber die UHR nicht...

      2. ich möchte dir sagen wenn nur schreibe deine Code , alles funzioniert Gut !

        wie deine website aussiehst....wie deine website aussiehst

        das probleme ist auf meine Website................

        1. Hello,

          ich möchte dir sagen wenn nur schreibe deine Code , alles funzioniert Gut !

          Dann ist die Frage geklärt, ob die Messages-Datei erstellt werden darf. :-)

          das probleme ist auf meine Website................

          Dann benötigen wir leider den gesamten Code von der Seite, um den Fehler zu suchen.
          Oder Du musst nach und nach Kontrollausgaben einbauen.

          Liebe Grüße
          Tom S.

          --
          Es gibt nichts Gutes, außer man tut es!
          Das Leben selbst ist der Sinn.
  2. Moin! Kann es sein dass auf Deinem Webserver überhaupt kein PHP läuft (installiert und gestartet ist?) Viele Grüße jup

    1. ich sehe alles gut . ich habe alles installiert.....das probleme ist wie bauen ich ein gute php code für Formular-Kommentar...