2014-10-07 3 views
-3

Я хочу, чтобы мой файл earth.php нашел идентификатор пользователя, когда пользователь вводит mysite.com/earth.php. Я хочу это, потому что я хочу, чтобы идентификатор был помещен в код sql, который будет отправлен в базу данных, когда пользователь войдет в mysite.com/earth.php. И я думаю, что мне нужно начать сеанс, когда пользователь входит в систему, чтобы помочь earth.php найти идентификатор пользователя? Может кто-то помочь мне в этом, потому что я не знаю, как это сделать.Как начать сеанс?

Это мой 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 [«ID»] ', чтобы иметь стоимость? –

+0

Вы начали сеанс без фактического заполнения его – Tushar

+0

Как мне установить значение? и что делает ценность? –

ответ

1

Как я вижу из вашего кода, $_SESSION['id'] пуст. Задайте для него значение. Я вижу, вы отредактировали свой пост. Тогда вы просто должны включать в свой файл после запуска сессии, как

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

+0

Хотя это верно, пожалуйста, объясните немного лучше с фрагментом кода, объясняющим проблему. –

+0

Где я должен разместить этот код? \t $ _SESSION ['id'] = $ id; –

+0

$ id должен иметь значение @ EmrikAhlström, чтобы установить сеанс. –

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

На моей земле.php? –

+0

Это пример входа. Действие формы будет идти здесь, получить идентификатор пользователя и затем установить сеанс. Я бы уточнил, что он проверяет, существует ли имя пользователя, и если да, то установите сеанс, иначе передайте сообщение пользователю – AdRock

+0

Итак, могу ли я заменить этот код моим login.php, который я использую прямо сейчас? –

Смежные вопросы