liebewinter: ich habe das fehler gefunde

Beitrag lesen

So, wie deine Code verstande habe ...

Mit dem Schlüsselwort private können die Eigenschaften nur innerhalb dieser Klasse verändert werden.

function __construct() , fragt WENN & OB , wird auch benutz um die eigenschaft ein wert zuzuweisen , der Später auch beim Objekt zugreifen erlaubt .Der function ShowData () fragt WAS und WIE , was gezeigt wird ...

Deine Code und die bedeutung von jeden Zeile..

class ClassProveContakt2 {

      private $Name     = '';    #Geben an der Eigenschafte keine Wert .
      private $Email    = '';
      private $Message  = '';
      private $PostOk   = false; #Geben an den eigenschaften einen Wahrheitswert , False .
      private $DateTime = false;
      private $items    = false;

      function __construct() { # wird benutz für duchführen jeden Parameter von einem Objekt .
      
          $this -> DateTime = date('m/d/Y h:i:s a');  #Benutze 'this' für zugriff auf dem Eingenschaft, 'DateTime' , und geben dem Wert , 'date' .
          $this -> items = ['Name', 'Email', 'Message']; #Name, Email und message gehören jetz zum Eigenschaft, items .
          
          $flag = true;
          foreach ( $this -> items as $key ) {   #key ist jetz die neue Variable name für items, mit dem foreach-schleifeder iteriren was auf der items Variable gibt .
			        if ( empty ( $_POST[$key] ) )  { #Wenn die Formularfelder nicht ausgefüllt werden... .
			            $flag = false;    #...false , deshalb wird nichts gezeigt . 
			        } else {    #Werden die ausgefülltet data gezeigt .
			           $this -> $key = trim( filter_var( $_POST[$key], FILTER_SANITIZE_STRING ) );
			       }    #trim= löschen leerraum, filter_var= Filtern einer Variablen mit einem angegebenen Filter, Beispiel, hier   FILTER_SANITIZE_STRING.., FILTER_SANITIZE_STRING= wird benutz um Sicherheit.. , Beispiel verhindert Cross-site Scripting  .

		      }	    
          $this -> PostOk = $flag; #Gebe an dem Eigenschaft 'PostOK' das Wert dem auf '$flag' ist , true .
      }
  
      function ShowForm() {

        echo '<form method="POST">'
        . '<label for="Name">Name: </label><input type="text" name="Name" id="Name" value="' . htmlspecialchars( $this -> Name ) . '"><br>'
        . '<label for="Email">Email: </label><input type="email" name="Email" id="Email" value="' . htmlspecialchars( $this -> Email ) . '"><br>'
        . '<label> Message: </label><br><textarea cols="45" rows="6" name="Message">'. htmlspecialchars( $this -> Message ) . '</textarea>'
        . '<br><br>'
        . '<input type="submit" name="post" value="POST COMMENT" id="comment">'
        . '</form>';
      }

      function ShowData () {
          if( $this -> PostOk ) { #Wenn true , zeigen Name, Email und Message .
          
             $ShowItems = $this -> items; #Bauen die '$ShowItems' Eigenschafte , mit dem Wert von 'items' .
             array_unshift( $ShowItems, 'DateTime' ); #Mit , array_unshift , addiert die eingeschaft '$DateTime' zum array , items .
             
             echo '<table><tr>';
             foreach ( $ShowItems as $ColName ) {
                 echo"<th>" . htmlspecialchars( $ColName ) . "</th>"; #Hier werden die Titels von der Tabelle Name, Email und Message gebaut .
             }
             echo '</tr><tr>';
             
             foreach ( $ShowItems as $ColName ) {
    			      echo"<td>" . htmlspecialchars( $this -> $ColName ) . "</td>"; #Hier werden gezeigt was auf Formularfelder eingefüllen haben.
    	       }
             echo "</tr></table>";
         } else {  #Wenn nicht eingefüllt wird , bekomme dieser Warnung .
             echo '<h3>*** Please enter all required fields ***</h3>';
         }
      }

was ich nicht verstande warum hast der Wert false bei

      private $PostOk   = false; 
      private $DateTime = false;
      private $items    = false;

...geschrieben und nicht einen leer eigenschaft gegeben...