2012-01-17 10 views
0

問題:私は 'user'というクラスと 'registerUser'という関数を持っています。私はページに成功した登録を送信したいが、別のページへの登録に失敗した。PHP:return文を正しく使うには

私は問題を解決できるかどうかわからないので、私はreturn文を記入していません。私はPHPに新しいと動作することができると信じていたが、私は言ったように、私は新しいとまだ学んでいます。

class User { 
    function registerUser($userName, $userPassword) { 
    // Connect to database 
    $dbLink = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass); 
    if(!$dbLink) die("Could not connect to database. " . mysql_error()); 

    // Select database 
    mysql_select_db($this->dbName); 

    // Insert data 
    $query = "insert into $this->dbUserTable values (NULL, \"$userName\", \"$userPassword\")"; 
    $result = mysql_query($query); 

    // Test to make sure query worked 
    if(!$result) { 
     return(false); 
    } 

    // Get the user ID 
    $this->userID = mysql_insert_id(); 

    // Close database connection 
    mysql_close($dbLink); 

    // Assign the values to the data members 
    $this->userName = $userName; 
    $this->userPassword = $userPassword; 
    return(true); 
} // End registerUser() 
} 

このクラスを呼び出す私のPHPコードは簡単です。

<? 
// processRegister.php 
////////////////////// 

// First include the class definition 
include('UserClass.php'); 

// Next, create an instance of the class 
$newUser = new User; 

// Call the registerUser() method, passing in the required variables 
if ($newUser->registerUser($userName, $userPassword)) { 
    header('Location: www.google.com'); 
} 
else { 
    header('Location: www.yahoo.com.com'); 
} 
?> 

ご迷惑をおかけして申し訳ありません。

if ($newUser->registerUser($userName, $userPassword)) { 
    $newUser->displayUserInfo(); 
} else { 
    echo "Errors, ahoy!" 
} 

があなたのdie()文を取り除くだけreturn falseを追加(またはechodieを交換して、デバッグメッセージをしたい場合は、return falseを追加):

+1

デッドからの復帰はありません! –

答えて

0

私はそうのようにそれを行うだろう。

非常にの末尾に、return trueを追加します。

+0

新しいコードで質問を更新しましたが、動作していません。何か間違いはありますか?私は何も見ません: – user1082764

+0

どうしたらうまくいかないのですか?エラー? – Blender

+0

私の404ページに私を送ります – user1082764

0

PHP関数mysql_insert_id()を使って最後に挿入したユーザーIDを返すべきだと思います。これに基づいて、登録プロセスが成功したかどうかを識別できます。

class User { 
function registerUser($userName, $userPassword) { 
     // Connect to database 
     $dbLink = mysql_connect($this->dbHost, $this->dbUser, $this->dbPass); 
     if(!$dbLink) die("Could not connect to database. " . mysql_error()); 

     // Select database 
     mysql_select_db($this->dbName); 

     // Insert data 
     // Notice the "$userName" and "$userPassword" - these are the ones 
     // passed in from your main script, not the class/object variables! 
     $query = "insert into $this->dbUserTable values (NULL, \"$userName\", \"$userPassword\")"; 
     $result = mysql_query($query); 

     return mysql_insert_id(); 

} 

processRegister.php

<? 
// processRegister.php 
////////////////////// 

// First include the class definition 
include('UserClass.php'); 

// Next, create an instance of the class 
$newUser = new User; 

// Call the registerUser() method, passing in the required variables 
$user_id = $newUser->registerUser($userName, $userPassword); 

if(intval($user_id) && $user_id>0){ 
    //redirect to success page 
}else{ 
    //redirect to error page 
} 

?>