2014-10-07 59 views
-3

我想让我的earth.php文件在用户输入mysite.com/earth.php时找到用户标识。我想这样做是因为我希望将id放置在用户输入mysite.com/earth.php时将发送到数据库的sql代码中。我想我必须在用户登录时启动一个会话来帮助earth.php查找用户ID吗?有人可以帮助我,因为我不知道该怎么做。如何开始会话?

这是我earth.php文件:

<?php 
    error_reporting(E_ALL); 
ini_set('display_errors', '1'); 

    session_start(); 
$id = $_SESSION['id']; 
session_write_close(); 

    $verbindung = mysql_connect("localhost","root","******"); 
    mysql_select_db("lan"); 

if(isset($_SESSION['id'])) { 
    mysql_query("UPDATE users SET ally='3' WHERE id='$id'"); 
} 

    ?> 

这是我想为用户更改为3,当他们进入mysite.com/earth.php http://prntscr.com/4turly

值这是我的login.php文件 http://prntscr.com/4tm6jz

请帮忙,我一直在努力解决这个问题很长一段时间。

+0

你有实际设置'$ _SESSION后您的文件[“身份证”]'有值? – 2014-10-07 11:14:33

+0

你已经开始你的会话而没有实际填充它 – Tushar 2014-10-07 11:15:31

+0

如何设置一个值呢?价值是什么? – 2014-10-07 11:16:10

回答

1

正如我从您的代码看到的,$_SESSION['id']是空的。为它设置一个值。我看到你编辑了你的帖子。然后你只需要包括启动像

session_start(); include_once 'path/to/login/php/login.php;

+0

虽然这是正确的,但请使用解释问题的代码段解释更好一点 – 2014-10-07 11:18:46

+0

我应该在哪里放置此代码? \t $ _SESSION ['id'] = $ id; – 2014-10-07 11:21:19

+0

$ id需要有一个值@EmrikAhlström才能设置会话。 – 2014-10-07 11:21:59

2

会话你可以做这样的事情

<?php 

define('DB_TYPE', 'mysql'); 
define('DB_HOST', '127.0.0.1'); 
define('DB_NAME', 'dbname'); 
define('DB_USER', 'root'); 
define('DB_PASS', 'password'); 

session_start(); 

try { 
    // create a new instance of a PDO connection 
    $db = new PDO(DB_TYPE.':host='.DB_HOST.';dbname='.DB_NAME, DB_USER, DB_PASS); 
    $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} 
catch(PDOException $e) { 
    // if the connection fails, display an error message 
    echo 'ERROR: ' . $e->getMessage(); 
} 

if(isset($_POST['username']) && !empty($_POST['username'])) { 

    $username = $_POST['username']; 

    $sql = 'SELECT userid, username FROM users WHERE username = :username'; 

    $stmt = $db->prepare($sql); 
    $stmt->bindValue('username', $username); 
    $stmt->execute(); 
    $result = $stmt->fetchAll(); 

    $_SESSION['id'] = $result[0]['userid']; 

    var_dump($_SESSION['id']); //this will show the the session 
} 

?> 
+0

在我的earth.php上? – 2014-10-07 11:33:12

+0

这是一个登录的例子。表单动作将会在这里,获取用户的ID,然后设置会话。我会更新它,以便检查用户名是否存在以及是否存在,然后设置会话,否则向用户发送消息 – AdRock 2014-10-07 11:34:51

+0

因此,我可以用我现在使用的login.php替换此代码吗? – 2014-10-07 11:36:29