0

phpscript のこの部分の何が問題なのかわかりません。ログインは成功しましたが、正しいアカウントからデータを取得できません。スクリプトのこの部分に何か問題があるかどうか、誰でも確認できますか?

            $_SESSION['ingelogd'] = true;
            $_SESSION['profiel'] = $rij['Type'];
            $_SESSION['gebruikerID'] = $rij ['Account_nr']; 
            // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ...
            if(strcmp($rij['Type'],"bedrijf")==0){
                $query2 = "SELECT * FROM account_bedrijf WHERE Account_nr = '" . $_SESSION['gebruikerID'] . "limit 1' ";
                $result2 = mysql_query( $query2 ) or trigger_error( mysql_error() );
                if( mysql_num_rows( $result2 ) == 0 ) {
                    session_unset();
                    echo 'Ongeldige gebruikersnaam en/of wachtwoord';
                } else {
                    $_SESSION['company'] = $result->Bedrijf_nr;
                    header( 'Location: company_profile.php' ) ;
4

2 に答える 2

2
SELECT * FROM account_bedrijf WHERE Account_nr = '" . $_SESSION['gebruikerID'] . "limit 1' ";

次の SQL ステートメントが生成されます (gebruikerID が 5 の場合)。

SELECT * FROM account_bedrijf WHERE Account_nr = '5limit 1'

スペースを挿入するのを忘れ、ID を一重引用符で囲みませんでした。より正しいのは次のとおりです。

SELECT * FROM account_bedrijf WHERE Account_nr = '" . $_SESSION['gebruikerID'] . "' limit 1";

これにより、より正確な

SELECT * FROM account_bedrijf WHERE Account_nr = '5' limit 1
于 2012-07-26T14:11:05.970 に答える
0

コードを書き直します。少し mysql_error を入れたので、mysql エラーが発生したかどうかを確認できます。

   <?php
    $_SESSION['ingelogd'] = true;
    $_SESSION['profiel'] = $rij['Type'];
    $_SESSION['gebruikerID'] = $rij['Account_nr'];
    // Gebruiker succesvol ingelogd, gegevens opslaan in sessie enzo ...
    if (strcmp($rij['Type'], "bedrijf") == 0)
    {
        // Define variables
        $session_var = $_SESSION['gebruikerID'];
        $query2 = "SELECT * FROM account_bedrijf WHERE Account_nr='$session_var' LIMIT 1";
        // Do the query // use mysql error for debugging
        $result2 = mysql_query($query2) or die(mysql_error());
        if (mysql_num_rows($result2) == 0)
        {
            session_unset();
            echo 'Ongeldige gebruikersnaam en/of wachtwoord';

        } else
        {
            $_SESSION['company'] = $result->Bedrijf_nr;
            header('Location: company_profile.php');
        }
    }
    ?>
于 2012-07-26T14:17:18.060 に答える