在窗体上打印错误消息
问题描述:
我有一个窗体可以帮助用户将值插入到数据库中。我已经在服务器端创建了一个检查,确保在数据库中没有输入重复标题。一切正常。但是我希望做一些修改,我希望当用户试图提交表单在窗体上打印错误消息
<form class="form-horizontal" role="form" action="insert_project1.php" enctype="multipart/form-data" method="post">
<div class="form-group">
<label class="col-lg-3 control-label">Title</label>
<div class="col-lg-8">
<input class="form-control" name="title" value="" type="text">
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">Title</label>
<div class="col-lg-8">
<input class="form-control" name="title" value="" type="text">
</div>
</div>
</form>
代码,我在声明中echo "title already exists";
我打印的消息应该得到的形式显示,在标题框的前insert_project1.php页
<?php
include('session.php');
$con=mysqli_connect("localhost","root","","db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$title = mysqli_real_escape_string($con, $_POST['title']);
$categoryname = mysqli_real_escape_string($con, $_POST['categoryname']);
$goal = mysqli_real_escape_string($con, $_POST['goal']);
if($_POST)
{
$title = $_POST['title'];
$sql1 = "SELECT title from project";
$result = mysqli_query($con, $sql1);
if (mysqli_num_rows($result) > 0)
{
echo "title already exists";
}
else
{
$sql="INSERT INTO project (title, category, goal) VALUES ('$title', '$categoryname', '$goal')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
header("Location: create_project.php");
exit;
}
}
mysqli_close($con);
?>
答
在你的HTML:
<?php
if(isset($title_error)){
?>
<?php echo $title_error ?>
<?php } ?>
<label class="col-lg-3 control-label">Title</label>
在你的PHP文件:
if (mysqli_num_rows($result) > 0)
{
$title_error = "title already exists";
}
答
试试这个:
session_start()
$con=mysqli_connect("localhost","root","","db");
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$title = mysqli_real_escape_string($con, $_POST['title']);
$categoryname = mysqli_real_escape_string($con, $_POST['categoryname']);
$goal = mysqli_real_escape_string($con, $_POST['goal']);
if($_POST)
{
$title = $_POST['title'];
$sql1 = "SELECT title from project";
$result = mysqli_query($con, $sql1);
if (mysqli_num_rows($result) > 0)
{
$_SESSION['error_msg']='title already exists';
}
else
{
$sql="INSERT INTO project (title, category, goal) VALUES ('$title', '$categoryname', '$goal')";
if (!mysqli_query($con,$sql))
{
die('Error: ' . mysqli_error($con));
}
header("Location: create_project.php");
exit;
}
}
mysqli_close($con);
?>
<form class="form-horizontal" role="form" action="insert_project1.php" enctype="multipart/form-data" method="post">
<div class="form-group">
<label class="col-lg-3 control-label">Title</label>
<div class="col-lg-8">
<input class="form-control" name="title" value="" type="text">
\t \t \t \t <?php session_start(); if(isset($_SESSION['error_msg'])) echo $_SESSION['error_msg']; ?>
</div>
</div>
<div class="form-group">
<label class="col-lg-3 control-label">Title</label>
<div class="col-lg-8">
<input class="form-control" name="title" value="" type="text">
</div>
</div>
</form>
为什么混合'的mysql/mysqli'? – Ghost 2014-11-04 07:03:19
@Ghost Cuz,这是新事物。 OP改变了代码。 – 2014-11-04 07:06:14
'$ query = mysqli_query($ sql1);'顺便说一句,会失败。但你知道,对吗? – 2014-11-04 07:06:41