CyberBoy
CyberBoy

Reputation: 753

Having Problems with PHP sessions in Google APP Engine

I am having three files...

1st is 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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Cyber Boy Test App</title>
</head>
<body>
Hello 
<br/> This is Login System Test 
<br/>
<form method="post"  action="logincheck.php">
<input type="text" name="username" />
<input type="password" name="password" />
<input type="submit" name="submit" />
</form> 
</body>
</html>

2nd one is logincheck.php

<?php
session_start();
$finaluser=$_POST['username'];
if($_SESSION['auth']=="yes")
{
    header('Location: name.php');   
}
else
{
    $connection=mysql_connect('localhost','root','')or die("Could not Connect to Database ");
    $db=mysql_select_db('test', $connection) or die(" Check the Database wrong database entered ");
    $sql="SELECT name from users WHERE username='$finaluser'";
    $result=mysql_query($sql) or die("Coudl not Execute the Query");
    $num=mysql_num_rows($result);
    $result=mysql_query($sql) or die("Coudl not Execute the Query2");
    $row=mysql_fetch_array($result);
    if($num==1)
    {
        echo "Login SuccesFull";
        $_SESSION['auth']="yes";
        $_SESSION['name']=$row['name'];
        echo '<a href="name.php">To Check the Name of the User Click Here';
    }
    else
    {
        echo "Login Failed";
    }
}
?>

3rd file is name.php

<?php
echo $_SESSION['name'];
?>

When I submit the form it take me to logincheck.php page and When I click on the link , it take to me the name.php page.. Problem is that, the name does not get printed. I know PHP well, but i new to Google App Engine... and my app.yaml looks like this

application: testcboy
version: 1
runtime: php
api_version: 1
threadsafe: yes

handlers:

- url: /(.*)\.php
  script: \1.php

- url: /.*
  script: index.php

Upvotes: 0

Views: 1570

Answers (1)

IanGSY
IanGSY

Reputation: 3714

You need to call session_start() on all PHP pages (e.g. at the top) that use session variables.

Despite its name session_start() does not just start a session, it also resumes any existing session if it already exists (see http://php.net/manual/en/function.session-start.php ).

Upvotes: 2

Related Questions