在PHP中显示错误消息的更好方法是什么?
问题描述:
我创建了三个php表单。第一个(form.php)包含表单标签,第二个(form1.php) 是信息所在的位置。最后一个(formerror.php),我创建时,我找不到 的方式在第一页(form.php)上显示一条错误消息。我想知道的是,这样做是否合适? - 创建与第一个完全相同的页面以显示错误消息。在PHP中显示错误消息的更好方法是什么?
这是第一页。
这是最后一页,我必须准确地在第一页,以显示错误消息复制。
第一页有从我进入信息,并在第二页是form1.php
CODE FROM THE FIRST PAGE(form.php):
<!DOCTYPE html>
<html>
<head>
<title>Form</title>
<style type="text/css">
input {
display: block;
margin: 10px;
padding: 10px;
}
form {
border: 0px solid rgba(0,0,0,0.5);
width: 19%;
padding: 20px;
background-color: rgba(5,25,9,0.2);
}
</style>
</head>
<body>
//This is the form from form.php
<form action="form1.php" method="post">
<input type="text" name="username" placeholder="Enter username">
<input type="email" name="email" placeholder="Enter email address">
<input type="password" name="password" placeholder="Enter password">
<input type="password" name="cpassword" placeholder="Enter password again">
<input type="submit" name="submit_btn" value="Submit">
<input type="reset">
</form>
<p style="color: red;" class="erreur"></p>
</body>
</html>
//This is the second page
一旦从form.php的,这里的到来,进入信息显示得到,因为我们给他们一种形式已经给出了用户名和电子邮件地址 代码的第二页(form1.php):
<!DOCTYPE html>
<html>
<head>
<title>FORM 1</title>
</head>
<body>
<?php
$username = $_POST['username'];
$email = $_POST['email'];
$submit_btn = $_POST['submit_btn'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
if (isset($_POST['submit_btn'])) {
if ((empty($_POST['username'])) || (empty($_POST['email'])) || (empty($_POST['password'])) || (empty($_POST['cpassword']))) {
// header("Location:form.php");
header("Location:formerror.php");
}else{
echo "Welcome $username, your email address is $email";
}
}
?>
</body>
</html>
,这是我为了显示错误创建页面。我所做的是,我复制了与form.php完全相同的页面,但是在底部,我添加了一条消息,如图所示。
AND CODE FROM THE THIRD PAGE(formerror.php):
<!DOCTYPE html>
<html>
<head>
<title>Form</title>
<style type="text/css">
input {
display: block;
margin: 10px;
padding: 10px;
}
form {
border: 0px solid rgba(0,0,0,0.5);
width: 19%;
padding: 20px;
background-color: rgba(5,25,9,0.2);
}
</style>
</head>
<body>
<form action="form1.php" method="post">
<input type="text" name="username" placeholder="Enter username">
<input type="email" name="email" placeholder="Enter email address">
<input type="password" name="password" placeholder="Enter password">
<input type="password" name="cpassword" placeholder="Enter password again">
<input type="submit" name="submit_btn" value="Submit">
<input type="reset">
</form>
<p style="color: red;">Please fill the form</p>
</body>
</html>
正如你所看到的,页面在那里。而且我也想知道我的代码是否做得很好,虽然他们完美地工作。
答
试试这个。放在你的php文件上面。
$server = "localhost";
$username= "root";
$pass = "";
$dbname ="";
$conn = new mysqli($server, $username, $pass, $dbname);
if($conn -> connect_error){
echo "Connection Failed!, " . $conn -> connect_error;
}
答
您可以通过仅使用一个文件来解决问题。将您的表单数据发送到同一页面。 像这样在你的文件开始之前添加你的PHP脚本。
<?php
$error = '';
if (isset($_POST['submit_btn']))
{
$server = "localhost";
$username= ""; // your username
$pass = ""; // your password
$dbname =""; // your database name
$conn = new mysqli($server, $username, $pass, $dbname);
if($conn -> connect_error){
echo "Connection Failed!, " . $conn -> connect_error;
if(checkValidation())
// insert the data into the database and redirect to a new page.
}
function checkValidation()
{
$username = $_POST['username'];
$email = $_POST['email'];
$password = $_POST['password'];
$cpassword = $_POST['cpassword'];
if(empty($username))
{
$error = "Username field can't be empty";
return false;
}
if(empty($email))
{
$error = "Email field can't be empty";
return false;
}
if(empty($password))
{
$error = "Password can't be empty";
return false;
}
if(empty($cpassword) || ($password != $cpassword))
{
$error = "Passwords don't match";
return false;
}
return true;
}
?>
然后添加您的html代码。
<html>
<head>
<title>Form</title>
<style type="text/css">
input {
display: block;
margin: 10px;
padding: 10px;
}
form {
border: 0px solid rgba(0,0,0,0.5);
width: 19%;
padding: 20px;
background-color: rgba(5,25,9,0.2);
}
</style>
</head>
<body>
<?php>
if(!empty($error))
{
echo "<p style='color: red;'></p>";
}
?>
<form action="" method="post">
<input type="text" name="username" placeholder="Enter username">
<input type="email" name="email" placeholder="Enter email address">
<input type="password" name="password" placeholder="Enter password">
<input type="password" name="cpassword" placeholder="Enter password again">
<input type="submit" name="submit_btn" value="Submit">
<input type="reset">
</form>
</body>
</html>