使用 Php 成功提交表单后打开新页面
Opening A New Page After Form Successfully Submitted Using Php
我使用 php.If 控制表单元素 它们无效 我在下面打印一条错误消息 them.My 问题是当表单中的每个元素都为真时,页面不会重定向到目标页面 i想要,它显示一个空的 logintest.php(在 php 文件夹内)并且没有重定向它。
这是我的 index.php 代码(实际上是登录页面)
<form action="../php/logintest.php" method="post">
<div class="form-group">
<input type="email" name="email" class="form-control" id="name" placeholder="Username-mail">
<?php if(isset($nameError)) { ?>
<?php echo "<span style='color:red;'>$nameError</span>"; ?>
<?php } ?>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" id="parola" placeholder="Password">
<?php if(isset($parolaError)) {?>
<?php echo "<span style='color:red;'>$parolaError</span>"; ?>
<?php } ?>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="accept" name="checker">
<p class=ctrlButton>You have to accept the terms.</p>
<?php if(isset($checkBoxError)) {?>
<?php echo "<span style='color:red;'>$checkBoxError</span>"; ?>
<?php } ?>
</div>
<div class="form-group">
<input type="submit" name="submit" value="Enter" id="submit" class="btn btn-outline-danger login_btn">
</div>
</form>
我的 logintest.php 代码是..
<?php
$nameError="";
$parolaError="";
$checkBoxError="";
if(isset($_POST['checker'])){
if(isset($_POST['email']) && isset($_POST['password']) ){
if($_POST['password']=="123" && $_POST['email']=="123@gmail.com"){
//true input
// window.open('https://github.com/', '_blank');
header("location:https://www.google.com");
}
if($_POST['password']!="b211210381"){
$parolaError='Parola is wrong';
// header('Location: index.php');
}
if($_POST['email']!="abc@gmail.com" ){
$nameError='Wrong email try again';
// header('Location: index.php');
}
}
else{
if($_POST['password']==""){
$parolaError='Enter a parola';
}
if($_POST['email']==""){
$nameError='Enter a userName';
}
}
}
else {
$checkBoxError='Please accept the terms';
}
include('../index.php');
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL ^ E_NOTICE);
?>
我相信您无法设置 header 位置,一旦它已经被设置
在此处查看已接受的答案:How to fix "Headers already sent" error in PHP
我不确定我会因为提供这个解决方案而遭到多少讨厌,但这对我有用:(0 是以秒为单位的时间,因此您可以添加延迟)
echo '<meta http-equiv="refresh" content="0; URL=https://www.google.com">';
我使用 php.If 控制表单元素 它们无效 我在下面打印一条错误消息 them.My 问题是当表单中的每个元素都为真时,页面不会重定向到目标页面 i想要,它显示一个空的 logintest.php(在 php 文件夹内)并且没有重定向它。 这是我的 index.php 代码(实际上是登录页面)
<form action="../php/logintest.php" method="post">
<div class="form-group">
<input type="email" name="email" class="form-control" id="name" placeholder="Username-mail">
<?php if(isset($nameError)) { ?>
<?php echo "<span style='color:red;'>$nameError</span>"; ?>
<?php } ?>
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" id="parola" placeholder="Password">
<?php if(isset($parolaError)) {?>
<?php echo "<span style='color:red;'>$parolaError</span>"; ?>
<?php } ?>
</div>
<div class="form-check">
<input type="checkbox" class="form-check-input" id="accept" name="checker">
<p class=ctrlButton>You have to accept the terms.</p>
<?php if(isset($checkBoxError)) {?>
<?php echo "<span style='color:red;'>$checkBoxError</span>"; ?>
<?php } ?>
</div>
<div class="form-group">
<input type="submit" name="submit" value="Enter" id="submit" class="btn btn-outline-danger login_btn">
</div>
</form>
我的 logintest.php 代码是..
<?php
$nameError="";
$parolaError="";
$checkBoxError="";
if(isset($_POST['checker'])){
if(isset($_POST['email']) && isset($_POST['password']) ){
if($_POST['password']=="123" && $_POST['email']=="123@gmail.com"){
//true input
// window.open('https://github.com/', '_blank');
header("location:https://www.google.com");
}
if($_POST['password']!="b211210381"){
$parolaError='Parola is wrong';
// header('Location: index.php');
}
if($_POST['email']!="abc@gmail.com" ){
$nameError='Wrong email try again';
// header('Location: index.php');
}
}
else{
if($_POST['password']==""){
$parolaError='Enter a parola';
}
if($_POST['email']==""){
$nameError='Enter a userName';
}
}
}
else {
$checkBoxError='Please accept the terms';
}
include('../index.php');
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(E_ALL ^ E_NOTICE);
?>
我相信您无法设置 header 位置,一旦它已经被设置 在此处查看已接受的答案:How to fix "Headers already sent" error in PHP
我不确定我会因为提供这个解决方案而遭到多少讨厌,但这对我有用:(0 是以秒为单位的时间,因此您可以添加延迟)
echo '<meta http-equiv="refresh" content="0; URL=https://www.google.com">';