gpt4 book ai didi

php - 无法获取登录成功查看

转载 作者:搜寻专家 更新时间:2023-10-31 22:01:24 25 4
gpt4 key购买 nike

所以我在登录表单中输入了写入凭据,它应该将我重定向到显示成功登录的 home.php 页面,但是当我点击提交时,页面只是刷新并且没有执行任何事物。如果我在登录后更改 login_action 加载的内容,它会正确执行,但如果我告诉它加载 home.php,它什么也不做……有帮助吗?

这是我的 home.php 代码:

<?php

session_start() ;

if( !isset($_SESSION['username']))
{
require('login_tools.php');
load();
}

$page_title = 'Home';

echo"<h1>HOME</h1>
<p>You are now logged in, {$_SESSION['username']}</p>";

echo'<p><a href="goodbye.php">Logout</a></p>';

?>

和 login_action.php

   <?php

if ( $_SERVER['REQUEST_METHOD'] == 'POST')
{
require ('../connect_db.php') ;
require ('login_tools.php') ;

list ($check, $data) =
validate($dbc, $_POST['username'], $_POST['password']);

if ($check )
{
session_start() ;

$_SESSION['user_id'] = $data['user_id'] ;
$_SESSION['username'] = $data['username'] ;

load('home.php') ;
}
else {$errors = $data ;}

mysqli_close( $dbc);
}

include('login.php');
?>

**login.php:**


<?php

$page_title = 'Login';

if ( isset( $errors ) && !empty( $errors))
{
echo'<p id="err_msg">Oops! There was a problem:<br>';
foreach ( $errors as $msg )
{
echo " - $msg<br>";
}
echo 'Please try again or <a href="register.php">Register</a></p>';
}
?>
<h1>Login</h1>
<form action="login_action.php" method="POST">
<p>
Username: <input type="text" name="username">
</p><p>
Password: <input type="password" name="password">
</p><p>
<input type="submit" value="Login" >
</p>
</form>

最佳答案

根据您的代码,它应该刷新。事实上,它不是刷新,它是无限加载 login.php 将其包含在 login_action.php

的末尾

你应该使用 header重定向而不是包括如下:

    <?php
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');

if ( $_SERVER['REQUEST_METHOD'] == 'POST')
{
require ('../connect_db.php') ;
require ('login_tools.php') ;

list ($check, $data) =
validate($dbc, $_POST['username'], $_POST['password']);

if ($check )
{
session_start() ;

$_SESSION['user_id'] = $data['user_id'] ;
$_SESSION['username'] = $data['username'] ;

$extra = 'home.php';
header("Location: http://$host$uri/$extra");
exit;
}
else {
$errors = $data ;
$_SESSION['Errors'] = $errors;
$extra = 'login.php';
header("Location: http://$host$uri/$extra");
exit;
}

mysqli_close( $dbc);
}


?>

在 login.php 中

$page_title = 'Login';

if ( isset( $_SESSION['Errors'] ) && !empty( $_SESSION['Errors'])){
$errors = $_SESSION['Errors'];
//continue your code...
// at the end of the code:
unset($_SESSION['Errors']);

关于php - 无法获取登录成功查看,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28510647/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com