php
  • session
  • 2017-06-27 7 views 0 likes 
    0

    私はログインとセッションの作成にこのクエリを使用しました。コアphpのログイン用セッションを作成するには?

    $username = $_REQUEST['user']; 
    $password = $_REQUEST['pass'];   
    $member = mysqli_query($conn,"SELECT * FROM `user` WHERE `email` = '".$username."' AND `password` = '".$password."' "); 
    $member1 = mysqli_fetch_assoc($member); 
    if ($member1>0) 
        {    
         $_SESSION['username']=$member1['fullName']; 
         $_SESSION['companyid']=$member1['comapanyId']; 
         header('Location: home.php'); 
        } 
    else 
        { 
         header('Location: index.php'); 
    
        } 
    

    私はセッションを作成することができる午前私はこのページに $_session['companyid'];die;をエコー場合、それはID 完璧にすることを印刷することを意味します。

    ここではhome.phpにジャンプしてこのセッションを使用しています。私はこのページの上に session_start()と書いています。 未定義のインデックス:

    私はエラー通知が得る私 print_r($_SESSION['companyid'])場合は今

    、私はこのようなISSET機能を使用し、この問題のために

    を企業ID、

    if (isset($_SESSION['companyid'])) { 
         echo $_SESSION['companyid']; 
        } 
    

    しかし、私は再び失敗していますhome.phpに$_SESSIONを印刷するにはどうすればいいのですか。 私は間違っています。私はエコー場合、私はセッションを作成することができています

    +4

    あなたのコードは[** SQLインジェクション**](https://en.wikipedia.org/wiki/SQL_injection)攻撃に対して脆弱です。あなたは[** mysqli **](https://secure.php.net/manual/en/mysqli.prepare.php)または[** PDO **](https ://secure.php.net/manual/en/pdo.prepared-statements.php)ドライバ。 [**この記事**](https://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php)には、いくつかの良い例があります。 –

    +4

    **プレーンテキストのパスワードを保存しないでください**。代わりに['password_hash()'](http://us3.php.net/manual/en/function.password-hash.php)と['password_verify()'](http://us3.php.net /manual/en/function.password-verify.php)。 5.5より前のバージョンのPHPを使用している場合は、MD5またはSHA1を使用せず**パスワードをハッシュします。代わりに、[この互換性パック](https://github.com/ircmaxell/password_compat)を使用することができます。 –

    +2

    セッションを使ってすべてのページの先頭に 'session_start();'を置く必要があります。 –

    答えて

    0

    は意味 $ _SESSION [ '企業ID'];死にます;このページではそのID を完全に印刷します。

    アレイ$ _SESSION起因大文字と小文字の区別にスーパーグローバル配列$ _SESSIONとは異なります。さらに、この配列にアクセスする各PHPページの最上部にsession_start()が必要です。

    $ _Sessionを$ _SESSIONに変更すると、PHPは同じ配列を呼び出していることを知ります。

    +0

    オタクは申し訳ありません。私は$ _SESSIONだけを使用しています。各ページでsession_start()を使用します。セッションで値が得られない –

    +0

    これは問題ありません。訂正していただきありがとうございます。言語に応じて、タイプミスはコーディング時に異なることを意味する可能性があるので、注意する必要があります。 – hRdCoder

    関連する問題