我有这个表单页面
<!DOCTYPE html>
<html>
<head>
<title>Navigation</title>
</head>
<body>
<form name="form" method="POST" action="capstone.php">
<fieldset>
<p>Where are you trying to go? </p>
<input type="roominput" name="mapinput" id="mapinput">
<br />
<br />
<input type="submit" name="submit" value="Submit">
</fieldset>
</form>
</body>
</html>
我有这个PHP代码,它将表单页面中的用户输入与sql数据库匹配,如果房间存在则回声。
如何更改此代码以匹配表单页面中的用户输入和数据库,并根据表单中的用户输入发布不同的图像?
<?php
$conn=mysqli_connect("localhost","xxx","xxx","xxx");
if (mysqli_connect_errno())
{
echo "Connect failed: " . mysqli_connect_error();
exit();
}
if (isset($_POST['mapinput']))
{
$map = $_POST['mapinput'];
$query = "SELECT * FROM `Rooms` WHERE `Room Number` ='$map'";
$result = mysqli_query($conn,$query);
if (mysqli_num_rows($result))
{
echo 'Room already exists';
}
else
{
echo 'Room does not exist, please try again.';
}
}
mysqli_close($conn);
?>
答案 0 :(得分:2)
type="roominput"
这不是有效的输入类型。
如果您打算使用整数,则需要"text"
或"number"
。后者是HTML5类型。
参考:
您的代码也可以使用SQL注入,使用预准备语句:
注意:如果输入是整数,那么使用$map = (int)$_POST['mapinput'];
就好了。
但是,您应首先检查它是否是整数。有很多方法可以检查这一点,仅举几例:
&#34;如何更改此代码,以便将表单页面中的用户输入与数据库相匹配,并根据表单中的用户输入发布不同的图像?&#34;
您可以使用while
或foreach
循环获取成功查询的结果。
注意:while
循环必须位于if (mysqli_num_rows($result)){...}
然后,回显您想要显示的图像。图像的来源取决于它的位置,无论是来自数据库中的文件夹还是BLOB;那部分是未知的,完全是两种不同的方法。
如果来自服务器上保存的文件:
<img src="/path/to/images/image_x.jpg">
或使用$image = $row['image_in_column'];
循环中的while
:
<img src="/path/to/images/$image">
作为BLOB:
更多例子:
答案 1 :(得分:0)
在这里,我可以给你这样的答案,因为我不知道数据库表列的名称。
Mysqli:capstone.php
<?php
$conn = mysqli_connect("localhost","xxx","xxx","xxx");
if (isset($_POST['submit']))
{
if (isset($_POST['mapinput']))
{
$map = mysqli_real_escape_string($conn, $_POST['mapinput']);
$query = "SELECT * FROM Rooms WHERE Room Number = '$map'";
$result = mysqli_query($conn,$query);
// check if query returns any result
if (mysqli_num_rows($result) > 0)
{
$data = mysqli_fetch_array($result);
// loop through yours result displaying data u want
// and lets say u have image path stored in database
foreach ($data as $dat)
{
echo $dat['column_name'] . ' <img src="'.$dat['image_url'].'"><br />';
}
}
else
{
echo 'No results found.';
}
}
else
{
echo 'Please enter room name.';
}
}
mysqli_close($conn);
?>
表格:
<form method="POST" action="capstone.php">
<fieldset>
<p>Where are you trying to go? </p>
<input type="text" name="mapinput" id="mapinput">
<input type="submit" name="submit" value="Submit">
</fieldset>
</form>