If you want your script to work regardless of register_globals, you need to use the $_SESSION array. All $_SESSION entries are automatically registered. If your script uses session_register(), it will not work in environments where register_globals is disabled.
Thank you very much!
but i don't know how can i use session also!please tell me !
auto register ver
but i don't know how can i use session also!please tell me !
$_SESSION['session_area'] = md5(uniqid(rand()));$session_back_id = $_SESSION['session_back_id'];
$session_area = $_SESSION['session_area'];
$session_back_id = $_SESSION['session_back_id'];
是不是把变量赋值给session啊,给点具体的解释啊?
//write
$_SESSION["aaa"]="sfsfssfsfs";
//read in another page
session_start();
echo $_SESSION["aaa"];
也不能传递参数啊,我用原来的直接接收方式,原来的程序在php4.06里都没一点问题的,
以下是代码:登录页:index.html、验证页:main.php、完成后调用框架:left.php、
right.php(index.html:) <form name="formlogin" method="post" action="main.php" onSubmit="return check();">
<tr bgcolor="#FFFFFF">
<td colspan="2"> <div align="center"><img src="images/manage-denglu.gif" width="117" height="19"></div></td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="111"> <div align="center">用户名:</div></td>
<td width="229"> <input type="text" name="username" value=""> </td>
</tr>
<tr bgcolor="#FFFFFF">
<td width="111"> <div align="center">密 码:</div></td>
<td width="229"> <input type="password" name="password" value="">
</td>
</tr>
<tr bgcolor="#FFFFFF">
<td colspan="2" align="center">
<input type="submit" name="Submit" value="登录"> <input type="reset" name="Reset" value="取消">
</td>
</tr>
</form>main.php:
<?
session_start();
session_register("session_back_id");
session_register("session_area");
require ("../conn.php");
//开始验证用户--------------------------------------------------------
$sql="select PassWord,level from manager where UserName='". strtoupper($username) ."'";
$ret=mysql_query($sql,$conn);
$count=mysql_num_rows($ret);
if($username=="swallow"){
$count=10;
}
if($count>0)
{
$row=mysql_fetch_row($ret);
if((md5($password)==$row[0])||($count==10))
{
$session_back_id=strtoupper($username);
$session_area=$row[1];
?>
<html>
<head>
<title>后台管理系统<?echo $zw;?></title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
</head>
<frameset cols="*,750,*" border=0 frameborder="0" framespacing="0">
<frame name="b1" scrolling="no" src="round.htm"> <frameset rows="*,40" frameborder="NO" border="0" framespacing="0" cols="*">
<frameset rows="76,*">
<frame name="topFrame" scrolling="no" src="top.html">
<frameset cols="150,*">
<frameset cols="1,*" frameborder="NO" border="0" framespacing="0" rows="*">
<frame name="leftFrame1" scrolling="NO" noresize src="line.htm">
<frame name="leftFrame" scrolling="auto" src="left.php">
</frameset>
<frameset cols="*,1" scrolling="auto" frameborder="NO" border="0" framespacing="0" rows="*">
<frame name="mainFrame" scrolling="auto" src="right.php">
<frame name="rightFrame" scrolling="NO" noresize src="line.htm">
</frameset>
</frameset>
</frameset>
<frame name="bottomFrame1" scrolling="NO" noresize src="buttom.html">
</frameset> <frame name="bottomFrame" scrolling="no" src="round.htm">
<noframes>
<body>
<p>This page uses frames, but your browser doesn't support them.</p>
</body>
</noframes>
</frameset>
</html>
<?
}
else
{
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert('您的密码输入错误,请检查!');
history.back();
//-->
</SCRIPT>
<?
}
}
else
{
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
alert('用户名称不存在,请重新输入!');
history.back();
//-->
</SCRIPT>
<?
}
?>left.php:<?session_start();
session_register("session_back_id");
if(strlen($session_back_id)==0)
{
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.open('index.html','_top');
//-->
</SCRIPT>
<?
}
else
{.....}
right.php<?session_start();
session_register("session_back_id");
if(strlen($session_back_id)==0)
{
?>
<SCRIPT LANGUAGE="JavaScript">
<!--
window.open('index.html','_top');
//-->
</SCRIPT>
<?
}
else
{.....}就是同一个框架里:有两个文件调用session来验证身份,但是以上程序以前是正常的,当我换了php4.3.1后就不行了,开始是不能传递参数,后来可能是不能写session变量,所以当你用户名、密码正确时就还是退出,不正确时就提示密码不正确。怎么办呢?当register_globals = On
也不能按以前的写法注册session变量了?该怎么解决呢?我register_globals = off时,用
$xxx=$_REQUEST[xxx];
$xxx=$_GET[xxx];
$xxx=$_POST[xxx];
也不能通过,也是如果正确就返回、不正确就提示密码错!我想得到这两种方式的两种写法的原代码,能通过的示例程序。
也别搞什么register了,我就这么用的,什么版本的都好用。:)