ドロップダウンメニューで選択した内容に基づいてユーザーをリダイレクトしようとしていますが、データベースへのオプションの挿入に問題があり、リダイレクトされません

robert.b

私はこの1週間これを解決しようとしてきましたが、運がありません。私がやりたいのは、ユーザーがドロップダウンメニューから選択した役割に基づいており、ユーザーはサイトの別のビューにリダイレクトされます。現在、サイトはユーザーに基づいてリダイレクトされていません。これは、register_handler.phpの65〜78行目のコードで処理され、ユーザーが選択した国もphpmyadminに保存されていないと思いました。考えられるすべての変数を追加/削除または変更しました(register_handlerの156行目を含み、下の図を含めました)が、それを機能させるために理解できません。私が犯しているエラーは変数と関係がある可能性が高いことを私は知っていますが、それを行う方法を知っています。また、私が追加しようとしているコードは、このガイドからのものです(http://form.guide/php-form/php-form-select.html/comment-page-1#comments)。よろしくお願いします!関連する両方のページのコードが含まれています。
散らかった、初めての投稿ならごめんなさい...

ユーザーテーブル



formCountryという名前のテーブルの新しい列の登録画面register_handler.php(追加: ``、)。
国選択フォーム

register.phpに追加したコード

<?php  
require 'config/config.php';
require 'includes/form_handlers/register_handler.php';
require 'includes/form_handlers/login_handler.php';
?>


<html>
<head>
    <title>Welcome to Countries!</title>
    <link rel="stylesheet" type="text/css" href="assets/css/register_style.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
    <script src="assets/js/register.js"></script>
</head>
<body>

    <?php  

    if(isset($_POST['register_button'])) {
        echo '
        <script>

        $(document).ready(function() {
            $("#first").hide();
            $("#second").show();
        });

        </script>

        ';
    }


    ?>

    <div class="wrapper">

        <div class="login_box">

            <div class="login_header">
                <h1>Countries!</h1>
                Login or sign up below!
            </div>
            <br>
            <div id="first">

                <form action="register.php" method="POST">
                    <input type="email" name="log_email" placeholder="Email Address" value="<?php 
                    if(isset($_SESSION['log_email'])) {
                        echo $_SESSION['log_email'];
                    } 
                    ?>" required>
                    <br>
                    <input type="password" name="log_password" placeholder="Password">
                    <br>
                    <?php if(in_array("Email or password was incorrect<br>", $error_array)) echo  "Email or password was incorrect<br>"; ?>
                    <input type="submit" name="login_button" value="Login">
                    <br>
                    <a href="#" id="signup" class="signup">Need an account? Register here!</a>
                </form>
            </div>
            <div id="second">
                <form action="register.php" method="POST">
                    <label for='formCountry'>Select your country of residence</label><br>
                    <select>
                        <option value="">Select a country</option>
                        <option value="US">United States</option>
                        <option value="UK">United Kingdom</option>
                        <option value="France">France</option>
                        <option value="Mexico">Mexico</option>
                        <option value="Russia">Russia</option>
                        <option value="Japan">Japan</option>
                    </select><br>
                    <input type="text" name="reg_fname" placeholder="First Name" value="<?php 
                    if(isset($_SESSION['reg_fname'])) {
                        echo $_SESSION['reg_fname'];
                    } 
                    ?>" required>
                    <br>
                    <?php if(in_array("Your first name must be between 2 and 25 characters<br>", $error_array)) echo "Your first name must be between 2 and 25 characters<br>"; ?>




                    <input type="text" name="reg_lname" placeholder="Last Name" value="<?php 
                    if(isset($_SESSION['reg_lname'])) {
                        echo $_SESSION['reg_lname'];
                    } 
                    ?>" required>
                    <br>
                    <?php if(in_array("Your last name must be between 2 and 25 characters<br>", $error_array)) echo "Your last name must be between 2 and 25 characters<br>"; ?>

                    <input type="email" name="reg_email" placeholder="Email" value="<?php 
                    if(isset($_SESSION['reg_email'])) {
                        echo $_SESSION['reg_email'];
                    } 
                    ?>" required>
                    <br>

                    <input type="email" name="reg_email2" placeholder="Confirm Email" value="<?php 
                    if(isset($_SESSION['reg_email2'])) {
                        echo $_SESSION['reg_email2'];
                    } 
                    ?>" required>
                    <br>
                    <?php if(in_array("Email already in use<br>", $error_array)) echo "Email already in use<br>"; 
                    else if(in_array("Invalid email format<br>", $error_array)) echo "Invalid email format<br>";
                    else if(in_array("Emails don't match<br>", $error_array)) echo "Emails don't match<br>"; ?>


                    <input type="password" name="reg_password" placeholder="Password" required>
                    <br>
                    <input type="password" name="reg_password2" placeholder="Confirm Password" required>
                    <br>
                    <?php if(in_array("Your passwords do not match<br>", $error_array)) echo "Your passwords do not match<br>"; 
                    else if(in_array("Your password can only contain english characters or numbers<br>", $error_array)) echo "Your password can only contain english characters or numbers<br>";
                    else if(in_array("Your password must be betwen 5 and 30 characters<br>", $error_array)) echo "Your password must be betwen 5 and 30 characters<br>"; ?>


                    <input type="submit" name="register_button" value="Register">
                    <br>

                    <?php if(in_array("<span style='color: #14C800;'>You're all set! Go ahead and login!</span><br>", $error_array)) echo "<span style='color: #14C800;'>You're all set! Go ahead and login!</span><br>"; ?>
                    <a href="#" id="signin" class="signin">Already have an account? Sign in here!</a>
                </form>
            </div>

        </div>

    </div>


</body>
</html>


register_handler.phpに追加したコード

    <?php
//Declaring variables to prevent errors
$fname = ""; //First name
$lname = ""; //Last name
$em = ""; //email
$em2 = ""; //email 2
$password = ""; //password
$password2 = ""; //password 2
$date = ""; //Sign up date 
$error_array = array(); //Holds error messages

if(isset($_POST['register_button'])){

    //Registration form values

    //First name
    $fname = strip_tags($_POST['reg_fname']); //Remove html tags
    $fname = str_replace(' ', '', $fname); //remove spaces
    $fname = ucfirst(strtolower($fname)); //Uppercase first letter
    $_SESSION['reg_fname'] = $fname; //Stores first name into session variable

    //Last name
    $lname = strip_tags($_POST['reg_lname']); //Remove html tags
    $lname = str_replace(' ', '', $lname); //remove spaces
    $lname = ucfirst(strtolower($lname)); //Uppercase first letter
    $_SESSION['reg_lname'] = $lname; //Stores last name into session variable

    //email
    $em = strip_tags($_POST['reg_email']); //Remove html tags
    $em = str_replace(' ', '', $em); //remove spaces
    $em = ucfirst(strtolower($em)); //Uppercase first letter
    $_SESSION['reg_email'] = $em; //Stores email into session variable

    //email 2
    $em2 = strip_tags($_POST['reg_email2']); //Remove html tags
    $em2 = str_replace(' ', '', $em2); //remove spaces
    $em2 = ucfirst(strtolower($em2)); //Uppercase first letter
    $_SESSION['reg_email2'] = $em2; //Stores email2 into session variable

    //Password
    $password = strip_tags($_POST['reg_password']); //Remove html tags
    $password2 = strip_tags($_POST['reg_password2']); //Remove html tags

    $date = date("Y-m-d"); //Current date


if(isset($_POST['formCountry']))
{
    $varCountry = $_POST['formCountry'];
    $errorMessage = "";

    if(empty($varCountry))
    {
        $errorMessage = "<li>You forgot to select a country!</li>";
    }

    if($errorMessage != "") 
    {
        echo("<p>There was an error with your form:</p>\n");
        echo("<ul>" . $errorMessage . "</ul>\n");
    }
    else 
    {

        $redir = "us.php";
        switch($varCountry)
        {
            case "US": $redir = "us.php"; break;
            case "UK": $redir = "uk.php"; break;
            case "France": $redir = "france.php"; break;
            case "Mexico": $redir = "mexico.php"; break;
            case "Russia": $redir = "russia.php"; break;
            case "Japan": $redir = "japan.php"; break;
            default: echo("Error!"); exit(); break;
        }
        echo "<script>location.href='$redir'</script>"; 

        exit();
    }
}

    if($em == $em2) {
        //Check if email is in valid format 
        if(filter_var($em, FILTER_VALIDATE_EMAIL)) {

            $em = filter_var($em, FILTER_VALIDATE_EMAIL);

            //Check if email already exists 
            $e_check = mysqli_query($con, "SELECT email FROM Users WHERE email='$em'");

            //Count the number of rows returned
            $num_rows = mysqli_num_rows($e_check);

            if($num_rows > 0) {
                array_push($error_array, "Email already in use<br>");
            }

        }
        else {
            array_push($error_array, "Invalid email format<br>");
        }


    }
    else {
        array_push($error_array, "Emails don't match<br>");
    }


    if(strlen($fname) > 25 || strlen($fname) < 2) {
        array_push($error_array, "Your first name must be between 2 and 25 characters<br>");
    }

    if(strlen($lname) > 25 || strlen($lname) < 2) {
        array_push($error_array,  "Your last name must be between 2 and 25 characters<br>");
    }

    if($password != $password2) {
        array_push($error_array,  "Your passwords do not match<br>");
    }
    else {
        if(preg_match('/[^A-Za-z0-9]/', $password)) {
            array_push($error_array, "Your password can only contain english characters or numbers<br>");
        }
    }

    if(strlen($password > 30 || strlen($password) < 5)) {
        array_push($error_array, "Your password must be betwen 5 and 30 characters<br>");
    }


    if(empty($error_array)) {
        $password = md5($password); //Encrypt password before sending to database

        //Generate username by concatenating first name and last name
        $username = strtolower($fname . "_" . $lname);
        $check_username_query = mysqli_query($con, "SELECT username FROM Users WHERE username='$username'");


        $i = 0; 
        //if username exists add number to username
        while(mysqli_num_rows($check_username_query) != 0) {
            $i++; //Add 1 to i
            $username = $username . "_" . $i;
            $check_username_query = mysqli_query($con, "SELECT username FROM Users WHERE username='$username'");
        }

        //Profile picture assignment
        $rand = rand(1, 2); //Random number between 1 and 2

        if($rand == 1)
            $profile_pic = "assets/images/profile_pics/defaults/head_deep_blue.png";
        else if($rand == 2)
            $profile_pic = "assets/images/profile_pics/defaults/head_emerald.png";


        $query = mysqli_query($con, "INSERT INTO Users VALUES ('', '', '$fname', '$lname', '$username', '$em', '$password', '$date', '$profile_pic', '0', '0', 'no', ',')");

        array_push($error_array, "<span style='color: #14C800;'>You're all set! Go ahead and login!</span><br>");

        //Clear session variables 
        $_SESSION['reg_fname'] = "";
        $_SESSION['reg_lname'] = "";
        $_SESSION['reg_email'] = "";
        $_SESSION['reg_email2'] = "";
    }
}
?>
シンクロ

あなたに<select>register.php内のタグあなたは「formCountry」に等しい属性名を追加する必要があります。

<select name="formCountry">
    <!-- Options -->
</select>

これは、サーバーで「formCountry」($_POST['formCountry']という名前のデータを探しているためです。このデータの名前をHTML(クライアント)でも定義する必要があります。そうしないと、そのフィールドが渡されないためです。名前がないため、サーバー。

名前属性の詳細については、https//www.w3schools.com/tags/att_select_name.aspをご覧ください。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

TOP 一覧

  1. 1

    STSでループプロセス「クラスパス通知の送信」のループを停止する方法

  2. 2

    PictureBoxで画像のブレンドを無効にする

  3. 3

    HTTPヘッダー 'SOAPAction'の値はサーバーによって認識されませんでした

  4. 4

    レスポンシブウェブサイトの一番下にスティッキーなナビゲーションバーを作成するのに問題がある

  5. 5

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  6. 6

    Ansibleで複数行のシェルスクリプトを実行する方法

  7. 7

    Python / SciPyのピーク検出アルゴリズム

  8. 8

    ZScalerと証明書の問題により、Dockerを使用できません

  9. 9

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  10. 10

    tf.nn_conv2dとtf.nn.depthwise_conv2dの違い

  11. 11

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  12. 12

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  13. 13

    テキストフィールドの値に基づいて UIslider を移動します

  14. 14

    amCharts 4で積み上げ棒グラフの輪郭を描く方法は?

  15. 15

    MLでのデータ前処理の背後にある直感

  16. 16

    Postmanを使用してファイル付きの(ネストされた)jsonオブジェクトを送信する

  17. 17

    「埋め込みブラウザのOAuthログイン」を有効にしてコールバックURLを指定した後でも、Facebookのコールバックエラーが発生する

  18. 18

    Officeアドインを使用してOutlookの連絡先のリストにプログラムでアクセスすることは可能ですか?

  19. 19

    モジュラーJava Webアプリケーションを作成する最良の方法は何ですか

  20. 20

    Chromeウェブアプリのウェブビューの高さの問題

  21. 21

    ezdxf pythonパッケージを使用して既存のdxfファイルを変更するにはどうすればよいですか?

ホットタグ

アーカイブ