【发布时间】:2015-05-06 17:36:43
【问题描述】:
我实际上是 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>
demo_session2.php 上显示“Refno”,但是当我按下提交按钮时,只有消息被插入到数据库中。我还想插入“Refno”。
【问题讨论】:
-
应该:$_SESSION["$Refno"]_ 真的是 _$_SESSION["Refno"]?注意:当使用数组索引时,从 'Refno' 中删除 $。目前它使用 $Refno 的值作为索引。
-
题外话:请注意您正在编写可注入 SQL 的代码。您无法控制
$message的值,但您将其连接到一个 SQL 语句中,然后盲目执行。 -
我删除了美元符号但无济于事。我希望将“Refno”插入数据库。 'Refno' 实际上是一个会话变量,它从 demo_session1.php 到 demo_session2.php 显示。对不起,如果我很痛苦,但我不理解背后的逻辑。
-
在此之前:if(isset($_POST['submit'])) 请执行:var_dump($Refno, $_POST['Refno'] , $_SESSION["$Refno"]);.它应该为您提供一些关于正在发生的事情的线索。如果仍然不清楚,请用结果编辑您的答案。
-
我收到以下通知: 注意:未定义索引:第 8 行 C:\xampp\htdocs\demo_session2.php 中的参考编号 参考编号:。注意:未定义索引:第 10 行 C:\xampp\htdocs\demo_session2.php 中的 Refno string(0) "" NULL string(4) "HN01"
标签: php database variables session