2016-03-24 15 views
1

私は簡単なログインを持ち、ユーザーがログに記録すると、タイトルとコメントをアップロードできます(画像も無視できますが、これは無視できます)。私が望むのは、現在ログインしているユーザーのユーザーIDもデータベースに挿入することです。これは、私が手の問題は0がどんなユーザーuser_imageデータベース内のuser_idフィールドに挿入されませんということです私の現在のコード

<?php 
session_start(); 

include"assets/scripts/sql_connect.php"; 

if (isset($_POST['image_title'])){ 

    $userid = $_SESSION["id"]; 
    $image_title = $_POST['image_title']; 
    $image_comment = $_POST['image_comment']; 


    //Add image text to the database 
    $sql = $conn->query("INSERT INTO user_image(user_id,image_title,image_comment, image_date_added) VALUES('$userid','$image_title','$image_comment', now())") or die(mysql_error()); 
    $id = $conn->lastInsertId(); 

    $image_id = $conn->lastInsertID(); 
    // Places image in the images folder 
    $new_name = "$image_id.jpg"; 
    move_uploaded_file($_FILES['app_art_image']['tmp_name'],"appArtImages/$new_name"); 
    header("location:gallery.php"); 
    exit(); 
}  
?> 

upload.php

login.php

<?php 
session_start(); 
if(isset($_SESSION["user"])){ 
    header("location:index.php"); 
    exit(); 
} 

?> 

<?php 

if(isset($_POST["username"]) && isset($_POST["password"])){ 
    // Filter everything except letters and numbers 
    $user = preg_replace('#^A-Za-z0-9#i','',$_POST["username"]); 
    $password = preg_replace('#^A-Za-z0-9#i','',$_POST["password"]); 

    // Connect to mySQL 
    include"assets/scripts/sql_connect.php"; 

    // Query the person 
    $sql = $conn->query("SELECT id FROM user_login WHERE user_name='$user' AND user_password='$password' LIMIT 1"); 

    // Make sure person exists 
    $existCount = $sql->rowCount(); 

    // Evaluate the count 
    if($existCount == 1){ 
     while($row = mysql_fetch_array($sql)){ 
      $id = $row["id"]; 
     } 
     $_SESSION["id"] = $id; 
     $_SESSION["user"] = $user; 
     $_SESSION["password"] = $password; 
     header("location:index.php"); 
     exit(); 
    }else{ 
     echo"Login details incorrect, try again <a href='index.php'>Click here</a>"; 
     exit(); 
    } 
} 
?> 

です

+0

にlogin.phpに

while($row = mysql_fetch_array($sql)){ 

を変えましたか? – rsabir

+1

いいえ、何も印刷しません。 – user2987377

+0

これはSQLクエリの問題であり、セッションからの問題ではありません。あなたが望むように '$ user'と' $ password'が良いとsqlクエリを行う前に確認してください。 – rsabir

答えて

1

の代わりにmysql_fetch_array() の代わりにmysql_fetch_assoc()を使用してください。

if($existCount == 1){ 
      while($row = mysql_fetch_assoc($sql)){ 
       $id = $row["id"]; 
       $_SESSION["id"] = $id; 
       break; 
      } 
      $_SESSION["user"] = $user; 
      $_SESSION["password"] = $password; 
      header("location:index.php"); 
      exit(); 
     }else{ 
      echo"Login details incorrect, try again <a href='index.php'>Click here</a>"; 
      exit(); 
     } 

は、それが役立ちます:)それを解決するためにうまく管理

+0

login.phpにはすでにsession_startがあります。申し訳ありませんが私の元の投稿にもそれを含める必要があります。私はこれを反映するためにオリジナルの投稿を編集しました。 – user2987377

+0

echo $ _SESSION ["id"]はクエリを挿入する前にその値をチェックして教えてください。私は助けるかもしれない。 – FastTurtle

+0

何もエコーしません。私はエコーすることができます<?php echo $ _SESSION ["user"]; ?>これは現在ログインしているユーザーのユーザー名を表示しますが、<?php echo $ _SESSION ["id"]; ?>は何も与えません。その空白。 – user2987377

1

を願っています。あなたは `だけのSQLクエリの後に$ id`エコーない場合、私はそれが何かを印刷して、

while($row = $result->fetch(PDO::FETCH_ASSOC)){ 
関連する問題