Jump to content

Archived

This topic is now archived and is closed to further replies.

hpughLW

What's wrong with this code?

Recommended Posts

I keep getting an error message with this script. What seems to be the problem? PHP is very new to me, so I appreciate anyone who can help me! The database name, table name, username and password have all been replaced with dummies, FYI.

<?

//check for required query string variables
if (!$_GET[id]) {
header("Location:http://localhost/contact_menu.php");
exit;
} else {
//if form variables are present,start a session
session_start();
}

//check for validity of user
if ($_SESSION[valid] != "yes") {
header("Location:http://localhost/contact_menu.php");
exit;
}

//set up table and database names
$db_name ="testDB";
$table_name ="my_contacts";

//connect to server and select database
$connection = @mysql_connect("localhost","username","password") or die(mysql_error());
$db = @mysql_select_db($db_name,$connection) or die(mysql_error());

//build and issue query
$chk_id = "SELECT id FROM $table_name WHERE id ='$_GET[id]'";
$chk_id_res = @mysql_query($chk_id,$connection) or die(mysql_error());
$chk_id_num = mysql_num_rows($chk_id_res);

//check for valid results
if ($chk_id_num !=1){

//if not valid,redirect to menu
header("Location:http://localhost/contact_menu.php");
exit;

} else {

//if valid,get information
$sql ="SELECT media_outlet, media_type, f_name, l_name, title, email, phone, cell, fax, notes FROM $table_name WHERE id ='$_GET[id]'";
$result = @mysql_query($sql,$connection) or die(mysql_error());

//get results for display
while ($row =mysql_fetch_array($result)) {
$media_outlet = $row['media_outlet'];
$media_type = $row['media_type'];
$f_name = $row['f_name'];
$l_name = $row['l_name'];
$title = $row['title'];
$email = $row['email'];
$phone = $row['phone'];
$cell = $row['cell'];
$fax = $row['fax'];
$notes = $row['notes'];
}
}
?>
<HTML>
<HEAD>
<TITLE>Media Database: Read-Only Contact Details</TITLE>
</HEAD>
<BODY>
<h1>Media Database</h1>
<h2>Contact Details for <? echo "$f_name $l_name"; ?></h2>
<P><strong>Name & Media Information:</strong><br>
<? echo "$f_name $l_name"; ?><br>
<? echo "$title"; ?><br>
<? echo "$media_outlet"; ?><br>
<? echo "$media_type"; ?><br>
<? echo "<a href=\"mailto:$email\">$email"; ?><br>
<? echo "$phone"; ?><br>
<? echo "$cell"; ?><br>
<? echo "$notes"; ?><br></P>

<p><a href="contact_menu.php">Return to Main Menu</a></p>
</BODY>
</HTML>

Share this post


Link to post
Share on other sites
OK, so what's the error message?

Share this post


Link to post
Share on other sites
[!--quoteo(post=365187:date=Apr 15 2006, 08:10 PM:name=AndyB)--][div class=\'quotetop\']QUOTE(AndyB @ Apr 15 2006, 08:10 PM) [snapback]365187[/snapback][/div][div class=\'quotemain\'][!--quotec--]
OK, so what's the error message?
[/quote]

This page cannot be displayed.

Share this post


Link to post
Share on other sites
[a href=\"http://localhost/contact_menu.php\" target=\"_blank\"]http://localhost/contact_menu.php[/a] is the only page that wouldn't be displayed. Are you sure it exists with that name in that folder? Personally, I'd change the redirect to a relative page address so when the script is uploaded to the server it'll still work as expected.

Share this post


Link to post
Share on other sites
Yes, that address actually exists and works.

What do you mean by a relative page address?

Share this post


Link to post
Share on other sites
[!--quoteo(post=365192:date=Apr 15 2006, 08:33 PM:name=hpughLW)--][div class=\'quotetop\']QUOTE(hpughLW @ Apr 15 2006, 08:33 PM) [snapback]365192[/snapback][/div][div class=\'quotemain\'][!--quotec--]What do you mean by a relative page address?[/quote]
This link explains ... [a href=\"http://www.thuto.org/ubh/web/html/relad1.htm\" target=\"_blank\"]http://www.thuto.org/ubh/web/html/relad1.htm[/a]

In your case, if contact_menu.php is in the same folder as the script with the problem, then this will work [relative address]
[code]header("Location: contact_menu.php");[/code]

Share this post


Link to post
Share on other sites
Ok, I tried that, but now the page with the problems links back to the main page (/contact_menu.php) instead of showing the contact's information. I think you can gather by the code I showed you that this particular page is supposed to show the address book information typed into the table.

Share this post


Link to post
Share on other sites
So have you checked that your queries are behaving as expected?

I'd start with the id check

try

//build and issue query
$chk_id = "SELECT id FROM $table_name WHERE id ='$_GET[id]'";
$chk_id_res = @mysql_query($chk_id,$connection) or die(mysql_error());
$chk_id_num = mysql_num_rows($chk_id_res);

[!--coloro:#3366FF--][span style=\"color:#3366FF\"][!--/coloro--]exit ("$check_id <br> $chk_id_num"); // <---- temp code to check query
[!--colorc--][/span][!--/colorc--]

//check for valid results
if ($chk_id_num !=1){

//if not valid,redirect to menu
header("Location:http://localhost/contact_menu.php");
exit;

Share this post


Link to post
Share on other sites
Suggestions.

First, I assume that id is sent to this page from a page (contact_menu.php presumably) which contains a form using the method="get" since your commented code suggests checking form values. If the form uses method="post" the $_GET array value will always be absent.

Second, there's no way to tell at which stage the script tries to find a page that doesn't exist. For debugging purposes I'd suggest changing each instance of the header/location function to something simple like:
[code]echo "failed at line whatever";
exit;[/code]
At least then you'll know what's causing it to fail.

Third, add Barand's check in your script.

And if a page can't be found, then the script is looking for a file that doesn't exist with the name you expect in the location you expect.

Share this post


Link to post
Share on other sites

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.