0

だから私はこの問題を検索し、同様の問題を見つけましたが、主に私がPHPの初心者であるため、それらの解決策を私のものに変換する方法がわかりません。私はそれに取り組んでいます。我慢してください。助けてくれてありがとう!

現在、フォームで 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");
?>
4

1 に答える 1

0

myform.php と process.php などの 2 つのページがあると思いますので、これを試してみてください

<?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
    }
}

?>

1つは空のフィールドであるか、フルネームが空である可能性があり、2つは電子メールアドレスまたは同様のものを使用しており、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";
    }
}

?>
于 2013-09-09T20:42:09.447 に答える