2014-10-16 3 views
0

Я хочу, чтобы мои пользователи вошли в mysite.com/earth.php, и earth.php отправит код sql в мою базу данных, которая обновит столбец в таблице users. Итак, я хочу, чтобы пользователь, который входит на эту страницу, изменил это значение http://prntscr.com/4wet3o «-1» на «3» в базе данных для пользователя, который вводит. Не для всех, только для пользователя, который входит. Но его не работает, потому что earth.php должен найти идентификатор пользователя, и он не находит его? Нужно ли начинать сеанс? У меня есть таблица сеансов в моей базе данных, которая выглядит так: http://prntscr.com/4wev2k это любая помощь?Как начать сеанс для userid

Пользователи должны войти в систему, чтобы ввести Earth.php EDIT:

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

    session_start(); 

$_SESSION['id'] = 2; //Or a valid user ID 

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

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

    ?> 
+0

Пожалуйста, поделитесь больше кода, который вы используете для входа в систему .... – Naincy

+0

mysql_ * осуждается, использовать PDO –

ответ

0

Все страницы с помощью объекта SESSION должны иметь session_start(); в верхней части. Убедитесь, что любая страница сначала получает идентификатор пользователя, это тот, который хранит его в сеансе, используя $_SESSION['id'] = $id;.

После этого на Earth.php все, что вам нужно сделать, это $id = $_SESSION['id'];, чтобы извлечь его из сеанса. Не нужно вызывать функцию session_write_close();.

+0

я редактировал код, если вы можете увидеть –

+0

У вас есть отдельный где пользователь сначала вводит свой идентификатор или имя или что-то еще? – phansen

+0

Когда они входят в систему, они ставят свое имя –

0

Мне кажется, что логика не является правильным, потому что:

  1. следующие строки ничего не делают

    $ ID = $ _SESSION [ 'ID']; $ _SESSION ['id'] = $ id;

  2. попытка записать в сессии после того, как он был закрыт не удастся

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

  3. следующее, вероятно, возвращать ложные

    если (Исеть ($ _ SESSION [ 'ID']))

использование вместо

if($id) { ... } 

--- добавлено в соответствии с изменен источник ----

и заменить

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

с

mysql_query(sprintf("UPDATE users SET ally='3' WHERE id='%s'", $_SESSION['id'])); 
+0

О, можете ли вы отредактировать код для меня или можете объяснить, где я должен использовать if ($ id) {...} –

+0

Нужно ли мне отредактировать этот код? if ($ id) {...} –

+0

Я отредактировал мой earth.php по моему вопросу, вы можете посмотреть на него –