我有一个带有两个下拉菜单和一个文本输入字段的表单提交。我已经将值上载到可以正常工作的数据库中,但是在处理它们之后,我试图将$ _POST值传递到第三成功页面。无论研究如何,我似乎都无法使其正常工作。显然我在做错事,只需要一点点帮助即可查明。文件示例如下。预先感谢您的帮助。
index.php
<?php
session_start();
$_SESSION["mynext"] = $_POST["mynext"];
$_SESSION["city"] = $_POST["city"];
$_SESSION["comment"] = $_POST["comment"];
?>
<form action="scripts/process.php" method="post">
<div class="col-md-5 col-lg-3">
<div class="form-group">
<label for="mynext">Choose your language</label>
<select class="form-control" id="mynext" name="mynext" autocomplete="off" required>
<option class="engl" value="My Next" selected="selected">My Next</option>
<option class="span" value="Mi próximo">Mi próximo</option>
<option class="chin-simp" value="我的未來的">我的未來的</option>
<option class="chin-trad" value="我的未來的">我的未來的</option>
<option class="kore" value="나의 다음">나의 다음</option>
<option class="arme" value="ԻՄ ՀԱՋՈՐԴ">ԻՄ ՀԱՋՈՐԴ</option>
<option class="russ" value="МОЙ БУДУЩЕГО">МОЙ БУДУЩЕГО</option>
<option class="viet" value="TRONG TƯƠNG LAI CỦA TÔI">TRONG TƯƠNG LAI CỦA TÔI</option>
<option class="japa" value="私の次の">私の次の</option>
<option class="thai" value="ในอนาคตของฉัน">ในอนาคตของฉัน</option>
<option class="khmr-camb" value="របស់ខ្ញុំបន្ទាប់">របស់ខ្ញុំបន្ទាប់</option>
</select>
</div>
</div>
<div class="col-md-5 col-lg-3">
<div class="form-group">
<label for="city">Select where you live, work, or play</label>
<select class="form-control" id="city" name="city" autocomplete="off">
<option value="LA" selected="selected">LA*</option>
<option value="Agoura Hills">Agoura Hills</option>
</select>
</div>
</div>
<div class="col-md-2 dynamic-is">
<p class="engl">is</p>
<p class="hidden span">es</p>
<p class="hidden chin-simp">是</p>
<p class="hidden chin-trad">是</p>
<p class="hidden kore">는 입니다</p>
<p class="hidden arme">-ն է՝</p>
<p class="hidden russ">— это</p>
<p class="hidden viet">là</p>
<p class="hidden japa">は</p>
<p class="hidden thai">คือ</p>
<p class="hidden khmr-camb">-ն է՝</p>
</div>
<div class="col-md-10 col-lg-3 comment-wrapper">
<div class="form-group">
<label for="comment">Tell us what you’d like to see</label>
<input type="text" class="form-control" id="comment" name="comment" placeholder="Type here" autocomplete="off" required>
</div>
</div>
<div class="col-md-2 col-lg-1">
<button type="submit" name="mynext-submit" class="btn btn-lg btn-primary submit">Submit</button>
</div>
</form>
提交表单后,将通过如下所示的process.php上传表单值
process.php
<?php
$mynext = filter_input(INPUT_POST, 'mynext');
$city = filter_input(INPUT_POST, 'city');
$comments = filter_input(INPUT_POST, 'comment');
if(!empty($comments)){
$host = 'localhost';
$user = '';
$password = '';
$dbname = '';
$conn = new mysqli ($host, $user, $password, $dbname);
if(mysqli_connect_error()){
die('Connect Error (' . mysqli_connect_error() . ') ' . mysqli_connect_error());
}else{
$sql = "INSERT INTO nextla (mynext, city, comment) VALUES ('$mynext', '$city', '$comments')";
if ($conn->query($sql)){
echo "<br>Input data is successful";
}
else{
echo "Error: ". $sql ."<br>". $conn->error;
}
$conn->close();
}
}else{
echo 'Please add a comment';
die();
}
header( 'Location: ../comment-success.php' );
?>
处理后,我想在下面的comment-success.php页面上显示表单字段信息。
comment-success.php
<?php include("includes/header.php"); ?>
<div class="banner sub-banner sub-careers">
<img src="<?php echo $siteroot; ?>img/banner/sub-contact.jpg" alt="">
<div class="overlay"></div>
<h1><?php echo $page; ?></h1>
</div>
<div class="email-sent-container container">
<div class="row">
<div class="col-12">
<h1 class="section-divider">Your Comments have been Submitted Successfully</h1>
<?php
echo $_SESSION["mynext"];
echo $_SESSION["city"];
echo $_SESSION["comment"];
session_unset();
?>
<p>Thank you for your input. Click <a href="index.php">here</a> to return to the home page.</p>
</div>
</div>
</div>
<?php include ('includes/footer.php'); ?>
有人可以帮我找到解决方案吗?我敢肯定这很简单,而且我一直在盯着这段代码很长时间,但似乎只是忽略了它。谢谢您的帮助。
答案 0 :(得分:0)
您需要输入以下代码:
session_start();
$_SESSION["mynext"] = $_POST["mynext"];
$_SESSION["city"] = $_POST["city"];
$_SESSION["comment"] = $_POST["comment"];
最上面的pf实际接收到POST的文件
process.php
<?php
session_start();
$_SESSION["mynext"] = $_POST["mynext"];
$_SESSION["city"] = $_POST["city"];
$_SESSION["comment"] = $_POST["comment"];
$mynext = filter_input(INPUT_POST, 'mynext');
$city = filter_input(INPUT_POST, 'city');
$comments = filter_input(INPUT_POST, 'comment');
...
并在每个使用会话的文件的顶部添加一个session_start();
。
PS:您应使用prepared statements以避免SQL注入。