Jump to content

Problem with my code


Go to solution Solved by Ch0cu3r,

Recommended Posts

 Please the when ever i open signin.php which is the second code I get an error as a result "if($_SESSION['signed_in'])
{
echo 'Hello' . $_SESSION['user_name'] . '. Not you? <a href="signout.php">Sign out</a>';
} " in the first code saying that the variable _SESSION is undefined. Please what can i do about this?

//header.php
<!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=utf-8" />
<meta name="description" content="A short Description." />
<meta name="keywords" content="put, keywords, here" />
<link rel="stylesheet" href="style.css" type="text/css" />
<title>PHP-MySQL Forum</title>
</head>

<body>

<div id="wrapper">
<div id = "menu"> 
<a class="item" href="index.php">Index</a>
<a class="item" href="create_topic.php">Create Topic</a>
<a class="item" href="create_cat.php">Create Category</a>


<?php  
echo '<div id="userbar">';  
    if($_SESSION['signed_in'])  
    {  
        echo 'Hello' . $_SESSION['user_name'] . '. Not you? <a href="signout.php">Sign out</a>';  
    }  
    else  
    {  
        echo '<a href="signin.php">Sign in</a> or <a href="sign up">create an account</a>.';  
    }  
echo'</div>';
?>
</div>
<div id="content">
<div id="footer">Created by Christech for Learning Only</div>
</div>
</div>
</body>
</html>
<?php
//signin.php
include 'connect.php';
include 'header.php';

echo '<h3>Sign in</h3>';
//first, check if the user is already signed in. If that is the case, there is no need to display this page  

if(isset($_SESSION['signed_in']) && $_SESSION['signed_in'] == true)
{
	echo 'You are alredy signed in, you can <a href="signout.php>Sign Out</a> if you wish"';
	}
	
	else
	{
		if($_SERVER['REQUEST_METHOD'] != 'POST')
		
		{
			/*the form hasn't been posted yet, display it 
      note that the action="" will cause the form to post to the same page it is on */
	  echo'<form method="post" action="">
	  Username: <input type="text" name="user_name" />
	  Password: <input type="text" name="user_pass" />
	  <input type="submit" value="Sign in" />
	  </form>';
			}
	else 
    { 
        /* so, the form has been posted, we'll process the data in three steps:  
            1.  Check the data  
            2.  Let the user refill the wrong fields (if necessary)  
            3.  Varify if the data is correct and return the correct response  
        */  
        $errors = array(); /* declare the array for later use */  
          
        if(!isset($_POST['user_name']))  
        {  
            $errors[] = 'The username field must not be empty.';  
        }  
          
        if(!isset($_POST['user_pass']))  
        {  
            $errors[] = 'The password field must not be empty.';  
        }  
          
        if(!empty($errors)) /*check for an empty array, if there are errors, they're in this array (note the ! operator)*/  
        {  
            echo 'Uh-oh.. a couple of fields are not filled in correctly..'; 
            echo '<ul>'; 
            foreach($errors as $key => $value) /* walk through the array so all the errors get displayed */ 
            { 
                echo '<li>' . $value . '</li>'; /* this generates a nice error list */ 
            } 
            echo '</ul>'; 
        } 
		
	else
	{
		//the form has been posted without, so save it 
        //notice the use of mysql_real_escape_string, keep everything safe! 
        //also notice the sha1 function which hashes the password
		
		$sql = "SELECT user_id, user_name, user_level 
		FROM users 
		WHERE user_name = '". mysql_real_escape_string($_POST['user_name']) ."' AND user_pass = '". sha1($_POST['user_pass']) ."'";
		$result = mysql_query($sql);
		
		if(!$result)
		{
			  //something went wrong, display the error  
                echo 'Something went wrong while signing in. Please try again later.'; 
                //echo mysql_error(); //debugging purposes, uncomment when needed 
            } 
            else 
            { 
                //the query was successfully executed, there are 2 possibilities 
                //1. the query returned data, the user can be signed in 
                //2. the query returned an empty result set, the credentials were wrong 
			if (mysql_num_rows($result) == 0){
				
				echo'You have supplied a wrong user/password combination. Please try again';
				}
			
			else
			{
				//set the $_SESSION['signed_in'] variable to TRUE
				$_SESSION['signed_in'] = true;
				//we also put the user_id and user_name values in the $_SESSION, so we can use it at various pages 
				 while($row = mysql_fetch_assoc($result)) 
                    { 
                        $_SESSION['user_id']    = $row['user_id']; 
                        $_SESSION['user_name']  = $row['user_name']; 
                        $_SESSION['user_level'] = $row['user_level']; 
                    } 
                     
                    echo 'Welcome, ' . $_SESSION['user_name'] . '. <a href="index.php">Proceed to the forum overview</a>.'; 
                } 
            } 
        } 
    } 
} 
 
include 'footer.php';  




?>
Link to comment
https://forums.phpfreaks.com/topic/283169-problem-with-my-code/
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.