php登录表单传递vars

时间:2014-12-28 10:08:43

标签: javascript php html

我有一个页面登录 在页面中有带文本框和提交按钮的html表单 在页面顶部我有PHP代码,如果在数据库中的名称和密码chacke 如果数据库页面中的名称和密码转到新页面并将名称和密码传递给下一页

我可以像使用URL中的变量一样获取metod 但我想传递并转到Post metod的新页面 我怎么能这样做? 请求帮助我代码......

代码html中的

form name="frmlogin"action="<?= $_SERVER['PHP_SELF'] ?>" method="post" >

并在页面顶部有PHP代码:

$msg = ""; 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST["name"];
    $password = $_POST["password"];     if ($name == '' || $password == '') {
    $msg = "You must enter all fields";
    } else {
        $sql = "SELECT * FROM tbluser WHERE fldUsername = '$name' AND fldPass = '$password'";
        $query = mysql_query($sql);

        if ($query === false) {
            echo "Could not successfully run query ($sql) from DB: " . mysql_error();
            exit;
        }

        if (mysql_num_rows($query) > 0) {
            /*header('Location: YOUR_LOCATION');
            exit;*/     
            $msg = "Username and password  match";
            echo '<script type="text/javascript">
            window.location.href = "smartphon100.php?name='. $name .'&password='. $password .'";
        }
        if (mysql_num_rows($query) <= 0) {          
            $msg = "Username and password do not match";
        }
    }
}

帮我改变javascript window.location到post metod

2 个答案:

答案 0 :(得分:1)

你也可以去php重定向。

header('location:smartphon100.php?name='. $name .'&password='. $password) ;

BTW:你在浏览器中传递密码了吗?

答案 1 :(得分:0)

如果我理解正确,您尝试在成功登录后重定向用户。

我看到您当前的代码尝试使用Javascript重定向,问题似乎与您尝试输入的值的引号有关。

尝试更改此行:

window.location.href = "smartphon100.php?name='. $name .'&password='. $password .'";

到此:

window.location.href = "smartphon100.php?name='.$name.'&password='. $password";

总的来说,您应该阅读有关安全性的内容,因为您提供的代码非常容易受到攻击。

PHP: SQL Injection - Manual


如果您尝试使用Javascript在POST方法中将值传递到另一个页面,您可以查看以下答案: JavaScript post request like a form submit

虽然我没有看到过多次发布这些值的原因, 我建议您阅读有关PHP会话,cookie和加密的内容,这些内容允许您存储可以安全地在网站上使用的值。

使用会话的一个简单示例:

<?php
//Starts the session, you need to use this line in every PHP file that'll need to access session variables
session_start();
$_SESSION['user'] = "Donny"; //Storing a user name
?>

与您的代码一起使用会话的简单示例:

Foo.php

session_start();
$msg = ""; 
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $name = $_POST["name"];
    $password = $_POST["password"];     if ($name == '' || $password == '') {
    $msg = "You must enter all fields";
    } else {
        $sql = "SELECT * FROM tbluser WHERE fldUsername = '$name' AND fldPass = '$password'";
        $query = mysql_query($sql);

        if ($query === false) {
            echo "Could not successfully run query ($sql) from DB: " . mysql_error();
            exit;
        }

        if (mysql_num_rows($query) > 0) {
            $_SESSION['user'] = $name;
            $_SESSION['pass'] = $password;
            $msg = "Username and password  match";
            echo '<script type="text/javascript">window.location.href = "smartphon100.php";</script>';
        }
        if (mysql_num_rows($query) <= 0) {          
            $msg = "Username and password do not match";
        }
    }
}

Bar.php

<?php
session_start();
//Accessing the values:
echo $_SESSION['user'];
echo $_SESSION['pass'];
?>

注意: 再次存储这样的值并不好,它们不安全,请阅读有关散列密码的信息。 PHP: Password Hashing