2012-09-26 118 views
2

我想有一个登录脚本伯特我有这个错误 未定义的变量:_session 看到页面下方PHP登录脚本未定义的变量:_session脚本

//checklogin.php

<?php 

ob_start(); 
$host="localhost"; // Host name 
$username="xxxxx"; // Mysql username 
$password="xxxx"; // Mysql password 
$db_name="test"; // Database name 
$tbl_name="members"; // Table name 

// Connect to server and select databse. 

mysql_connect("$host", "$username", "$password")or die("cannot connect"); 
mysql_select_db("$db_name")or die("cannot select DB"); 

// Define $myusername and $mypassword 

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

// To protect MySQL injection (more detail about MySQL injection) 

$myusername = stripslashes($myusername); 
$mypassword = stripslashes($mypassword); 
$myusername = mysql_real_escape_string($myusername); 
$mypassword = mysql_real_escape_string($mypassword); 
$sql="SELECT * FROM $tbl_name 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['name']= myusername; 
$_session['pass']= mypassword; 
header("location:login_success.php"); 
} 
else { 
echo "Wrong Username or Password"; 
} 
ob_end_flush(); 
?> 

//login_success.php

// Check if session is not registered, redirect back to main page. 
// Put this code in first line of web page. 
<?php 
session_start(); 
if(!$_session['name']= myusername){ 
header("location:main_login.php"); 
} 
?> 

<html> 
<body> 
Login Successful 
</body> 
</html> 
+2

你需要capitlize它 - 这是'$ _SESSION' – andrewsi

+0

也'如果(! $ _session ['name'] = myusername)'应该是'if($ _ session ['name']!= myusername)' – nana

回答

3

这是$_SESSION$_session你还需要添加session_start()页面

的顶部从PHP DOC

Variables in PHP are represented by a dollar sign followed by the name of the variable. The variable name is case-sensitive.

+0

他有session_start()那里。 – nana

+0

@mistrfu:不在'checklogin.php' –

+0

@mistrfu告诉我你是否可以在'checklogin.php'顶部看到'session_start'? – Baba

2

$_SESSION要大写的。在你的代码是全部小写:

if(!$_session['name']= myusername){ 

变化(还添加$到名为myUsername):

if(!$_SESSION['name']= $myusername){ 
+0

感谢大家你很好我的错误对不起,但现在我有这个使用未定义的常量myusername - 假设'myusername'在/Applications/MAMP/htdocs/test/login_success.php在线5 –

+1

$ myusername,缺少$ – nana

+1

@LefterisLivanos将'$'添加到'myusername'以将其标记为您之前定义的变量。或者,你可以使它成为一个常量,并通过在某处使用define()来定义它。 – Sirko