我想实现一个功能就是,某一个页面,比如a.php这个页面,是需要登陆后才能访问的,如果没有登陆,直接访问的话,会提示“需要登陆”,但如果登陆后,只要不点“退出功能”,就一直可以访问。我知道在asp中可以通过在登陆验证的页面,加入session("admin")=rs("username")
//这里的username是数据库中的然后在需要登陆才能访问的页面顶部加入<%
if session("admin")="" then
response.write "<Script>window.alert('请先登录!');location.replace('login.htm');</Script>"
end if
%>上面是 asp实现的方式,请问php中也可以这样实现吗?我尝试了下,似乎不可以,我的做法是在验证页面中加入了
session_start();
session_register("username");
$_SESSION["username"]=$Rs['username']; 在需要登陆才能访问的页面顶部加入
<?php
if session("username")="" then
echo "<Script>window.alert('请先登录!');location.replace('login.htm');</Script>"
end if
?>可是上面的方法不对啊,不能实现我想要的功能,所以请高手帮忙解答下,谢谢
//这里的username是数据库中的然后在需要登陆才能访问的页面顶部加入<%
if session("admin")="" then
response.write "<Script>window.alert('请先登录!');location.replace('login.htm');</Script>"
end if
%>上面是 asp实现的方式,请问php中也可以这样实现吗?我尝试了下,似乎不可以,我的做法是在验证页面中加入了
session_start();
session_register("username");
$_SESSION["username"]=$Rs['username']; 在需要登陆才能访问的页面顶部加入
<?php
if session("username")="" then
echo "<Script>window.alert('请先登录!');location.replace('login.htm');</Script>"
end if
?>可是上面的方法不对啊,不能实现我想要的功能,所以请高手帮忙解答下,谢谢
{
echo "<Script>window.alert('请先登录!');location.replace('login.htm'); </Script>";
}
session_register("ausername"); //27
$_SESSION["ausername"]=$Rs['ausername']; // 28而直接访问需要的登陆的页面的错误是Parse error: parse error, unexpected T_STRING, expecting '(' in a.php on line 2
是我手误
我写的是
if($_SESSION["username"]=="")
{
echo " <Script> window.alert('请先登录!');location.replace('login.htm'); </Script> ";
}
switch ($_GET['action']){
case "login":
$strusername=$_POST['ausername'];
$strpassword=$_POST['apassword'];
if ($strusername== "") {
echo " <Script> window.alert( 'Miss Email! ');history.go(-1); </Script> ";
}
elseif ($strpassword== ""){
echo " <Script> window.alert( 'Miss Password! ');history.go(-1); </Script> ";
}
else{
require_once('../conn.php');
$exec= "select * from admin where ausername= '".$strusername."' ";
$result=mysql_query($exec) or die(mysql_errno. '- '.mysql_error());
$rs=mysql_fetch_object($result);
//echo $exec;
//exit();
if (mysql_num_rows($result)==0) {
echo " <Script> window.alert( 'Wrong Email! ');javascript:history.back(1); </Script> ";
}
elseif ($rs->apassword <> $strpassword){
echo " <Script> window.alert( 'Wrong Password! ');javascript:history.back(1); </Script> ";
}
else{
session_start();
session_register("ausername");
$_SESSION["ausername"]=$Rs['ausername'];
echo "<script>location.href='AllPost.php'</script>";
}
}
break;
case "logout":
//session( "admin ")== "";
echo " <Script> window.alert( 'Goodbye!!! ');location.replace( 'index.htm '); </Script> ";
break;
}
?>上面是我的验证代码
请看下,我放到了第一行,还是不管了,是同样的错误...
我是使用的utf-8的码?
不过我修改过了
还是一样的问题
不对啊
a.php为session赋值页面,代码如下:
session_start();
$_SESSION['username']='csdn';
header('Location: b.php');
b.php为验证页面,代码如下:session_start();
if($_SESSION['username']=='')
{
exit("<script>alert('请先登录');location.href='login.htm'</script>");
}
echo 'welcome';
但不知道为什么
我整合到上面的登陆验证代码中后,就一直提示错误
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at ver.php:1) in ver.php on line 26 这个就是ver.php的代码<?php
switch ($_GET['action']){
case "login":
$strusername=$_POST['ausername'];
$strpassword=$_POST['apassword'];
if ($strusername== "") {
echo " <Script> window.alert( 'Miss Email! ');history.go(-1); </Script> ";
}
elseif ($strpassword== ""){
echo " <Script> window.alert( 'Miss Password! ');history.go(-1); </Script> ";
}
else{
require_once('../conn.php');
$exec= "select * from admin where ausername= '".$strusername."' ";
$result=mysql_query($exec) or die(mysql_errno. '- '.mysql_error());
$rs=mysql_fetch_object($result);
//echo $exec;
//exit();
if (mysql_num_rows($result)==0) {
echo " <Script> window.alert( 'Wrong Email! ');javascript:history.back(1); </Script> ";
}
elseif ($rs-> apassword <> $strpassword){
echo " <Script> window.alert( 'Wrong Password! ');javascript:history.back(1); </Script> ";
}
else{
session_start();
session_register("ausername");
$_SESSION["ausername"]=$Rs['ausername'];
echo " <script> location.href='AllPost.php' </script> ";
}
}
break;
case "logout":
//session( "admin ")== "";
echo " <Script> window.alert( 'Goodbye!!! ');location.replace( 'index.htm '); </Script> ";
break;
}
?>
<?PHP
session_start();
if(empty($_SESSION['username']))
echo " <Script> window.alert('请先登录!');location.replace('login.htm'); </Script> ";
?>login.htm:
<form method='POST' action='a.php'>
<p>用户名:
<input name="username" type="text" id="username">
<br>
密 码:
<input name="password" type="password" id="password"><br>
<input type="checkbox" name="rememberMe" value="rememberMe">保存登录信息(7 天)<br>
<br>
<input type="submit" value="登录">
</p>
</form>a.php:
<?PHP
session_start();
if (!empty($_POST["username"]))
{
$username1 = $_POST["username"];
$_SESSION['username']=$username1;
}......
?>
我没用过session_register("");而是直接$_SESSION['username']=$username1;有高手请解答下Why
<?php
ob_start();
switch ($_GET['action']){
case "login":
$strusername=$_POST['ausername'];
$strpassword=$_POST['apassword'];
if ($strusername==""){
echo " <Script>window.alert('Miss Email!');history.go(-1);</Script>";
}
elseif ($strpassword==""){
echo "<Script>window.alert('Miss Password!');history.go(-1);</Script>";
}
else{
require_once('../conn.php');
$exec="select * from admin where ausername='".$strusername."'";
$result=mysql_query($exec) or die(mysql_errno.'-'.mysql_error());
$rs=mysql_fetch_object($result);
//echo $exec;
//exit();
if (mysql_num_rows($result)==0){
echo "<Script>window.alert('Wrong Email!');javascript:history.back(1);</Script>";
}
elseif ($rs->apassword<>$strpassword){
echo "<Script>window.alert('Wrong Password!');javascript:history.back(1);</Script>";
}
else{
$_SESSION["ausername"]=$Rs['ausername'];
echo "<script>location.href='AllPost.php'</script>";
}
}
break;
case "logout":
echo "<Script>window.alert('Goodbye!!!');location.replace('index.htm');</Script>";
break;
}
?> 没有再提示错误了,而且能正常登陆到AllPost.php这个页面,但是这个AllPost.php页面无法进入,因为它的头部是下面加的是是否登陆验证,
<?php
session_start();
if($_SESSION['ausername']=="")
{
echo " <Script> window.alert('请先登录!');location.replace('login.htm);</Script> ";
}
?>
总是提示“请先登录”,应该是SESSION没有成功,请问该怎么办恩?
$_SESSION["ausername"]=$Rs['ausername'];
echo " <script> location.href='AllPost.php' </script> ";
}
你的這段代碼變量有問題:php是大小寫敏感的。$Rs['ausername'];=>$rs['ausername'];