Ok, I give up. I'm creating a blog from scratch, and here is my problem. I have the admin form for posting and such, it's linked up to a login script and whatnot, and what it does currently is inserts data to a table called "blog." What I want to do is also connect to a second table called "users," which is where the login information is stored. I want to be able to select from this table where username is equal to the user who is logged in, and from there be able to pull up their e-mail address from the table. Unfortunatley, I can get it to echo my username (using $SESSION[username]), but I cannot get it to echo my e-mail address. How in the heck can I do this? I'd like to just be able to define $SESSION[date] in my login.php file, but I'm not sure where I would put it. I'll place the scripts from both files below, any input would be greatly appreciated. thank you!
login.php
<?
/**
* Checks whether or not the given username is in the
* database, if so it checks if the given password is
* the same password in the database for that user.
* If the user doesn't exist or if the passwords don't
* match up, it returns an error code (1 or 2).
* On success it returns 0.
*/
function confirmUser($username, $password){
global $conn;
/* Add slashes if necessary (for query) */
if(!get_magic_quotes_gpc()) {
$username = addslashes($username);
}
/* Verify that user is in database */
$q = "select password from users where username = '$username'";
$result = mysql_query($q,$conn);
if(!$result || (mysql_numrows($result) < 1)){
return 1; //Indicates username failure
}
/* Retrieve password from result, strip slashes */
$dbarray = mysql_fetch_array($result);
$dbarray['password'] = stripslashes($dbarray['password']);
$password = stripslashes($password);
/* Validate that password is correct */
if($password == $dbarray['password']){
return 0; //Success! Username and password confirmed
}
else{
return 2; //Indicates password failure
}
}
/**
* checkLogin - Checks if the user has already previously
* logged in, and a session with the user has already been
* established. Also checks to see if user has been remembered.
* If so, the database is queried to make sure of the user's
* authenticity. Returns true if the user has logged in.
*/
function checkLogin(){
/* Check if user has been remembered */
if(isset($_COOKIE['cookname']) && isset($_COOKIE['cookpass'])){
$_SESSION['username'] = $_COOKIE['cookname'];
$_SESSION['password'] = $_COOKIE['cookpass'];
}
/* Username and password have been set */
if(isset($_SESSION['username']) && isset($_SESSION['password'])){
/* Confirm that username and password are valid */
if(confirmUser($_SESSION['username'], $_SESSION['password']) != 0){
/* Variables are incorrect, user not logged in */
unset($_SESSION['username']);
unset($_SESSION['password']);
return false;
}
return true;
}
/* User not logged in */
else{
return false;
}
}
/**
* Determines whether or not to display the login
* form or to show the user that he is logged in
* based on if the session variables are set.
*/
function displayLogin(){
global $logged_in;
if($logged_in){
echo "<h1>Logged In!</h1>";
echo "Welcome <b>$_SESSION[username]</b>, you are logged in. <a href=\"logout.php\">Logout</a>";
}
else{
?>
<h1>Login</h1>
<form action="" method="post">
<table align="left" border="0" cellspacing="0" cellpadding="3">
<tr><td>Username:</td><td><input type="text" name="user" maxlength="30"></td></tr>
<tr><td>Password:</td><td><input type="password" name="pass" maxlength="30"></td></tr>
<tr><td colspan="2" align="left"><input type="checkbox" name="remember">
<font size="2">Remember me next time</td></tr>
<tr><td colspan="2" align="right"><input type="submit" name="sublogin" value="Login"></td></tr>
<tr><td colspan="2" align="left"><a href="register.php">Join</a></td></tr>
</table>
</form>
<?
}
}
/**
* Checks to see if the user has submitted his
* username and password through the login form,
* if so, checks authenticity in database and
* creates session.
*/
if(isset($_POST['sublogin'])){
/* Check that all fields were typed in */
if(!$_POST['user'] || !$_POST['pass']){
die('You didn\'t fill in a required field.');
}
/* Spruce up username, check length */
$_POST['user'] = trim($_POST['user']);
if(strlen($_POST['user']) > 30){
die("Sorry, the username is longer than 30 characters, please shorten it.");
}
/* Checks that username is in database and password is correct */
$md5pass = md5($_POST['pass']);
$result = confirmUser($_POST['user'], $md5pass);
/* Check error codes */
if($result == 1){
die('That username doesn\'t exist in our database.');
}
else if($result == 2){
die('Incorrect password, please try again.');
}
/* Username and password correct, register session variables */
$_POST['user'] = stripslashes($_POST['user']);
$_SESSION['username'] = $_POST['user'];
$_SESSION['password'] = $md5pass;
/**
* This is the cool part: the user has requested that we remember that
* he's logged in, so we set two cookies. One to hold his username,
* and one to hold his md5 encrypted password. We set them both to
* expire in 100 days. Now, next time he comes to our site, we will
* log him in automatically.
*/
if(isset($_POST['remember'])){
setcookie("cookname", $_SESSION['username'], time()+60*60*24*100, "/");
setcookie("cookpass", $_SESSION['password'], time()+60*60*24*100, "/");
}
/* Quick self-redirect to avoid resending data on refresh */
echo "<meta http-equiv=\"Refresh\" content=\"0;url=$HTTP_SERVER_VARS[PHP_SELF]\">";
return;
}
/* Sets the value of the logged_in variable, which can be used in your code */
$logged_in = checkLogin();
?>
input.php
<?php
// code that will be executed if the form has been submitted:
if ($submit) {
// connect to the database
// (you may have to adjust the hostname,username or password)
MYSQL_CONNECT("localhost","root", " ");
mysql_select_db("stupid5p_blog");
$result=MYSQL_QUERY("INSERT INTO `blog` (title , playing , mood, body, date, time, author)
VALUES ('$title', '$playing', '$mood', '$body', NOW( ), NOW( ), '$author')");
$id= mysql_insert_id();
print "<p>This file has the following Database ID: <b>$id</b>";
MYSQL_CLOSE();
} else {
// else show the form to submit new data:
?>
<form method="post" action="<?php echo $PHP_SELF; ?>" enctype="multipart/form-data">
Title:<br>
<input type="text" name="title" size="50">
<br>Now Playing:<br>
<input type="text" name="playing" size="50">
<br>Mood<br>
<select name="mood" size="1">
<option value="happy" selected="selected">happy</option>
<option value="sad">sad</option>
<option value="alienated">alienated</option>
<option value="beat up">beat up</option>
<option value="angry">angry</option>
<option value="annoyed">annoyed</option>
<option value="chicken">chicken</option>
<option value="confused">confused</option>
<option value="crying">crying</option>
<option value="d'oh">d'oh</option>
<option value="evil">evil</option>
<option value="funny">funny</option>
<option value="greedy">greedy</option>
<option value="hungry">hungry</option>
<option value="puzzled">puzzled</option>
<option value="innocent">innocent</option>
<option value="shocked">shocked</option>
<option value="sick">sick</option>
<option value="sleepy">sleepy</option>
<option value="very happy">very happy</option>
</select>
<br>Entry:<br>
<textarea name="body" rows="25" cols="70" tabindex="20"></textarea> <p>
<?php
echo "<input type=\"hidden\" name=\"author\" value=\"".$_SESSION[username]."\">";
echo $_SESSION[username];
?>
<p><input type="submit" name="submit" value="submit">
</form>
<?php
}
?>
both tables are in the same database, called stupid5p_blog (as seen in the preceeding script), how can I get the information from one to insert into the other?