Jump to content

[SOLVED] Daft Session question help please, plus other session help required.


wmguk

Recommended Posts

Hey,

 

Firstly, im sort of a newbie, but i roughly know what im doing, im currently working on a project, which at the moment is 150 pages,...

 

I have a login script then i have a session header on each page, what i want to do is have a session include on each page, so if i change the session info, it is changed on every page..

 

something like this

<?
include sess.php ;
?>

 

the sess.php is

<?
session_start(); 
$t = date("h:i:s", time()); 
$_SESSION['admin_login_time'] = $t; 
$_SESSION['myusername'] = $user; 
if(!session_is_registered(myusername)){ 
header("location:index.php"); 
} 
?> 

 

now, also, $user is not recognised.

 

this is my login page

 

<?php 
include "connection.php"; 

// Connect to server and select databse. 
if (!$con) 
  { 
  die('Could not connect: ' . mysql_error() ); 
  } 
  mysql_select_db($db, $con); 

// username and password sent from signup form  
$myusername=$_POST['myusername'];  
$mypassword=$_POST['mypassword'];  

$sql="SELECT * FROM our_info WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 
// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("myusername"); 
header("location:../main.php"); 
} 
else { 
header("location:../failed.html"); 
} 
?> 

 

but for some reason $user isnt saved

Link to comment
Share on other sites

I dont think so, basically, people go from this page

 

<?php 
include "connection.php"; 

// Connect to server and select databse. 
if (!$con) 
  { 
  die('Could not connect: ' . mysql_error() ); 
  } 
  mysql_select_db($db, $con); 

// username and password sent from signup form  
$myusername=$_POST['myusername'];  
$mypassword=$_POST['mypassword'];  

$sql="SELECT * FROM our_info WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row 
$count=mysql_num_rows($result); 
// If result matched $myusername and $mypassword, table row must be 1 row 

if($count==1){ 
// Register $myusername, $mypassword and redirect to file "login_success.php" 
session_register("myusername"); 
$_SESSION[myusername] = $_POST[myusername];
header("location:../main.php"); 
} 
else { 
header("location:../failed.html"); 
} 
?>  

to this page:

 

<?  
session_start(); 
$_SESSION["myusername"]
if(!session_is_registered(myusername)){ 
header("location:index.php"); 
} 
?>  

//some html missing

<?
echo $username;
?>

Link to comment
Share on other sites

Code Tags: [ code][/ code] or the # button.

 

Where are you including the sessions script?

 

oh ok, you mean on the forum - sorry i used the [ PHP ] tags, to display what i was doing....

 

according to a tutorial website, it says that this

 

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
?> 

 

needs to be on the top of the page...

 

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.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"><!-- InstanceBegin template="/Templates/admin.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<!-- InstanceBeginEditable name="doctitle" -->
<title>

Link to comment
Share on other sites

Ok, ive just taken all the info directly from the tutorial website..

 

index.php:

 

<form action="scripts/login.php" method="post" name="login"> 
         <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> 
           <tr> 
             <td align="center" valign="middle" class="main"> </td> 
             <td align="center" valign="middle"> </td> 
           </tr> 
           <tr> 
             <td align="center" valign="middle" class="main"><div align="center">Username</div></td> 
             <td align="center" valign="middle"> 
               <div align="center"> 
                 <input name="myusername" type="text" class="main" id="myusername" /> 
                 </div></td> 
           </tr> 
           <tr> 
             <td align="center" valign="middle" class="main"><div align="center">Password</div></td> 
             <td align="center" valign="middle"><div align="center"> 
               <p> 
                 <input name="mypassword" type="password" class="main" id="mypassword" /> 
               </p> 
               </div></td> 
           </tr> 
           <tr> 
             <td align="center" valign="middle"><div align="center"></div></td> 
             <td align="center" valign="middle"><div align="center"></div></td> 
           </tr> 
           <tr> 
             <td colspan="2" align="center" valign="middle"> 
               <div align="center"> <br /> 
               <input type="submit" class="main" name="Submit" value="Log In" /> 
               </div></td> 
             </tr> 
         </table> 
         </form> 

 

login.php:

 

<?php
include "connection.php"; 

// Connect to server and select databse. 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error() ); 
} 
mysql_select_db($db, $con); 

// username and password sent from signup form 
$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

$sql="SELECT * FROM our_info WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 

// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $myusername and $mypassword, table row must be 1 row

if($count==1){
// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword"); 
header("location:../main.php"); 
} 
else 
{ 
header("location:../failed.html"); 
} 
?>

 

main.php:

 

<?php
session_start();
if(!session_is_registered(myusername)){
header("location:index.php");
}
?>

Link to comment
Share on other sites

uhm, try this following, it has all those grouped as one.

 

<?php
//Engage sesions.
session_start();
/* Here we include the mysql connection script. */
include("connection.php");

// Connect to server and select databse. 
if (!$con) 
{ 
die('Could not connect: ' . mysql_error()); 
} 
else {
if (!mysql_select_db($db, $con)){
echo 'Could not connect to database.';
exit; }
}


if(isset($_POST['Submit'])){

$myusername=$_POST['myusername']; 
$mypassword=$_POST['mypassword']; 

/* Select data from database. */
$sql="SELECT * FROM our_info WHERE username='$myusername' and password='$mypassword'"; 
$result=mysql_query($sql); 
$count=mysql_num_rows($result);

/* If only one occurrence is there. */
if($count==1){
/* Set the myusername sesion to 1 */
$_SESSION['myusername'] = $myusername;
$_SESSION['mypassword'] = $mypassword; 
/* Make an sesion called authenticated to tell main.php that the user is logged in. */
$_SESSION['authenticated'] == 'true';
echo 'Login has succeeded.<br />Click <a href="main.php">here</a> to continue';
exit;
} 
else 
{ 
echo 'Failed to login.';
exit;
} 
}
else {
?>
<form action="scripts/login.php" method="post" name="login"> 
          <table width="500" border="0" align="center" cellpadding="0" cellspacing="0"> 
            <tr> 
              <td align="center" valign="middle" class="main"> </td> 
              <td align="center" valign="middle"> </td> 
            </tr> 
            <tr> 
              <td align="center" valign="middle" class="main"><div align="center">Username</div></td> 
              <td align="center" valign="middle"> 
                <div align="center"> 
                  <input name="myusername" type="text" class="main" id="myusername" /> 
                  </div></td> 
            </tr> 
            <tr> 
              <td align="center" valign="middle" class="main"><div align="center">Password</div></td> 
              <td align="center" valign="middle"><div align="center"> 
                <p> 
                  <input name="mypassword" type="password" class="main" id="mypassword" /> 
                </p> 
                </div></td> 
            </tr> 
            <tr> 
              <td align="center" valign="middle"><div align="center"></div></td> 
              <td align="center" valign="middle"><div align="center"></div></td> 
            </tr> 
            <tr> 
              <td colspan="2" align="center" valign="middle"> 
                <div align="center"> <br /> 
                <input type="submit" class="main" name="Submit" value="Log In" /> 
                </div></td> 
              </tr> 
          </table> 
          </form> 
<?php
}
?>

 

Edit: Please note, I haven't tested this yet.

Link to comment
Share on other sites

How do you mean?

 

On the script where you want to use the user variable use the following,

<?php
/* Check for the authenticated session. */
if(isset($_SESSION['authenticated'])){
/* make the user variable. */
$user = $_SESSION['myusername'];
} else { 
/* Echo a 401 error, in this case, echo message */
echo 'You are not authenticated.';
exit; }

/* The rest of the script would come here. */
?>

 

Edit: Added Comments.

Link to comment
Share on other sites

hmm, ok, just had a play :

 

<?php
session_start();
if(isset($_SESSION['authenticated'])){
$user = $_SESSION['myusername']; 
} 
else 
{ 
header("location:index.php");
exit; 
}
?>

 

I have a location section in there, so that if the login fails, it will redirect back to index.php..

 

the only problem is that, it fails everytime now.. have I done it right?

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.