登录脚本不予执行 - BlueHost的(Login Script Not Executing -

2019-10-31 18:09发布

我有以下登录脚本,当用户点击了提交上www.msheeksproductions.com登录表单上的按钮时运行。 我已删除出于安全原因,DB登录信息。

    <?php
error_reporting(E_ALL);
        $user = '***************';
        $pass = '***************';
        $host = '***************';
        $data = '***************';
$userN=$_POST['userN'];
$passW=$_POST['passW'];

mysql_connect($host, $user, $pass)or die("Could not connect");
mysql_select_db($data)or die("Database Not Found");

$query="SELECT userID FROM sec_login WHERE Username='$userN' AND Password='passW'";
$result=mysql_query($query) or die(mysql_error());

$user=mysql_num_rows($result);
if($user==1) {
    session_register("userN");
    header("location: ../index.php");
}
else {
echo("You have entered invalid login information.");
}
}
?>
<!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>Untitled Document</title>
</head>

<body>
</body>
</html>

我的问题是,如果你登陆security.php页面上,没有任何反应。 PHP脚本似乎并没有在所有正被运行。 我不知道如果我有一个语法错误的地方,或者如果它是一个配置问题,我的托管帐户。 该服务器使用PHP 5.2。 有谁知道是否有已知问题BlueHost的这些各种各样的事情? 如果有一个编码错误,那么显然我很想知道为好。 我是新来的这一点,所以我可能不会做了的一切权利。

此外,我试图在index.php文件,这似乎不返回任何数据再次调用变量。

<?php $usr=$_SESSION['username']; 
echo "User Name Is: $usr"; ?>

提前致谢!

Answer 1:

请考虑以下几点:

  • 当心SQL注入(由mysql_real_escape_string停止);
  • 当心会话固定/劫持;
  • 当心或蛮力攻击;
  • 请检查http://php.net/pdo更好的错误处理和查询参数....

     <?php error_reporting(E_ALL); ini_set('display_errors', 1); if ($_SERVER['REQUEST_METHOD'] == 'POST') { $user = '***************'; $pass = '***************'; $host = '***************'; $data = '***************'; mysql_connect($host, $user, $pass) or die("Could not connect"); mysql_select_db($data) or die("Database Not Found"); $result=mysql_query("SELECT COUNT(1) FROM sec_login WHERE Username='".mysql_real_escape_string($_POST['username'])."' AND Password='".mysql_real_escape_string($_POST['password'])."'") or die(mysql_error()); if(mysql_result($result) == 1) { $_SESSION['username'] = $_POST['username']; header("location: ../index.php"); exit; } else { $message = 'You have failed to provide valid credentials.'; } } else { $message = '<form method="post"> <input type="text" name="username" value="username" /> <br /> <input type="password" name="password" value="password" /> <br /> <input type="submit" /> </form>'; } ?> <!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>Untitled Document</title> </head> <body> <?php echo $message; ?> </body> </html> 


Answer 2:

好了,万一有人绊倒在此,需要一个例子。 以下是我现在用一个能运作的日志中的脚本代码:

<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $user = '***********';
    $pass = '***********';
    $host = '***********';
    $data = '***********';

    mysql_connect($host, $user, $pass) or die("Could not connect");
    mysql_select_db($data) or die("Database Not Found");

    $result=mysql_query("SELECT userID FROM sec_login WHERE Username='".mysql_real_escape_string($_POST['userN'])."' AND Password='".mysql_real_escape_string($_POST['passW'])."'") or die(mysql_error());

    if(mysql_num_rows($result) == 1) {
        $_SESSION['login']=1;
        $_SESSION['username']=$_POST['userN'];
        $session= session_name() . '=' . session_id();
        header("location: ../index.php?".$session);
        exit();
    } else {
        $message = 'You have failed to provide valid credentials.';
    }
}
?>
<!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>Untitled Document</title>
    </head>

    <body>
        <?php echo $message; ?>
    </body>
</html>

连接变量省略,当然。 为了使其他页面以获得在会话变量确保每一页开头(字面上的第一行代码,甚至是你的DOCTYPE声明前)

感谢您帮助乡亲!



文章来源: Login Script Not Executing - Bluehost