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...