phpmyadmin nicht start
bearbeitet von ursus contionabundoIch habe mal alle Typos korrigiert, den Code ein wenig aufgeräumt und die gröbsten Strukturfehler beseitigt,
**Ich markiere den Code als "schlecht", weil er zwar funktioniert aber als Gästebuch nicht wirklich brauchbar ist.**
~~~php,bad
<?php
class ClassProveContakt3 {
private $dbHost = 'localhost'; # Host der Datenbank
private $dbName = 'name'; # Name der Datenbank
private $dbUser = 'user'; # Name der Datenbank
private $dbPass = 'pass'; # Passwort
private $Name;
private $Email;
private $Message;
private $PostOK;
private $DateTime;
private $items;
private $ip;
private $dbh;
function __construct() {
$this -> ip = $_SERVER['REMOTE_ADDR'];
$this -> DateTime = date('m/d/Y h:i:s a');
$this -> items = ['Name', 'Email', 'Message'];
$flag = true;
foreach ( $this -> items as $key ) {
if ( empty ( $_POST[$key] ) ) {
$flag = false;
} else {
#trigger_error('Codepoint __construct:1 ' . $key . ': ' . $_POST[$key]);
$this -> $key = trim( filter_var( $_POST[$key], FILTER_SANITIZE_STRING ) );
$this -> $key = trim( $_POST[$key] );
}
}
#trigger_error('Codepoint __construct:2 TRUE');
$this -> PostOk = $flag;
#trigger_error('Codepoint __construct:3 ' . $this -> PostOk );
}
private function getConnection() {
// Establish connection with MYSQL Server
try {
$this -> dbh = new PDO( 'mysql:host=' . $this -> dbHost . ';dbname=' . $this -> dbName, $this -> dbUser, $this -> dbPass );
} catch ( PDOException $pe ) {
trigger_error ("Cannot connect to database: " . $pe -> getMessage() , E_USER_ERROR );
}
}
private function reportPDOError( $message, $sql ) {
$info = $this -> dbh -> errorInfo();
echo "<div style='color:red'><b>Error in SQL Access: $message</b>";
echo "<br>SQL-Statement: $sql";
echo "<br>PDO SQLSTATE: $info[0]";
echo "<br>MySQL error code: $info[1]";
echo "<br>MySQL error message: $info[2]</div>";
}
private function unsetFormdata() {
foreach ( $this -> items as $key ) {
unset( $_POST[$key] );
}
}
function ShowForm() {
?>
<!-- <form method="POST" action="https://home.fastix.org/phpinfo.php">-->
<form method="POST"">
<label for="name"><b>Name * </b></label>
<input type="text" id="name" name="Name" value="<?=@htmlentities( $_POST['Name'] );?>">
<label for="email"><b>E-mail * </b></label>
<input type="email" id="email" name="Email" value="<?=@htmlentities( $_POST['Email'] );?>">
<br><br>
<label><b> Message * </b><br>
<textarea cols="45" rows="6" id="text" name="Message"><?=@htmlspecialchars( $_POST['Message'] );?></textarea>
</label>
<br><br>
<input type="submit" name="post" value="POST COMMENT" id="comment">
</form>
<?php
}
function TestPostData() {
if ( $this -> PostOk ) {
$this -> writeCommentToDatabase();
} else {
echo '<div class="msg">*** Please enter all required fields ***</div>';
}
}
function writeCommentToDatabase() {
// Establish connection with MYSQL Server
if ( ! $this -> dbh ) {
$this -> getConnection();
}
//Prepare Query of SQL
$statement = $this -> dbh -> prepare("INSERT INTO mela(name, email, message, datetime, ip) VALUES (:name, :email, :message, :date, :ip)");
if ( ! $statement ) {
trigger_error( 'prepare failed: SQLSTATE=' . $this -> dbh -> errorCode() . ', Error Info=' . print_r( $this -> dbh -> errorInfo(), true ), E_USER_ERROR ) ;
} else {
$ok = $statement -> bindValue( ':name', $this -> Name, PDO::PARAM_STR )
&& $statement -> bindValue( ':email', $this -> Email, PDO::PARAM_STR )
&& $statement -> bindValue( ':message', $this -> Message, PDO::PARAM_STR )
&& $statement -> bindValue( ':date', date("Y-m-d H:i:s"), PDO::PARAM_STR )
&& $statement -> bindValue( ':ip', $this -> ip, PDO::PARAM_STR );
if ( ! $ok ) {
echo "<br><br>bindValue failed: SQLSTATE=" . $this -> dbh -> errorCode() . ", Error Info=" . print_r( $dbh -> errorInfo(), true ) . "</p>";
}
}
if ( $ok ) {
$ok = $statement -> execute();
}
if ( ! $ok ) {
trigger_error( "execute failed: SQLSTATE=" . $this -> dbh -> errorCode() . ", Error Info=" . print_r($this -> dbh -> errorInfo(), true), E_USER_ERROR );
} else {
echo '<div class="msg">Data Inserted successfully!</div>';
$this -> unsetFormdata();
return $ok;
}
}
function getMessages()
{
if ( ! $this -> dbh ) {
$this -> getConnection();
}
$sql = "SELECT name, email, message, datetime FROM mela ORDER BY datetime DESC";
$statement = $this -> dbh -> query( $sql );
if ( ! $statement ) {
$this -> reportPDOError('SQL-Error:', $sql );
return false;
}
$result = $statement -> fetchAll( PDO::FETCH_ASSOC );
if ( false === $result ) {
$this->reportPDOError( "fetchAll(ASSOC) failed", $sql );
}
foreach ($result as $message) {
?>
<article>
<h2>Message from <?=htmlspecialchars( $message['name'] ) ?> <<?= htmlspecialchars( $message['email'] ); ?>></h2>
<p>Created <?=htmlspecialchars( $message['datetime'] ); ?></p>
<p><?=htmlspecialchars( $message['message'] ); ?></p>
</article>
<?php
}
}
}
$Newobject = new ClassProveContakt3();
$Newobject -> TestPostData();
$Newobject -> ShowForm();
$Newobject -> getMessages();
~~~
phpmyadmin nicht start
bearbeitet von ursus contionabundoIch habe mal alle Typos korriogiert und den Code ein wenig aufgeräumt:
Ich marloere den Code als bad, weil
~~~php,bad
<?php
class ClassProveContakt3 {
private $dbHost = 'localhost'; # Host der Datenbank
private $dbName = 'name'; # Name der Datenbank
private $dbUser = 'user'; # Name der Datenbank
private $dbPass = 'pass'; # Passwort
private $Name;
private $Email;
private $Message;
private $PostOK;
private $DateTime;
private $items;
private $ip;
private $dbh;
function __construct() {
$this -> ip = $_SERVER['REMOTE_ADDR'];
$this -> DateTime = date('m/d/Y h:i:s a');
$this -> items = ['Name', 'Email', 'Message'];
$flag = true;
foreach ( $this -> items as $key ) {
if ( empty ( $_POST[$key] ) ) {
$flag = false;
} else {
#trigger_error('Codepoint __construct:1 ' . $key . ': ' . $_POST[$key]);
$this -> $key = trim( filter_var( $_POST[$key], FILTER_SANITIZE_STRING ) );
$this -> $key = trim( $_POST[$key] );
}
}
#trigger_error('Codepoint __construct:2 TRUE');
$this -> PostOk = $flag;
#trigger_error('Codepoint __construct:3 ' . $this -> PostOk );
}
private function getConnection() {
// Establish connection with MYSQL Server
try {
$this -> dbh = new PDO( 'mysql:host=' . $this -> dbHost . ';dbname=' . $this -> dbName, $this -> dbUser, $this -> dbPass );
} catch ( PDOException $pe ) {
trigger_error ("Cannot connect to database: " . $pe -> getMessage() , E_USER_ERROR );
}
}
private function reportPDOError( $message, $sql ) {
$info = $this -> dbh -> errorInfo();
echo "<div style='color:red'><b>Error in SQL Access: $message</b>";
echo "<br>SQL-Statement: $sql";
echo "<br>PDO SQLSTATE: $info[0]";
echo "<br>MySQL error code: $info[1]";
echo "<br>MySQL error message: $info[2]</div>";
}
private function unsetFormdata() {
foreach ( $this -> items as $key ) {
unset( $_POST[$key] );
}
}
function ShowForm() {
?>
<!-- <form method="POST" action="https://home.fastix.org/phpinfo.php">-->
<form method="POST"">
<label for="name"><b>Name * </b></label>
<input type="text" id="name" name="Name" value="<?=@htmlentities( $_POST['Name'] );?>">
<label for="email"><b>E-mail * </b></label>
<input type="email" id="email" name="Email" value="<?=@htmlentities( $_POST['Email'] );?>">
<br><br>
<label><b> Message * </b><br>
<textarea cols="45" rows="6" id="text" name="Message"><?=@htmlspecialchars( $_POST['Message'] );?></textarea>
</label>
<br><br>
<input type="submit" name="post" value="POST COMMENT" id="comment">
</form>
<?php
}
function TestPostData() {
if ( $this -> PostOk ) {
$this -> writeCommentToDatabase();
} else {
echo '<div class="msg">*** Please enter all required fields ***</div>';
}
}
function writeCommentToDatabase() {
// Establish connection with MYSQL Server
if ( ! $this -> dbh ) {
$this -> getConnection();
}
//Prepare Query of SQL
$statement = $this -> dbh -> prepare("INSERT INTO mela(name, email, message, datetime, ip) VALUES (:name, :email, :message, :date, :ip)");
if ( ! $statement ) {
trigger_error( 'prepare failed: SQLSTATE=' . $this -> dbh -> errorCode() . ', Error Info=' . print_r( $this -> dbh -> errorInfo(), true ), E_USER_ERROR ) ;
} else {
$ok = $statement -> bindValue( ':name', $this -> Name, PDO::PARAM_STR )
&& $statement -> bindValue( ':email', $this -> Email, PDO::PARAM_STR )
&& $statement -> bindValue( ':message', $this -> Message, PDO::PARAM_STR )
&& $statement -> bindValue( ':date', date("Y-m-d H:i:s"), PDO::PARAM_STR )
&& $statement -> bindValue( ':ip', $this -> ip, PDO::PARAM_STR );
if ( ! $ok ) {
echo "<br><br>bindValue failed: SQLSTATE=" . $this -> dbh -> errorCode() . ", Error Info=" . print_r( $dbh -> errorInfo(), true ) . "</p>";
}
}
if ( $ok ) {
$ok = $statement -> execute();
}
if ( ! $ok ) {
trigger_error( "execute failed: SQLSTATE=" . $this -> dbh -> errorCode() . ", Error Info=" . print_r($this -> dbh -> errorInfo(), true), E_USER_ERROR );
} else {
echo '<div class="msg">Data Inserted successfully!</div>';
$this -> unsetFormdata();
return $ok;
}
}
function getMessages()
{
if ( ! $this -> dbh ) {
$this -> getConnection();
}
$sql = "SELECT name, email, message, datetime FROM mela ORDER BY datetime DESC";
$statement = $this -> dbh -> query( $sql );
if ( ! $statement ) {
$this -> reportPDOError('SQL-Error:', $sql );
return false;
}
$result = $statement -> fetchAll( PDO::FETCH_ASSOC );
if ( false === $result ) {
$this->reportPDOError( "fetchAll(ASSOC) failed", $sql );
}
foreach ($result as $message) {
?>
<article>
<h2>Message from <?=htmlspecialchars( $message['name'] ) ?> <<?= htmlspecialchars( $message['email'] ); ?>></h2>
<p>Created <?=htmlspecialchars( $message['datetime'] ); ?></p>
<p><?=htmlspecialchars( $message['message'] ); ?></p>
</article>
<?php
}
}
}
$Newobject = new ClassProveContakt3();
$Newobject -> TestPostData();
$Newobject -> ShowForm();
$Newobject -> getMessages();
~~~