繁体   English   中英

如何在数据库中存储会话变量

[英]How to store session variable in database

我实际上是PHP新手。 我的问题是该会话未存储在我的数据库中。

这是我的demo_session1.php

<?php
$Refno="";
// Start the session
session_start();

$_SESSION["$Refno"] = "HNo1";
echo "Ref no.:HNO1";

if(isset($_POST['submit']))
{
   $Refno  = $_POST['Refno'];

}
?>

<html>
<body>
<a href="demo_session2.php">Arrange to view property</a>

</body>
</html> 

这是我的demo_session2.php:

<?php
$Refno = $message= ""; 
$messageErr = "";

session_start();
require "configdemo.php";
echo "Ref no.: " . $_SESSION["$Refno"] . ".<br>";

if(isset($_POST['submit']))
{
$Refno  = $_POST['Refno'];
$message = $_POST['message'];
}

 if (empty($_POST["message"])) 
{
     $messageErr = "Please leave a message for the agent.";
   }

else
{

 $sql = mysqli_query($con,"INSERT INTO demo (Refno, message) VALUES 

('$Refno' , '$message') ") or die("Can't Insert! ");
          header ("location: thanks.php"); 
         }

?>
<style>
.error {
color: #FF0000;
font-size:12px;
text-transform: lowercase;
}
</style>
<!DOCTYPE html>
<html>
<body>
<table width="100%" align="center" cellpadding="0" cellspacing="1" >
<form name="viewing_form" method="post" action="">
<tr>
<td>Message: <td><textarea name="message"rows="5" cols="25" value="<?php echo 

$message;?>"></textarea>
<td><span class="error"> <?php echo $messageErr;?></span></td>
</tr>
<tr>
<td><input type="submit" name="submit" value="Submit"></td>
<td><input type="submit" name="cancel" value="Cancel"></td>
</body>
</html> 

“ refno”显示在demo_session2.php上,但是当我按下“提交”按钮时,仅将消息插入到数据库中。 我也希望插入“ Refno”。

  • 从$ _SESSION Refno中删除$符号(如Vincent所述)
  • 如果我正确看到此信息,则您的表单不包含名称为“ Refno”的字段。 因此不会有$ _POST ['Refno']。 因此,您可以添加这样的字段,或者在QUERY中使用SESSION:

    $ sql = mysqli_query($ con,“ INSERT INTO demo(Refno,message)VALUES('$ _SESSION [Refno]','$ message')”)或die(“ Ca n't Insert!”);

并且正如Karel所提到的,使用mysqli_real_escape_string()来转义$ message是合适的

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM