【发布时间】:2017-10-16 21:54:38
【问题描述】:
我发现以下脚本由于某种原因挂起。它将加载并且 PHP 看不到任何错误,但它不会处理数据(请注意,我们处于打开单独登录数据库的上下文中。)
在 process.php 中我们有以下内容:
<? PHP
//Process the POST data in prepration to write to SQL database.
$_POST['chat_input'] = $input;
$time = date("Y-m-d H:i:s");
$ip = $_SERVER['REMOTE_ADDR'];
$name = $_SESSION['username'];
$servername = "localhost";
$username = "id3263427_chat_user";
$password = "Itudmenif1!Itudmenif1!";
$dbname = "id3263427_chat_user";
$id = "NULL";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
$sql = 'INSERT INTO `chat` (`id`, `username`, `ip`, `timestamp`,
`message`) VALUES ('$id','$name', '$ip', '$time', '$input')';
if(mysqli_query($link, $sql)){
mysqli_close($conn);
header('Location: ../protected_page.php');
} else {
echo "ERROR: Could not able to execute $sql. " . mysqli_error($link);
}
?>
上面传递给脚本的html表单如下:
<form action="/process.php" method="post" id="chat">
<b> Send A Message (500 Character Max):</b><br>
<textarea name="chat_input" form="chat" size="500"></textarea>
<input type="submit" value=submit>
</form>
不知道这是怎么回事。
【问题讨论】:
-
您确定要执行此
$_POST['chat_input'] = $input;而不是此$input = $_POST['chat_input'];? -
我纠正了这一点,无论发生什么似乎都没有影响。
-
你确定没有报错检查你的sql字符串,如果你对列名进行简单引用,它通常必须用双引号括起来
-
您还为连接使用了两个不同的变量名称,
$conn和$link。尝试更改为$link = mysqli_connect($servername, $username, $password, $dbname); -
检查 php.ini 中的
display_errors设置。这在默认情况下经常关闭,但应该在开发环境中打开。
标签: php windows apache http web-deployment