Hooch Posted April 22, 2006 Share Posted April 22, 2006 Hello all. I am wanting to have my header say welcome "username hare" when someone is on my site. I have followed a tut on making a database with log in and out functions. Both work too. Thing is, I can't get the username to show up. Could someone be kind enough to have a look? Here is the line I would like the name entered. echo "$username"; [code]<table width="700" height="100" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#00FF00"> <tr> <td height="81" colspan="4" background="images/header-700-81.jpg"> </td> </tr><tr> <td width="148" height="19"> <div align="right"> <?php if (!$_COOKIE['id']){ echo "<a href=\"signup.html\">Register</a>"; echo " "; echo "<a href=\"login.html\">Log In</a>"; die(""); } echo "Welcome - "; ?> </div></td> <td width="126" height="19"> <?php // Connect to the database $server = "localhost"; $dbuser = "username"; $dbpass = "password"; $dbname = "db_name"; mysql_connect($server,$dbuser,$dbpass) or die ("connection error"); // make connection mysql_select_db($dbname); // select database // Get users information $result = mysql_query("SELECT * FROM `users` WHERE `id` = '".mysql_escape_string($u)."' "); while($r=mysql_fetch_array($result)) { $username=$r["username"]; echo " "; echo "$username"; } ?> </td> <td width="212" height="19"> </td> <td width="214"> </td> </tr></table>[/code] Thank you for your time. Quote Link to comment Share on other sites More sharing options...
fenway Posted April 22, 2006 Share Posted April 22, 2006 First, I would suggest that you log your user at the top of page in the PHP script block, and then simply echo the desired variable in the HTML code itself -- it's much cleaner this way. Second, as for why it's not working, where is this $u variable coming from? Are you sure that your query returns any results, and executes sucessfully? I don't see any mysql_error() checks. Quote Link to comment Share on other sites More sharing options...
Hooch Posted April 25, 2006 Author Share Posted April 25, 2006 Hi fenway. Thank you for your reply. I am no coder..I was trying to mesh two tutorials. But I did get things to work. Here's the code. [code]<table width="700" height="91" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#00FF00"><tr> <td height="81" colspan="3" background="images/header-700-81.jpg"> </td></tr><tr valign="bottom"> <td width="416" height="10" bgcolor="#CCCCCC"> <div align="left"> <?php $msgbox = ""; if (!$_COOKIE['id']){ echo "<form action=\"login.php\" method=\"post\">name: <input type=\"text\" name=\"username\" size=\"8\"> password: <input type=\"password\" name=\"password\" size=\"8\"> <input type=\"image\" SRC=\"images/submit.jpg\" class=\"submit\" name=\"submit\"></form>"; echo "<a href=\"signup.html\">Register</a>"; } else { $msgbox .= "Welcome - "; // Connect to the database $server = "localhost"; $dbuser = "user"; $dbpass = "pass"; $dbname = "db"; mysql_connect($server,$dbuser,$dbpass) or die ("connection error"); // make connection mysql_select_db($dbname); // select database // Get users information $result = mysql_query("SELECT * FROM users WHERE id='".mysql_escape_string($_COOKIE['id'])."'"); $r=mysql_fetch_assoc($result); $msgbox .= $r["username"]; } echo $msgbox; ?> </div> </td> <td width="151" height="19"> </td> <td width="133" height="19"> </td> </tr></table>[/code]Everything seems to be working except the login and register. It's all in the same table row. I made the box large enough for all to fit on one line,but the register link is below the login fields when I upload it to the web. Any ideas?? Quote Link to comment Share on other sites More sharing options...
fenway Posted April 25, 2006 Share Posted April 25, 2006 First, you need to close your FORM tag. Second, can you past the generated HTML code? Quote Link to comment Share on other sites More sharing options...
Hooch Posted April 26, 2006 Author Share Posted April 26, 2006 As far as I can tell the form is closed. But I'm sure I"m not following you. For the generated do you mean view source? If so...[code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>Untitled Document</title></head><body><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /><title>TIA</title><link rel="stylesheet" type="text/css" href="includes/tia.css" /></head><body><table width="700" height="91" border="0" align="center" cellpadding="0" cellspacing="0" bordercolor="#00FF00"><tr> <td height="81" colspan="3" background="images/header-700-81.jpg"> </td></tr><tr valign="bottom"> <td width="416" height="10" bgcolor="#CCCCCC"> <div align="left"> <form action="login.php" method="post">name: <input type="text" name="username" size="8"> password: <input type="password" name="password" size="8"> <input type="image" class="submit" name="submit"></form><a href="signup.html">Register</a> </div> </td> <td width="151" height="19"> </td> <td width="133" height="19"> </td> </tr></table><table width="700" border="2" align="center" cellpadding="0" cellspacing="0" bordercolor="#BE8647"> <tr> <td width="161"> </td> <td width="296"> </td> <td width="233"> </td> </tr> <tr> <td>Test left </td> <td>Test middle </td> <td>Test right </td> </tr></table></body></html>[/code] Quote Link to comment Share on other sites More sharing options...
fenway Posted April 26, 2006 Share Posted April 26, 2006 Sorry, I missed to close form tag.... but forms are like tables, and have an implicit line break after them. That's why you'll never see them on one line. You can either a) put the link inside the form, or b) set the form's display attribute to "inline" via CSS. Quote Link to comment Share on other sites More sharing options...
Hooch Posted April 26, 2006 Author Share Posted April 26, 2006 Thanks fenway. I'm going to put them in thier own cell of the table then. This should fix it. Now I know why they were offset like that. Later...Hooch Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.