Jump to content

What's wrong with this code?


hpughLW

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>
Link to comment
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.
Link to comment
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.
Link to comment
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]
Link to comment
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.
Link to comment
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;
Link to comment
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.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

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.