Php 试图为我的表单设置唯一的条目
所以我搜索了这个问题并找到了类似的问题,但我不确定如何将他们的解决方案转换成我的解决方案——主要是因为我是PHP的noob。我正在努力。请容忍我。我感谢你的帮助 现在,我正在尝试这样做,以便我的表单不允许phpmysql中的电子邮件列出现重复条目。到目前为止,我进入了结构选项卡,并使其独特。差不多是中提琴。但是,我希望在提交表单时,错误消息显示在同一页面上,而不是重新加载表单并给出消息。另外,我想自定义消息。由于这是一个与phpmysql相关的错误,我不确定我是否会使用PHP编码,或者在其中的某个地方这样做 谢谢各位。我感谢你的帮助Php 试图为我的表单设置唯一的条目,php,Php,所以我搜索了这个问题并找到了类似的问题,但我不确定如何将他们的解决方案转换成我的解决方案——主要是因为我是PHP的noob。我正在努力。请容忍我。我感谢你的帮助 现在,我正在尝试这样做,以便我的表单不允许phpmysql中的电子邮件列出现重复条目。到目前为止,我进入了结构选项卡,并使其独特。差不多是中提琴。但是,我希望在提交表单时,错误消息显示在同一页面上,而不是重新加载表单并给出消息。另外,我想自定义消息。由于这是一个与phpmysql相关的错误,我不确定我是否会使用PHP编码,或者在其中的某
<?php
function checkField($v){
return (isset($v) && $v === false) ? true: false;
}
function startMysql(){
$con=mysqli_connect("localhost", "shiftedr_admin", "passwerd", "shiftedr_whosthedeeusers");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
return null;
}
return $con;
}
// function closeMySql($connection){
// mysqli_close($connection);
// }
function formcheck(){
$con=mysqli_connect("localhost", "shiftedr_admin", "shithead1", "shiftedr_whosthedeeusers");
// Check connection
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
} else {
if (isset($_POST['submitted'])){
$form = null;
if (empty($_POST['fullname'])){
$form['fullnameflag'] = false;
}
if (empty($_POST['email'])){
$form['emailflag'] = false;
}
if (empty($_POST['password'])){
$form['passwordflag'] = false;
}
if (empty($_POST['pwc'])){
$form['pwcflag'] = false;
}
if (empty($_POST['userbday'])){
$form['userbday'] = false;
}
if (empty($_POST['gender'])){
$form['genderflag'] = false;
}
if ($_POST['password'] != $_POST['pwc']){
$form['fixpasswordconfirm'] = false;
}
/*$query = mysql_query ("SELECT * FROM users2 WHERE email = '". Email'" ."'");
if (mysql_num_rows($query) > 0)
{
echo 'Email Address is Already In Use.';
}*/
if (empty($form)) { // all fields correct at this point, do database stuff
$sql="INSERT INTO Users2 (fullname, Email, Password, userbday, Gender) VALUES ('".$_POST['fullname']."','".$_POST['email']."','".$_POST['password']."','".$_POST['userbday']."','".$_POST['gender']."')";
if (!mysqli_query($con,$sql)){
die('Error: ' . mysqli_error($con));
}
echo "1 record added";
}
}
mysqli_close($con);
return $form;
}
}
//// / include("myfunctions.php");
?>
我猜您有两个页面-myform.php和process.php或类似的页面,所以请尝试这样做
<?php
$error = null;
if( isset( $_POST['submitted'] ) ) // Same as your check is submitting if
{
// Below is an example fail
if( empty( $_POST['fullname'] ) ) $error = 1;
// So for the email address failing you would put
if( mysql_num_rows($query) > 0 ) $error = 2;
if(! $error )
{
// all good no errors here so do database stuff....
}
else
{
header("Location: form.php?error=$error"); // return the error code to previous page
}
}
?>
其中一个可能是空字段,或者可能是全名为空,两个是电子邮件地址或类似的内容,并且在myform.php页面上有
<?php
if( isset( $_GET['error'] ) )
{
switch ( $_GET['error'] )
{
case 1 : echo "One of the fields is empty"; break;
case 2 : echo "Your email address has already been used"; break;
default : echo "Unknown error occured";
}
}
?>
“我希望错误消息显示在同一页上…”-您需要使用Ajax。看起来我正在深入兔子洞…是的!当您开始希望在同一页面上显示内容时,PHP本身无法完成全部工作。