2017-06-23 8 views
0

私はPHPがとても新しいです。私はindex.phpに$ _SESSIONとしてユーザー名と電子メールを送信しようとしています。 私はmysql_data_seek($ result、0)でポインタをリセットしようとしました。 し、mysql_fetchを使用してください... おかげであなたの助けを前にありがとう。コードの最初の行になど設定されたセッションよりもsession_start()を入れ

$query = "SELECT * FROM `users` WHERE username='$username' and password='".md5($password)."'"; 
    $result = mysqli_query($con,$query) or die(mysql_error()); 
    $rows = mysqli_num_rows($result); 
    if($rows==1){ 

     $_SESSION['email'] ="emailcolumn in $result"; //<---- How to set this? 
     $_SESSION['username'] = $username; 
     header("Location: index.php"); // Redirect user to index.php 
     }else{ 
+0

) –

+0

あなたはまた、**、MD5でハッシュ化されたパスワードを保存しないでください –

+3

のAPIを混合している!** PHPが[ 'password_hashを()']を提供(https://php.net/manual /en/function.password-hash.php)と['password_verify()'](https://php.net/manual/en/function.password-verify.php)それらを使用してください。 5.5より前のバージョンのPHPを使用している場合([互換性パックがあります])(https://github.com/ircmaxell/password_compat)ハッシュする前に[**パスワードをエスケープしない**](https://stackoverflow.com/q/36628418/5914775)を確認するか、他のクレンジングメカニズムを使用してください。これを行うと、パスワードが変更され、不要な追加のコーディングが発生します。 –

答えて

0

$_SESSION['email'] 
7
$result= mysqli_fetch_assoc($result); //make the result an associative array 
$_SESSION['email'] = $result['email_column']; <--This is how we extract value from an associative array 

あなたは(session_start()) のおかげで、あなたのスクリプトの先頭にセッションを開始することを確認してくださいこれを指摘するための@Mayank

0

mysqli_fetch_assoc($result)を使用してデータを取得する

session_startでbeginig(で
$query = "SELECT * FROM `users` WHERE username='$username' and password='".md5($password)."'"; 
$result = mysqli_query($con,$query) or die(mysql_error()); 
$rows = mysqli_num_rows($result); 
if($rows==1){ 

    $data = mysqli_fetch_assoc($result); 
    $_SESSION['email'] = $data['your_column_name']; 

    $_SESSION['username'] = $username; 
    header("Location: index.php"); // Redirect user to index.php 
    }else{ 
関連する問題