为什么我的错误消息没有出现? [英] Why my error message isn't appearing?
本文介绍了为什么我的错误消息没有出现?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在这段代码中,我正在验证注册表,如果所有要求都已完成数据已成功插入数据库并且我被重定向到登录页面,但是用户虽然页面刷新但未显示错误但未显示任何错误表单只显示一个空白页面。这段代码有什么问题
In this code I am validating registration form, if all requirements are fullfilled data is successfully inserted into database and I am redirected to login page,but it user fails to comply with requirements though page refreshes but no error is shown neither the registration form appears just a blank white page. Whats wrong in this code
<?php
error_reporting('E_ALL ^ E_NOTICE');
if(isset($_POST['reg'])){
$fn = ucfirst($_POST['fname']);
$ln = ucfirst($_POST['lname']);
$un = $_POST['username'];
$em = $_POST['email'];
$pswd = $_POST['password'];
$pswd2 = $_POST['password2'];
$s=$db->prepare("SELECT email FROM userss WHERE username=:username");
$s->execute(array(':username'=>$un));
$q=$db->prepare("SELECT username FROM userss WHERE username=:username");
$q->execute(array(':username'=>$un));
if( $fn == "" ) {
$er='Enter your First name';
}
elseif( $ln == "" ) {
$er='Enter your Last name';
}
elseif( $un == "" ) {
$er='Enter your username';
}
elseif( $pswd == "" ) {
$er='Enter your password';
}
elseif( strlen($pswd) < 6 ) {
$er='Password must be more than 6 characters';
}
elseif( $pswd != $pswd2 ) {
$er='Password and confirm password does not match!';
}
elseif( $em != "" && !preg_match( "/^([a-zA-Z0-9])+([a-zA-Z0-9\._-])*@([a-zA-Z0-9_-])+([a-zA-Z0-9\._-]+)+$/", $_POST["email"] ) ) {
$er='Enter valid email';
}
elseif($q->rowCount() > 0) {
$er = 'The username '.$un.' is already taken!';
}
elseif($s->rowCount() > 0) {
$er='The email '.$em.' is already registered, choose another!';
}
else{
$pswd = password_hash($pswd, PASSWORD_DEFAULT);
$stmt = $db->prepare("INSERT INTO users (username,first_name,last_name,email,password) VALUES (:username,:first_name,:last_name,:email,:password)");
$stmt->execute( array(':username'=>$un,':first_name'=>$fn,':last_name'=>$ln,':email'=>$em,':password'=>$pswd));
}
if ($stmt->rowCount() == 1) {
header("Location:login.php");
}
else {
echo "error";
}
}
?>
<form action="register.php" method="POST">
<fieldset>
<input type="text" style="margin-top:5px;" name="fname" id="fn" required="required" maxlength="15" placeholder="First Name"/><br />
<input type="text" name="lname" id="ln" required="required" maxlength="15" placeholder="Last Name"/><br />
<input type="text" name="username" id="un" required="required" maxlength="15" placeholder="Username" class="username" /><br />
<input type="email" name="email" id="em" required="required" maxlength="35" placeholder="Email"/> <br />
<input type="password" name="password" id="pswd" required="required" maxlength="15" placeholder="Password"/><br />
<input type="password" name="password2" id="pswd2" required="required" maxlength="15" placeholder="Confirm Password"/><br />
<input type="submit" id="submit" name="reg" value="Create an Account">
<div id="er"><?php echo $er; ?></div>
</fieldset>
</form>
推荐答案
_POST [' reg'])){
_POST['reg'])){
fn = ucfirst(
fn = ucfirst(
_POST [' FNAME'跨度>]);
_POST['fname']);
这篇关于为什么我的错误消息没有出现?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文