开发者社区> 问答> 正文

关于php的post的问题,报错

本人是PHP还有O-C的新手....我遇到一个问题..

在PHP里面...可以用一个FORM去POST到指定页面,比如POST到登录验证页面,这样是可以通过登录的(在帐号和密码正确的情况下), 我好像记得还有一种方法也可以直接做POST..就是在地址栏里面直接接参数...比如http://localhost/login.php?username=username&password=password ,但是如果我用这种法中POST的话...他就会报错..说undefined index username 还有undefined index password....

展开
收起
一枚小鲜肉帅哥 2020-05-28 13:19:07 830 0
1 条回答
写回答
取消 提交回答
  • 菜不可及的程序猿

     那叫GET

    GET 和 POST 的概念你没搞明白? Google一下先

    $_GET[' username']   $_GET[' password ']    

    要在验证帐号密码的那个PHP文件里面把$_POST['username'] $_POST['password'] 改成GET

    你看看你form表单中的method

    如果是method="get",在接收页面使用$_GET来接收

    如果是method="post",在接收页面使用$_POST来接收

    public function login($username,$password)
    {
    $username = clean($username);
    $password = clean($password);
    $encrypted_psword = hash("sha512", "$password");
    $db_con=mysqli_connect("localhost","root","","Jobridge");
    $result = mysqli_query($db_con,"SELECT * FROM usr_list WHERE Username='$username' AND Password='$encrypted_psword'");
    $count = mysqli_num_rows($result);
    if ($count == 1)
    {
    if(isset($_POST['rememberMe']))
    {
    setcookie('username', $username, time() + 604800, '/');
    setcookie('password', $encrypted_psword, time() + 604800, '/');
    }
    else
    {
    setcookie('username', $username, time() + 3600, '/');
    setcookie('password', $encrypted_psword, time() + 3600, '/');
    }
    $currentDate = date('Y-m-d g:i:s');
    $result = mysqli_query($db_con,"UPDATE usr_list SET last_login = ' ". $currentDate ." ' WHERE username ='$username'");
    ?><script type="text/javascript">
    function redirect() {
    window.location='/Jobridge/login_page.php';
    }setTimeout(redirect, 0);
    </script><?php
    }
    else
    echo "fail";
    ?><script type="text/javascript">
    function redirect() {
    window.location='/Jobridge/index.php';
    }setTimeout(redirect, 2000);
    </script><?php

    }

    上面是class里面的一个function。。。。。。

    下面是创建对象。。然后调用这个方法的代码

    <?php
    include $_SERVER['DOCUMENT_ROOT'].'/controller/main_function.php';


    $Jobridge = new Jobridge;
    if(isset($_POST['username']) && isset($_POST['password']))
    {
    $username = $_POST['username'];
    $password = $_POST['password'];
    $Jobridge -> login($username, $password);
    }
    ?>
    这两个代码是在不同的文件里的。。。第二套是在login.php。。就是用来做验证的文件里面。

    2020-05-29 13:12:06
    赞同 展开评论 打赏
问答分类:
PHP
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PHP 2017.北京 全球开发者大会——高可用的PHP 立即下载
PHP安全开发:从白帽角度做安全 立即下载
复杂PHP系统性能瓶颈排查及优化 立即下载