问题描述
现在我想这听起来很混乱,所以我会尽力解释一下。我正在寻找的是一种要求用户输入文本的表格。输入并提交文本后,页面将转到第二种形式(如果未输入任何内容,站点将要求用户再次输入),它将向用户提供他使用的名称/文本,例如“ 问候,(名称)!”。第二种形式已经可以使用登录代码,但是我需要第一种形式而不会崩溃的第二种形式。
This is a very rough sketch of what I expect of form one, and this is a very rough sketch of what form 2 already does,except the name thing
我将在此处提供登录代码,因此它可以与第一种形式一起使用(如果这样还行。.
<?PHP
session_start();
$name = $_GET['name'] ?? "";
$username = $_POST['username'] ?? "";
$pass = $_POST['pass'] ?? "";
$isLogged = false;
if(!empty($username) && !empty($pass)) {
if($username === 'x' && $pass === 'y') {
$_SESSION['isLogged'] = true;
$_SESSION['username'] = $username;
$_SESSION['pass'] = $pass;
}
else {
$errLog= true;
}
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<Meta charset="UTF-8">
<Meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Forms</title>
</head>
<body>
<h1>Greetings <?= $name ?></h1>
<?PHP if(isSet($errLog) && $errLog=== true): ?>
<h2>Wrong login!</h2>
<?PHP endif; ?>
<?PHP if(!isSet($_SESSION['isLogged']) || $_SESSION['isLogged'] === false): ?>
<form method="post">
<input type="text" name="username">
<input type="password" name="pass">
<button type="submit">Send</button>
</form>
<?PHP else: ?>
<p>Given login:</p>
<ul>
<li>Login: <?= $_SESSION['username'] ?> </li>
<li>Password: <?= $_SESSION['pass'] ?> </li>
<li><a href="http://localhost/logout.PHP">logout</a></li>
</ul>
<?PHP endif; ?>
</body>
</html>
同样,这只是一个测试站点,不应被认为是安全的。我是一个初学者,这就是我们要做的项目。
现在,对于第一种形式,我已经尝试了!empty
和!isSet
命令,但是根本不起作用。我无法提供任何代码,因为到目前为止我没有尝试过给出预期的结果。
还有一个“ logout.PHP”文件,该文件是将您重定向回登录站点(表2)的代码,因此并不那么重要。
总结一下,很抱歉,发表了这么长时间的文章,我只是被困住了,到目前为止我尝试过的所有方法都没有用。我也是这里的新手,所以希望我能有所了解。干杯。
解决方法
如果这是您想要的,那么据我的理解,请添加另一个页面,该页面会将名称发布到您的登录页面,如以下代码/页面:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>Forms 1</title>
</head>
<body>
<h1>What is your name </h1>
<form method="post" action="test4.php">
<input type="text" name="name" required="true">
<button type="submit">Send</button>
</form>
</body>
</html>
在这里,在由test4.php插入的表单动作中,添加form_2.php