Log in

View Full Version : Need Help...



mellnet
11-19-2007, 09:52 AM
I am new to php; i am creating a guest book; i got a code from net; but it doesn't work; plssss help
THis is my config.php


<?php
$dbhost = 'localhost';
$dbuser = '###### HIDDEN #########';
$dbpass = '###### HIDDEN #########';
$dbname="mysql";
?>

<?php
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql');

$dbname = 'mysql';
mysql_select_db($dbname);

?>

THis is my guestbook.php


<?php
// include the database configuration and
// open connection to database
include 'library/config.php';
include 'library/opendb.php';

// check if the form is submitted
if(isset($_POST['btnSign']))
{
// get the input from $_POST variable
// trim all input to remove extra spaces
$name = trim($_POST['txtName']);
$email = trim($_POST['txtEmail']);
$url = trim($_POST['txtUrl']);
$message = trim($_POST['mtxMessage']);

// escape the message ( if it's not already escaped )
if(!get_magic_quotes_gpc())
{
$name = addslashes($name);
$message = addslashes($message);
}


// if the visitor do not enter the url
// set $url to an empty string
if ($url == 'http://')
{
$url = '';
}

// prepare the query string
$query = "INSERT INTO $table (name, email, url, message, entry_date) VALUES

('$name', '$email', '$url', '$message', current_date)";

// execute the query to insert the input to database
// if query fail the script will terminate
mysql_query($query) or die('Error, query failed. ' . mysql_error());

// redirect to current page so if we click the refresh button
// the form won't be resubmitted ( as that would make duplicate entries )
header('Location: ' . $_SERVER['REQUEST_URI']);

// force to quite the script. if we don't call exit the script may
// continue before the page is redirected
exit;
}


?>
<html>
<head>
<title>Guestbook</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="styles/styles.css">
<script language="JavaScript">
/*
This function is called when
the 'Sign Guestbook' button is pressed
Output : true if all input are correct, false otherwise
*/
function checkForm()
{
// the variables below are assigned to each
// form input
var gname, gemail, gurl, gmessage;
with(window.document.guestform)
{
gname = txtName;
gemail = txtEmail;
gurl = txtUrl;
gmessage = mtxMessage;
}

// if name is empty alert the visitor
if(trim(gname.value) == '')
{
alert('Please enter your name');
gname.focus();
return false;
}
// alert the visitor if email is empty or the format is not correct
else if(trim(gemail.value) != '' && !isEmail(trim(gemail.value)))
{
alert('Please enter a valid email address or leave it blank');
gemail.focus();
return false;
}
// alert the visitor if message is empty
else if(trim(gmessage.value) == '')
{
alert('Please enter your message');
gmessage.focus();
return false;
}
else
{
// when all input are correct
// return true so the form will submit
return true;
}
}

/*
Strip whitespace from the beginning and end of a string
Input : a string
Output : the trimmed string
*/
function trim(str)
{
return str.replace(/^\s+|\s+$/g,'');
}

/*
Check if a string is in valid email format.
Input : the string to check
Output : true if the string is a valid email address, false otherwise.
*/
function isEmail(str)
{
var regex = /^[-_.a-z0-9]+@(([-a-z0-9]+\.)+

(ad|ae|aero|af|ag|ai|al|am|an|ao|aq|ar|arpa|as|at|au|aw|az|ba|bb|bd|be|bf|bg|bh|bi|biz|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|com| coop|cr|cs|cu|cv|cx|cy|cz|de|dj|dk|dm|do|dz|ec|edu|ee|eg|eh|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gh|gi|gl|gm|gn|gov|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr| ht|hu|id|ie|il|in|info|int|io|iq|ir|is|it|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|mg|mh|mil|mk|ml|mm|mn|mo|mp|mq|mr| ms|mt|mu|museum|mv|mw|mx|my|mz|na|name|nc|ne|net|nf|ng|ni|nl|no|np|nr|nt|nu|nz|om|org|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|pro|ps|pt|pw|py|qa|re|ro|ru|rw|sa|sb|sc|sd|s e|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sy|sz|tc|td|tf|tg|th|tj|tk|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|um|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|yu|za|zm|zw )|(([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5])\.){3}([0-9][0-9]?|[0-1][0-9][0-9]|[2][0-4][0-9]|[2][5][0-5]))$/i;
return regex.test(str);
}
</script>
</head>
<body>

<form method="post" name="guestform">
<table width="550" border="0" cellpadding="2" cellspacing="1">
<tr>
<td width="100">Name *</td> <td>
<input name="txtName" type="text" id="txtName" size="30" maxlength="30"></td>
</tr>
<tr>
<td width="100">Email</td>
<td>
<input name="txtEmail" type="text" id="txtEmail" size="30" maxlength="50"></td>
</tr>
<tr>
<td width="100">Website URL</td>
<td>
<input name="txtUrl" type="text" id="txtUrl" value="http://" size="30"

maxlength="50"></td>
</tr>
<tr>
<td width="100">Message *</td> <td>
<textarea name="mtxMessage" cols="80" rows="5" id="mtxMessage"></textarea></td>
</tr>
<tr>
<td width="100">&nbsp;</td>
<td>
<input name="btnSign" type="submit" id="btnSign" value="Sign Guestbook" onClick="return

checkForm();"></td>
</tr>
</table>
</form>
<br>
<br>


showing error "Error, query failed. No database selected"

Removed MySQL username/password. Don't EVER EVER display it on the web.

tech_support
11-19-2007, 09:53 AM
Oh, sorry, what do you need help with? I can't see what you need by looking at the title. And probably 80% of people in this forum won't be bothered to help you as well.

Added later:

You'll need to create an actual database for this. Create a database using MySQL, then use


mysql_select_db('mydbname');

after the mysql_connect line.

djr33
11-19-2007, 09:58 AM
Should have something to do with this:
mysql_select_db($dbname);

That would imply that it isn't properly selecting that database.

Is "mysql" the proper name for the database on your setup? Sounds generic.

ddadmin
11-19-2007, 10:51 AM
Welcome to the forums mellnet. Please try and use a more descriptive title when posting a question in the future (versus "need help..." etc).

Thanks,

mellnet
11-20-2007, 03:34 AM
Yes; i had given my database name as 'mysql' and my table name as guestbook1, but whenever i am trying to run the guestbook.php file; i got error showing "Error, query failed. No database selected". I think you are right it is not properly selecting the database. So what i have to do for that. I had searched lot of tutorials and i can't solve the problem yet.

Thanks for your reply
Melvin.....

ajmaske
11-20-2007, 09:08 AM
Hey Mellnet,

First glance... your using the mysql database ... That's not really a good idea, MySQL uses this database for it's self and, although you can use it, it really isn't a good idea...

I would create a new database like ... "MyGuests" or something ... then a table like "GuestBook" ...

then try the follow...



<?php

$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';

$conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql' . mysql_error());

$dbname = 'MyGuests';
mysql_select_db($dbname) or die ("Error opening $dbname: " . mysql_error());

$table = "GuestBook";
$query = "INSERT INTO $table (name, email, url, message, entry_date) VALUES ('%s', '%s', '%s', '%s', current_date)";

$query = sprintf($query, mysql_real_escape_string($name),
mysql_real_escape_string($email),
mysql_real_escape_string($url),
mysql_real_escape_string($message));

?>


As a matter of fact, re-reading your code... in your INSERT statement your using a variable $table... but no where in your code are you populating it with any value ... Thats probably why your INSERT statement is failing ... appending the mysql_error() to the die statement would tell you for sure what is going on...

The mysql_real_escape_string (http://us3.php.net/manual/en/function.mysql-real-escape-string.php) helps to keep your data and database secure from attacks...

boogyman
11-20-2007, 01:21 PM
$query = "INSERT INTO $table (name, email, url, message, entry_date) VALUES ('%s', '%s', '%s', '%s', current_date)";

$query = sprintf($query, mysql_real_escape_string($name),
mysql_real_escape_string($email),
mysql_real_escape_string($url),
mysql_real_escape_string($message),
date('M d, Y', time())
);


you forgot the entry date in your code. aj

ajmaske
11-21-2007, 05:55 AM
aahhh... thanks... long day and even longer night ... :o