1

ユーザー名が存在する場合、登録フォームを .txt ファイルに書き込む際に問題が発生しています。現時点では、ユーザー名が user.txt に存在する場合はファイルに書き出して false を出力し、存在しない場合は続行して user.txt ファイルに書き出したくありません。

<?php
    if($_POST['submit'])
    {
            $usernameexist =  $_POST['usernameexist'];
            $username = $_POST['username'];
            $password = $_POST['password'];
            $firstname = $_POST['firstname'];
            $lastname = $_POST['lastname'];
            $dob = $_POST['dob'];
            $gender = $_POST['gender'];
            $email = $_POST['email'];
            $address = $_POST['address'];
            $membership = $_POST['membership'];
            $creditcard = $_POST['creditcard'];
            $cardexpiry = $_POST['cardexpiry'];
            $duration = $_POST['duration'];
            $name = "/^[A-Za-z]+$/";
            $emailaddress = "/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/";



            $male_status = 'unchecked';
            $female_status = 'unchecked';

            // Server side form validation using php.
            // Validate username field if empty or not.
            if (empty($username)){
                    $err_username = 'Please enter your username.';
            }else{  

                    // Load file and check if username exist
                    $filename = 'user.txt';
                    if (file_exists($filename)){
                        $fp = fopen ('user.txt', 'r'); 
                        while ($line = fgetcsv($fp,100,",")) { 
                            if ( ($line[0] == $_POST['username']) ) { 
                                $usernameexist = "Username Exist!";
                                $err_usernameexist = $usernameexist;
                            } 
                        }
                        fclose ($fp);
                    }
                    else{
                        echo '<p> File does not exist! </p>';
                    }
                    //$val_username = $username;

            }

            // Validate password field if empty or not.
            if (empty($password)){
                $err_password = 'Please enter your password.';
            }else{
                $val_password = $password;
            }

            // First Name
            if (empty($firstname)){
                $err_firstname = 'Please enter your first name.';
            }else{
                $val_firstname = $firstname;
            }

            // Last Name
            if (empty($lastname)){
                $err_lastname = 'Please enter a valid last name.';
            }else{
                $val_lastname = $lastname;
            }

            // Gender
            if (isset($_POST['submit'])){
                $selected_radio = $_POST['gender'];
                if($selected_radio == 'Male') {
                    $male_status = 'checked';
                }else if ($selected_radio == 'Female'){
                    $female_status = 'checked';
                }
            }

            // Email Address
            if (!preg_match($emailaddress, $email)){
                $err_email = 'Please enter a valid email address.';
            }else{
                $val_email = $email;
            }

            if ($_POST['membership'] != 0){
                $err_membership = 'Nothing selected!';
            }else{
                $val_membership = $membership;
                }

            // Credit Card
            if (empty($creditcard)){
                $err_creditcard = 'Field is empty, please try again.';
            }else{
                $val_creditcard = $creditcard;
            }

            // Card Expiry
            if (empty($cardexpiry)){
                $err_cardexpiry = 'Field is empty, please try again.';
            }else{
                $val_cardexpiry = $cardexpiry;
            }

            // Duration
            if (empty($duration)){
                $err_duration = 'Field is empty, please try again.';
            }else{
                $val_duration = $duration;
            }

            if (!empty($username) && !empty($password) && !empty($firstname) 
                                && !empty($lastname) && preg_match($emailaddress, $email)
                                && ($_GET['membership'] != '0') && !empty($creditcard) && !empty($cardexpiry)
                                && !empty($duration)){
                $fp = fopen ('user.txt', 'r+'); 
                while ($line = fgetcsv($fp,100,",")){
                    if($line[0] == $_POST['username']){
                        $usernameexist = "Username Exist!";
                        $err_usernameexist = $usernameexist;
                        echo 'Username EXIST AND WRONG';
                    }
                    else{
                        $output_string = $username. ", "
                        .$password. ", "
                        .$firstname. ", "
                        .$lastname .", "
                        .$dob .", "
                        .$gender .", "
                        .$email .", "
                        .$address .", "
                        .$membership .", "
                        .$creditcard .", "
                        .$cardexpiry .", "
                        .$duration ."\n";

                        $fp = fopen ('user.txt', 'a');
                        fwrite ($fp, $output_string);
                        echo "<p> Your Registration was successful! </p>";
                    }
            }fclose($fp);
            }
            else{
                        echo 'Please re-check your field as field marked with "*" is required';
            }

    }

    ?>

どんな助けでも大歓迎です。私が少し新しいので、混乱しすぎていると思われる場合は、私の質問を許してください。

ありがとう。

4

1 に答える 1