我希望成员能够向网站提交项目。提交过程有效,项目正确添加到数据库,但会话消息不适用。
<?php
require 'db2.php';
$email = $mysqli2->escape_string($_POST['email']);
$itemName = $mysqli2->escape_string($_POST['itemName']);
$image = $mysqli2->escape_string($_POST['image']);
$price = $mysqli2->escape_string($_POST['price']);
$wpSite = $mysqli2->escape_string($_POST['wpSite']);
$description = $mysqli2->escape_string($_POST['description']);
$banned = $mysqli2->escape_string($_POST['omitBox']);
$sql2 = "INSERT INTO itemsTable (email, itemName, image, price, wpSite, description, banned) "
. "VALUES ('$email', '$itemName', '$image', '$price', '$wpSite', '$description', '";
if( empty($_POST["omitBox"]) ) {
$sql2 .= "0";
} else {
$sql2 .= "1";
}
$sql2 .= "');";
if ( $mysqli2->query($sql2) ){
$_SESSION['message'] = 'Successfully added this item to your wishlist';
echo'<script> window.location="success.php"; </script> ';
}
else {
$_SESSION['message'] = 'Something went wrong! Please try again!';
echo'<script> window.location="error.php"; </script> ';
}
我希望将信息插入数据库(并且没有问题),但在成功页面上,会话消息不存在。成功页面适用于网站的其他部分,但从此页面开始,它不会。
答案 0 :(得分:0)
只需在文件顶部添加session_start()
即可<?php
session_start();
require 'db2.php';
......
?>
答案 1 :(得分:0)
您错过了session_start()
功能。在创建或设置会话时,您需要启动会话。对于succes.php
和error.php
文件,还需要测试会话是否存在。所以我建议你做两件事:
将session_start()
添加到您的主文件中:
<?php
// Start the session
session_start
// Rest of the code.
?>
在session_start()
和succes.php
个文件中添加error.php
+项检查。有很多方法可以测试这个,所以我会告诉你使用isset
的方式:
使用isset功能
function ifsessionExists(){
// check if session exists?
if(isset($_SESSION)){
return true;
}else{
return false;
}
}
您也可以使用空函数
function ifsessionExists(){
// check if session exists?
if(!empty($_SESSION)){
return true;
}else{
return false;
}
}
希望这有帮助!