sql >> データベース >  >> RDS >> Mysql

送信後にフィールド値を保持する

    はい、この場合、(ある種の)フラッシュセッションを実装できます:

    したがって、提出時:

    <?php
    
    session_start(); // don't forget
    require_once('../scripts/connect.php');
    
    $con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Could not connect to database server.');
    
    if(isset($_POST['submit'])) {
    
        $var_Email1 = mysqli_real_escape_string($con, $_POST['field_email1']);
        $var_Email2 = mysqli_real_escape_string($con, $_POST['field_email2']);
    
        if ($var_Email1 == $var_Email2){
    
            $sql = mysqli_query($con, "SELECT * FROM membership WHERE Email = '$var_Email1' "); 
            if(mysqli_num_rows($sql) > 0){
                // set session
                $_SESSION['email_exists'] = $var_Email1;
                header('Location: the_starting_php.php');
                exit;
            }
        }
    
        echo "not in database";
    
    }
    ?>
    

    そして、フォームページにこれも追加します:

    <?php
    session_start();
    
    // check if there is
    $email = '';
    if(isset($_SESSION['email_exists'])) {
        $email = $_SESSION['email_exists'];
        unset($_SESSION['email_exists']); // unset it
        echo "
          <script type='text/javascript'>
          alert('The email address $email already exists');
          </script>
        ";
    }
    
    ?>
    
    
    <form action="register_script2.php" method="POST" name="form_register" id="form_registerID" accept-charset="UTF-8">
    
        <aside class="field_reg_form">
              <input name="field_email1" type="text" required id="field_email1ID" value="<?php echo $email; ?>" />
              <br /><br />
              <input name="field_email2" type="text" required id="field_email2ID" value="<?php echo $email; ?>" />
              <br /><br />
              <input type="submit" value="submit" id="submit" name="submit" />
        </aside>
    
    </form>
    

    補足:プリペアドステートメントを使用することをお勧めします。

    <?php
    
    session_start(); // don't forget
    require_once('../scripts/connect.php');
    
    $con = mysqli_connect(DBHOST, DBUSER, DBPASS, DBNAME) or die('Could not connect to database server.');
    
    if(isset($_POST['submit'])) {
    
        $var_Email1 = $_POST['field_email1'];
        $var_Email2 = $_POST['field_email2'];
    
        if ($var_Email1 == $var_Email2){
    
            $sql = 'SELECT * FROM membership WHERE Email = ?'; 
            $select = $con->prepare($sql);
            $select->bind_param('s', $var_Email1);
            $select->execute();
            if($select->num_rows > 0){
                // set session
                $_SESSION['email_exists'] = $var_Email1;
                header('Location: the_starting_php.php');
                exit;
            }
        }
    
        echo "not in database";
    
    }
    ?>
    


    1. モデルの主キーとしてランダムな英数字の文字列を生成します

    2. Oracleで制約の名前を見つける方法

    3. テーブルヘッダーがphpのforループから繰り返されています

    4. 関数で複数の値を返す