在PHP页面之间传递信息

Par*_*ius 5 php forms

如何在PHP页面之间传递信息?

例如,我有一个PHP脚本来处理来自表单的登录输入,然后是一个单独的PHP脚本来处理用户的进一步输入.但是,我希望第二个PHP文件从登录表单接收输入.本质上,我不希望为登录运行两次相同的脚本.

lpf*_*eau 7

您正在寻找POST和GET变量,它是在HTML表单的method参数中完成的:

的login.php

<form name="myform" action="secondpage.php" method="post">
    <div>Username: <input type="text" name="username" value="" /></div>
    <div>Password: <input type="password" name="password" value="" /></div>
</form>
Run Code Online (Sandbox Code Playgroud)

然后在这另一页:

secondpage.php

$username = isset($_POST['username']) ? $_POST['username'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';
if ($username != '') {       
    // do your validations here
}
Run Code Online (Sandbox Code Playgroud)

说明

当您使用GET方法时,参数在URL中可见,所以假设我们在login.php中更改method ="GET",您最终会得到类似secondpage.php?username = jsmith&password = 1234的内容.然后你可以使用它来获取值$_GET['username'].

使用POST可以发送更大量的数据(URL的大小有一个模糊的限制),并且在URL中不可见.您应该注意它仍然以明文形式发送,因此并不意味着它是安全的.

POST和GET是为了不同的目的而制作的.应该使用GET来提取您将来可能想要再次提取的信息,这些信息对于这一瞬间并不特殊.拥有mypage.php?product = 123非常有用,因为您可能希望将此URL发送给朋友.当您修改数据状态时,应使用POST:更新产品,创建新用户,删除文章等.这是你想要发生一次的事情.

结构体

总之,我只想补充一点,通常你不一定要使用另一个PHP脚本来避免一些代码运行.因此,在不知道项目细节的情况下,我可以说你可能想要做同样的事情来从相同的代码(例如表单的HTML)中受益.

请注意它的简化代码.

的login.php

<?php

    $error = false;
    $username = isset($_POST['username']) ? $_POST['username'] : '';
    $password = isset($_POST['password']) ? $_POST['password'] : '';
    // if, and only if something was posted... so not on first display
    if ($username != '') {       
        // do your validations here
        if ($properlyLogged) {
            session_start();
            $_SESSION['loggedAt'] = time();
            header('Location: http://localhost/secondpage.php');
            exit();
        } else {
            $error = true;
        }
    }

?>

<?php if($error): ?>Login failed. Please try again.<?php endif; ?>
<form name="myform" action="login.php" method="post">
    <div>Username: <input type="text" name="username" value="<?php echo($username) ?>" /></div>
    <div>Password: <input type="password" name="password" value="" /></div>
</form>
Run Code Online (Sandbox Code Playgroud)

secondpage.php

<?php
    session_start();
    if (!isset($_SESSION['loggedAt'])) {
        // if not properly logged in, return user to login
        header('Location: http://localhost/login.php');
        exit();
    }
?>
You are now logged in!
Run Code Online (Sandbox Code Playgroud)

希望这就是你要找的!


Rob*_*ing 1

如果数据不是那么大,您可以使用通过 URL(GET 变量)传递的数据将用户重定向到第二页。否则,只需在同一页面中运行秒方法,并使用函数对数据进行最终解析,可以按照上述用户的建议包含该数据。