PHP - 在不同文件中使用变量

时间:2017-05-18 18:03:48

标签: php

PHP noob在这里。我正在尝试创建一个登录文件。这是我的代码:

HTML:

<body>
<div class="login">
    <h2 class="login-header">Log in</h2>
    <form action="practice.php" method="POST" class="login-container">
        <p>
            <label>Username: </label>
            <input type="text" id="user" name="user" placeholder="Enter Username" required/>
        </p>
        <p>
            <label>Password:</label>
            <input type="password" id="pass" name="pass" placeholder="Enter Password" required/>
        </p>
        <p>
            <input type="submit" id="btn" value="Login" />
        </p>

    </form>
</div>

PHP:

<?php

    $usernameIn = $_POST['user'];
    $passwordIn = $_POST['pass'];

    $usernameIn = stripcslashes($usernameIn);
    $passwordIn = stripcslashes($passwordIn);
    $usernameIn = mysql_real_escape_string($usernameIn);
    $passwordIn = mysql_real_escape_string($passwordIn);

    $host = 'localhost';
    $user = 'root';
    $password = '';
    $db ='practice';

    $connection = mysqli_connect($host,$user,$password,$db);// you can select db separately as you did already
    if($connection){
        $ret = mysqli_query($connection,"SELECT `userName`, `password`, `clearacne` FROM 
            `users_table` WHERE `userName`='$usernameIn' AND `password`='$passwordIn'");
        global $to_encode = array();
        while($row = mysqli_fetch_assoc($ret)) {
            $to_encode[] = $row;
        }

        //user doesn't exist redirect to error page
        if(empty($to_encode)) header("Location: http://localhost/practiceLogin/loginErrorIndex.html");

        //user exist continue
        else{ 
            $to_encode = json_encode($to_encode);
            header("Location: http://localhost/practiceLogin/loginOkIndex.php");
        }


    }else{
        echo "db connection error because of".mysqli_connect_error();
    }
  ?>

两个问题: 1)如果数据库中存在信息,是否有办法处理用户输入的信息并将其重定向到新文件? 2)如何在不包含/需要practice.php文件的情况下将practice.php中的变量$ to_encode传递给其他.php文件?

基本上我要做的是如果用户没有注册就不允许访问,如果他允许访问另一个文件并使用代表与用户关联的不同参数的JSON对象。

谢谢!

1 个答案:

答案 0 :(得分:0)

第一个问题:您已经在重定向:

 header("Location: http://localhost/practiceLogin/loginOkIndex.php");

第二个问题:是的,有办法。它被称为会话。您可以在此处阅读更多内容:http://php.net/manual/en/book.session.php

基本解释 - 一旦检查用户名/密码是否与您开始会话匹配,在其中放入一些临时变量,文件已写入服务器的硬盘并且cookie已发送到您的用户的浏览器。下次用户向您的某些页面发送请求时,您检查cookie,检查会话是否仍处于活动状态且未过期,您可以从会话的文件中获取临时变量。

重要的东西已经写好并自动化了。只需花点时间阅读我给你的链接,我相信你会在互联网上找到很多示例资源。