tkm76
09-17-2011, 04:03 PM
Hi guys,
I'm having a problem with my guestbook script. It's not displaying data entered into the table, it just outputs names of specific columns.
In this manner:
Entries found.
Posted by name (email) on timestamp:
message
Posted by name (email) on timestamp:
message
Posted by name (email) on timestamp:
message
I'm not getting any error messages and that makes it difficult to understand what is actually wrong with this code. Any ideas what needs to be done? Thanks in advance!
<?php
if (mysql_connect('localhost','root','password') && mysql_select_db('phpdemo')) {
$time = time();
$errors = array();
if (isset($_POST['guestbook_name'], $_POST['guestbook_email'], $_POST['guestbook_message'])) {
$guestbook_name = mysql_real_escape_string(htmlentities( $_POST['guestbook_name']));
$guestbook_email = mysql_real_escape_string(htmlentities( $_POST['guestbook_email']));
$guestbook_message = mysql_real_escape_string(htmlentities( $_POST['guestbook_message']));
if (empty($guestbook_name) || empty($guestbook_email) || empty($guestbook_message)) {
$errors[] = 'All fields are required.';
}
if (strlen($guestbook_name)>25 || strlen($guestbook_email)>50 || strlen($guestbook_message)>250){
$errors[] = 'One or more fields exceeded the character limit!';
}
if (empty($erros)) {
$insert = "INSERT INTO guestbook VALUES ('','$time','$guestbook_name','$guestbook_email','$guestbook_message')";
if (mysql_query($insert)){
header ('Location: '.$_SERVER['PHP_SELF']);
} else {
$errors[] = 'Something went wrong. Try again.';
}
} else {
foreach($errors as $error) {
echo'<p><strong>'.$error.'</strong></p>';
}
}
}
// display entries
$entries = mysql_query("SELECT 'timestamp', 'name', 'email', 'message' FROM guestbook ORDER BY 'timestamp' DESC");
if (mysql_num_rows($entries)==0){
echo 'No entries, yet.';
} else {
echo 'Entries found.';
while ($entries_row = mysql_fetch_assoc($entries)){
$entries_timestamp = $entries_row['timestamp'];
$entries_name = $entries_row['name'];
$entries_email = $entries_row['email'];
$entries_message = $entries_row['message'];
echo '<p><strong>Posted by '.$entries_name.' ('.$entries_email.') on '.$entries_timestamp.'</strong>:<br>'.$entries_message.'</p>';
}
}
} else {
echo 'Could not connect at this time.';
}
?>
<hr>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
<strong>Post something...</strong><br>
Name:<br><input type="text" name="guestbook_name" maxlength="25"><br>
Email: <br><input type="text" name="guestbook_email" maxlength="250"><br>
Comment body: <br><textarea name="guestbook_message" rows="6" cols="30" maxlength="250"></textarea><br>
<input type="submit" value="Submit comment">
</form>
I'm having a problem with my guestbook script. It's not displaying data entered into the table, it just outputs names of specific columns.
In this manner:
Entries found.
Posted by name (email) on timestamp:
message
Posted by name (email) on timestamp:
message
Posted by name (email) on timestamp:
message
I'm not getting any error messages and that makes it difficult to understand what is actually wrong with this code. Any ideas what needs to be done? Thanks in advance!
<?php
if (mysql_connect('localhost','root','password') && mysql_select_db('phpdemo')) {
$time = time();
$errors = array();
if (isset($_POST['guestbook_name'], $_POST['guestbook_email'], $_POST['guestbook_message'])) {
$guestbook_name = mysql_real_escape_string(htmlentities( $_POST['guestbook_name']));
$guestbook_email = mysql_real_escape_string(htmlentities( $_POST['guestbook_email']));
$guestbook_message = mysql_real_escape_string(htmlentities( $_POST['guestbook_message']));
if (empty($guestbook_name) || empty($guestbook_email) || empty($guestbook_message)) {
$errors[] = 'All fields are required.';
}
if (strlen($guestbook_name)>25 || strlen($guestbook_email)>50 || strlen($guestbook_message)>250){
$errors[] = 'One or more fields exceeded the character limit!';
}
if (empty($erros)) {
$insert = "INSERT INTO guestbook VALUES ('','$time','$guestbook_name','$guestbook_email','$guestbook_message')";
if (mysql_query($insert)){
header ('Location: '.$_SERVER['PHP_SELF']);
} else {
$errors[] = 'Something went wrong. Try again.';
}
} else {
foreach($errors as $error) {
echo'<p><strong>'.$error.'</strong></p>';
}
}
}
// display entries
$entries = mysql_query("SELECT 'timestamp', 'name', 'email', 'message' FROM guestbook ORDER BY 'timestamp' DESC");
if (mysql_num_rows($entries)==0){
echo 'No entries, yet.';
} else {
echo 'Entries found.';
while ($entries_row = mysql_fetch_assoc($entries)){
$entries_timestamp = $entries_row['timestamp'];
$entries_name = $entries_row['name'];
$entries_email = $entries_row['email'];
$entries_message = $entries_row['message'];
echo '<p><strong>Posted by '.$entries_name.' ('.$entries_email.') on '.$entries_timestamp.'</strong>:<br>'.$entries_message.'</p>';
}
}
} else {
echo 'Could not connect at this time.';
}
?>
<hr>
<form action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>" method="POST">
<strong>Post something...</strong><br>
Name:<br><input type="text" name="guestbook_name" maxlength="25"><br>
Email: <br><input type="text" name="guestbook_email" maxlength="250"><br>
Comment body: <br><textarea name="guestbook_message" rows="6" cols="30" maxlength="250"></textarea><br>
<input type="submit" value="Submit comment">
</form>