Php 登录后不显示索引页
我有登录的过程页面,我可以连接到数据库,也可以检查用户名和密码 但在此之后,我无法在登录成功后显示索引页。这是我的代码:Php 登录后不显示索引页,php,mysql,login,Php,Mysql,Login,我有登录的过程页面,我可以连接到数据库,也可以检查用户名和密码 但在此之后,我无法在登录成功后显示索引页。这是我的代码: $dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error()); $db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error()); switch(postVar('action')) {
$dbc=mysql_connect(_SRV,_ACCID,_PWD) or die(_ERROR15.": ".mysql_error());
$db=mysql_select_db("qdbase",$dbc) or die(_ERROR17.": ".mysql_error());
switch(postVar('action')) {
case 'submitlogin' :
submitlogin(postVar('loguser'),postVar('logpass'));
break;
}
function submitlogin($loguser,$logpass){
if(isset($loguser, $logpass)) {
ob_start();
// To protect MySQL injection (more detail about MySQL injection)
$myusername = stripslashes($loguser);
$mypassword = stripslashes($logpass);
$myusername = mysql_real_escape_string($myusername,$dbc);
$mypassword = mysql_real_escape_string($mypassword, $dbc);
$sql="SELECT * FROM admin WHERE user='$myusername' AND password=('$mypassword')";
$result=mysql_query($sql, $dbc);
// 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 "admin.php"
session_register("admin");
session_register("password");
$_SESSION['name']= $myusername;
header("location:index1.php");
}
else {
$msg = "Wrong Username or Password. Please retry";
header("location:login.php?msg=$msg");
}
// ob_end_flush();
}
else {
header("location:login.php?msg=Please enter some username and password");
}
mysql_close($dbc);
ob_end_flush();
}
你能帮我解决这个问题吗
编辑 我在index1.php的这一部分感到困惑:
<?php
session_start(); //Start the session
define(ADMIN,$_SESSION['name']); //Get the user name from the previously registered super global variable
if(!session_is_registered("admin")){ //If session not registered
header("location:login.php"); // Redirect to login.php page
}
else //Continue to current page
header( 'Content-Type: text/html; charset=utf-8' );
?>
我只有用户和密码,admin
从哪里来?从中我得到:
PHP Notice: Use of undefined constant ADMIN - assumed 'ADMIN' in /var/www/html/index1.php on line 12
你搞砸了你真正的逃跑
$myusername = mysql_real_escape_string($dbc, $myusername);
$mypassword = mysql_real_escape_string($dbc, $mypassword);
应该是
$myusername = mysql_real_escape_string($myusername, $dbc);
$mypassword = mysql_real_escape_string($mypassword, $dbc);
下面是文档块:
string mysql_real_escape_string ( string $unescaped_string [, resource $link_identifier ] )
@资料来源:
及
应该是
$result = mysql_query($sql, $dbc);
更新#1 不保证这会起作用只是扔掉你的代码并清理它,删除一些东西并添加一些东西:
if(false === ($dbc = mysql_connect(_SRV,_ACCID,_PWD) die(_ERROR15.": ".mysql_error());
if(false === mysql_select_db("qdbase",$dbc)) die(_ERROR17.": ".mysql_error());
switch(postVar('action'))
{
case 'submitlogin':
submitlogin(postVar('loguser'),postVar('logpass'));
mysql_close($dbc);
exit; //Flushing the headers
break;
}
function submitlogin($loguser,$logpass)
{
if(isset($loguser, $logpass))
{
$myusername = mysql_real_escape_string(stripslashes($loguser));
$mypassword = mysql_real_escape_string(stripslashes($logpass));
$sql = sprintf("SELECT * FROM admin WHERE user='%s' AND password=('%s')",$myusername,$mypassword);
if(false === ($result = mysql_query($sql))
{
//Show Database query error and die()
}
// If result matched $myusername and $mypassword, table row must be 1 row
if(mysql_num_rows($result) > 0)
{
session_register("admin");
session_register("password");
$_SESSION['name']= $myusername;
header("location:index1.php");
}else
{
header("location:login.php?msg=" . urlencode("Wrong Username or Password. Please retry"));
}
}else{
header("location:login.php?msg=" . urlencode("Please enter some username and password"));
}
}
在header()调用之前,您是否检查了程序是否有任何输出?如果您的程序发送了一些输出(甚至是一个空格),那么头调用将无法工作
您收到任何错误或警告吗?没有错误它显示200。OK任何PHP错误?您的
错误报告()是否足够详细error\u reporting(E\u ALL^E\u NOTICE^E\u USER\u NOTICE)
登录后是否收到任何消息或在哪个页面上收到重定向?PHP警告:mysql\u close()希望参数1为resource,在第591行的/var/www/html/process1.PHP中给出空值。实际上在mysql_close($dbc);还是老样子,先生。在我回显$sql之后,结果不是查询。但是它显示login.phpma的html代码,因为XHR的结果显示index1.php页面的html脚本,所以它可能可以工作。但是为什么页面不显示呢?
$result = mysql_query($sql, $dbc);
if(false === ($dbc = mysql_connect(_SRV,_ACCID,_PWD) die(_ERROR15.": ".mysql_error());
if(false === mysql_select_db("qdbase",$dbc)) die(_ERROR17.": ".mysql_error());
switch(postVar('action'))
{
case 'submitlogin':
submitlogin(postVar('loguser'),postVar('logpass'));
mysql_close($dbc);
exit; //Flushing the headers
break;
}
function submitlogin($loguser,$logpass)
{
if(isset($loguser, $logpass))
{
$myusername = mysql_real_escape_string(stripslashes($loguser));
$mypassword = mysql_real_escape_string(stripslashes($logpass));
$sql = sprintf("SELECT * FROM admin WHERE user='%s' AND password=('%s')",$myusername,$mypassword);
if(false === ($result = mysql_query($sql))
{
//Show Database query error and die()
}
// If result matched $myusername and $mypassword, table row must be 1 row
if(mysql_num_rows($result) > 0)
{
session_register("admin");
session_register("password");
$_SESSION['name']= $myusername;
header("location:index1.php");
}else
{
header("location:login.php?msg=" . urlencode("Wrong Username or Password. Please retry"));
}
}else{
header("location:login.php?msg=" . urlencode("Please enter some username and password"));
}
}