当用户输入mysite.com/earth.php时,我希望我的earth.php文件找到用户ID。我想要这个,因为我希望将id放在一个sql代码中,当用户输入mysite.com/earth.php时,该代码将被发送到数据库。我想我必须在用户登录时启动会话以帮助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'");
}
?>
当他们进入mysite.com/earth.php时,这是我希望将用户更改为3的值
这是我的login.php文件
请帮助,我一直试图解决这个问题很长一段时间。
答案 0 :(得分: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
}
?>
答案 1 :(得分:1)
从我的代码中可以看出,$_SESSION['id']
为空。为它设置一个值。我看到你编辑了你的帖子。然后你必须在开始会话后包括你的文件,如
session_start();
include_once 'path/to/login/php/login.php;