0

サイトへのゲストが登録メンバーになることを許可するユーザー サインアップまたは登録フォームがあります。フォームは名、姓、電子メールなどで構成され、アクションは送信時に process_reg.php に移動します。

この情報は、SQL テーブル 'ptb_registrations' に挿入されます。しかし、Cookie セッションからフォームを使用して新しいユーザー ID をランダムに生成しようとしているため、まだ機能しません。私がしていることが正しいかどうかはわかりません。私が間違っているところを修正したり、正しい方向に向けたりしてください。ありがとう。

process_reg.php のスクリプトは次のとおりです。

<?php
require_once("session.php"); 
require_once("functions.php");
require('_config/connection.php');
?>
<?php 

session_start();

include '_config/connection.php'; 


function get_user_id() {
    global $connection;
    global $email;
    $query = "SELECT *
                FROM ptb_registrations
                WHERE email = \"$email\"
                ";
        $user_id_set = mysql_query($query, $connection);
        confirm_query($user_id_set);
        return $user_id_set;
        }
?>
<?php
$user_id_set = get_user_id();
while ($user_id = mysql_fetch_array($user_id_set)) {
    $cookie1 = "{$user_id["id"]}";
    setcookie("ptb_registrations", $cookie1, time()+3600);  /* expire in 1 hour */

}
?>
<?

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$email = $_POST['email'];
$display_name = $_POST['display_name'];
$date_of_birth = $_POST['date_of_birth'];
$contact_number = $_POST['contact_number'];
$station = $_POST['station'];
$hobbies = $_POST['hobbies'];
$gender = $_POST['gender'];
$password = $_POST['password'];








$result = mysql_query("SELECT first_name FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT last_name FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT display_name FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT email FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT contact_number FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT date_of_birth FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT hobbies FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT station FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT gender FROM ptb_registrations WHERE id=".$cookie1['user_id']."");
$result = mysql_query("SELECT password FROM ptb_registrations WHERE id=".$cookie1['user_id']."");






if(!$result) 
{ 
echo "The username you entered does not exist"; 
} 
else 
if($email!= mysql_result($result, 0)) 
{ 
echo ""; 


    $sql=mysql_query("INSERT ptb_registrations SET first_name='$first_name' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET last_name='$last_name' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET display_name='$display_name' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET email='$email' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET contact_number='$contact_number' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET date_of_birth='$date_of_birth' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET hobbies='$hobbies' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET station='$station' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET gender='$gender' WHERE id=".$cookie1['user_id'].""); 
    $sql=mysql_query("INSERT ptb_registrations SET password='$password' WHERE id=".$cookie1['user_id'].""); 


}
    if($sql) 
    { 
    echo "<div class=\"infobox-profile\"> <strong>Thank You</strong> - We have received your registration details.</div>"; 
    }
else
{ 
echo "<div class=\"infobox-profile\"> <strong>Oooops!</strong> - Something went wrong. <a href=\"../edit_contact_number.php\">Click here</a> to try again.</div>"; 
}  
?>
<? ob_flush(); ?>

<style>
.infobox-profile {
    background-color: #e1e0f7;
    font-family: Arial, Helvetica, sans-serif;
    font-size: 14px;
    color: #181469;
    padding-top: 20px;
    padding-right: 10px;
    padding-bottom: 20px;
    padding-left: 70px;
    margin-bottom: 20px;
    background-image: url(../img/icons/info-icon.png);
    background-repeat: no-repeat;
    background-position: 15px center;
    border-top-width: 1px;
    border-top-style: solid;
    border-top-color: #8f8fdb;
    border-right-width: 1px;
    border-bottom-width: 1px;
    border-left-width: 1px;
    border-right-style: solid;
    border-bottom-style: solid;
    border-left-style: solid;
    border-right-color: #8f8fdb;
    border-bottom-color: #8f8fdb;
    border-left-color: #8f8fdb;
    border-radius: 4px;
    width: 385px;
    margin-left:8px;
}
</style>
4

1 に答える 1

1

ランダムに生成された数字は常に完全にランダムであるとは限らず、しばらくすると常に同じ数字が再び得られます。これは、これらの数値が PSEUDO 乱数ジェネレーターによって生成されるためです。mysql データベースを使用しているため、問題の最善の解決策は自動インクリメント属性を使用することです。新しいユーザーがデータベースに追加されるたびに、このフィールドは 1 ずつ増加します。

次に例を示します。

CREATE TABLE animals (
     id MEDIUMINT NOT NULL AUTO_INCREMENT,
     name CHAR(30) NOT NULL,
     PRIMARY KEY (id)
) ENGINE=MyISAM;
于 2012-11-06T21:58:32.797 に答える