-5

情報を保存するとき。私は元気に働いています。エラーはなく、データベースは保存されます。しかし、最初の名前のように既に存在するデータベースに何かを入力すると(一意性が機能するかどうかを確認するため)。次の通知が表示され、「ユーザー名が使用されました」というメッセージがエコーされます。. 多くの変更を加えましたが、結果はありません。

<?php

require_once('includes/database.php');
require_once('includes/user.php');
require_once('includes/functions.php');
require_once('includes/session.php');

?>

<?php

if(isset($_POST['submit'])){ //Form submitted


 $username  = $database->escape_value($_POST['vnumber']);
$firstname = $database->escape_value($_POST['fname']);
$lastname  = $database->escape_value($_POST['lname']);
$email     = $database->escape_value($_POST['email']);
$password  = $database->escape_value($_POST['password']);
$password  = md5($password);

//フィールドが空でないことを確認します

if (empty($username)){

echo "Please fill in username";

} else if (empty($firstname)){

echo "Cannot be blank";   

} else if(empty($lastname)){

echo "Cannot be blank";    

} else if(empty($email)){

echo "Cannot be blank";

} else if (empty($password)){

echo "Cannot be blank";

} else {

// ユーザー名の一意性をチェック

$query = mysql_query("SELECT * FROM user_info WHERE fname='$firstname'");

$rows = mysql_num_rows($query);

if ($rows == 1){

echo "Username taken !";    

} else {

// 行 = 0 の場合。フィールドは空ではありません。データを保存できます。

 $result ="";

 global $database;

 $sql    = "INSERT INTO user_info (vnumber, fname, lname, email, password) VALUES 

   ('$username', '$firstname', '$lastname', '$email', '$password')";

 $result = $database->query($sql);
}
if($result){
       die( "Regisgtration success !");
} else {

       die("Something went wrong !");
}
}

}
?>
4

2 に答える 2

0

$result が前に定義されていないため (上記の if ステートメントはこれにはカウントされません)、この通知が表示されるのはそのためです。

スクリプトの上で、初期化します

$result = FALSE;

そしてすべてが順調です。

于 2013-09-02T11:47:26.903 に答える
0

$result確かに設定され$rows == 1ていません。そのため、以前に変数を作成したり、ブロックに設定したりif ($result)しないため、失敗します。$resultif

インターネット上には、PhP エラーの処理方法、エラーが発生する場所、解決方法などを学習するためのガイドが多数あります。チェックしてみてください。これが最後になることはありません。

于 2013-09-02T11:47:40.597 に答える