Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: передача переменных на несколько страниц
 
 автор: Blondy   (17.05.2010 в 17:47)   письмо автору
 
 

Доброго времени суток!
Прошу прощения за излишнее беспокойство опять же по довольно банальным вопросам (и вот так набирается опыт).
Сегодняшний мой вопрос такой: как можно с одной страницы передать две-три переменные на все страницы сайта?
Пример и то что есть в реальности- делаю вручную регистрацию на сайте и собственно получается так: пользователь регится (логин, пароль, подтверждение пароля, мэйл). данные заносятся в таблицу в БД. Потом пользователь может зайти на сайт уже под имеющимся своим аккаунтом- то есть вводит логин и пароль. После того как он нажимает кнопку "ОК" сверху страницы в шапке показывается его логин. Дальше пользователь может ходить по страничкам сайта и везде вверху будет выводится его логин.
И вот что бы мне очень хотелось узнать- как передать данные об его логине на все страницы? На первой, где он входит, вот такой скрипт:

это форма где вводится логин и пароль


<table>
<form action="Index.php" method="POST">
<tr>
<td>Введите имя</td>
<td><input type="text" name="login" ></td>
</tr>
<tr>
<td>Введите пароль</td>
<td><input type="password" name="password" ></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK" name="submit" ></td>
</tr>
</form>
</table>


И дальше - обработка

<?php
$log 
mysql_real_escape_string($_POST['login']);
$pas mysql_real_escape_string($_POST['password']);
$result1 =mysql_query("SELECT * FROM `users` WHERE login = '$log'",$gb);
while (
$myrow1 mysql_fetch_array ($result1)) {
printf("
  <tr>
    <td>%s</td>
  </tr>
 "
,$myrow1['login']);
}
?>


Это всё на странице Index.php , а нужно каким-то волшебным образом передать данные на другие страницы, без повторных вводов логина и пароля.
Заранее огромнейшее спасибо за помощь!!

  Ответить  
 
 автор: Valick   (17.05.2010 в 17:50)   письмо автору
 
   для: Blondy   (17.05.2010 в 17:47)
 

а сессии для кого придумали?

  Ответить  
 
 автор: ШИМ   (17.05.2010 в 17:51)   письмо автору
 
   для: Blondy   (17.05.2010 в 17:47)
 

Сори если что не так, я не читал весь пост, используй сессии $_SESSION['some_var'] = $var, или куки

  Ответить  
 
 автор: Blondy   (17.05.2010 в 18:24)   письмо автору
 
   для: ШИМ   (17.05.2010 в 17:51)
 

Признаюсь- совершенно не умею пользоваться сессиями. Прочитала пример и попробовала, но совершенно ничего не вышло. Не могли бы подсказать что я напутала и не так?

это из Index.ru

<?php
$log 
mysql_real_escape_string($_POST['login']);
$pas mysql_real_escape_string($_POST['password']);
$result1 =mysql_query("SELECT * FROM `users` WHERE login = '$log'",$gb);
while (
$myrow1 mysql_fetch_array ($result1)) {
printf("
  <tr>
    <td>%s</td>
  </tr>
  <tr>
    <td>%s</td>
  </tr>
  
 "
,$myrow1['login'],$myrow1['password']);
}
session_start();
$_SESSION['i']=$log
?>


а вот из следующего файла куда хочу передать свою переменную $log

<?php
session_start
();
?> 


и дальше в нём же

<?php
$log1
=$_SESSION['i'];
echo 
$log1;
?> 

  Ответить  
 
 автор: root   (17.05.2010 в 18:42)   письмо автору
 
   для: Blondy   (17.05.2010 в 18:24)
 

session_start() должен выполняться перед любым выводом html'a.

  Ответить  
 
 автор: Blondy   (17.05.2010 в 19:52)   письмо автору
 
   для: root   (17.05.2010 в 18:42)
 

Спасибо за совет) а не подскажите куда именно надо вставлять session_start(); ?
я попробовала перед самим html документом, в начало body -ничего не получилось пока что

  Ответить  
 
 автор: root   (17.05.2010 в 19:59)   письмо автору
 
   для: Blondy   (17.05.2010 в 19:52)
 

ставьте сразу после открывающего <?php тега
<?php
session_start
();
...

[edit]

также поставьте
error_reporting(E_ALL);

  Ответить  
 
 автор: Blondy   (17.05.2010 в 20:33)   письмо автору
 
   для: root   (17.05.2010 в 19:59)
 

Спасибо огромнейшее за терпение с моим незнанием что и куда ставить.
Я сделала как вы сказали но всё равно выдаётся ошибка:


Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at Z:\home\mysite\www\Index.php:11) in Z:\home\mysite\www\Index.php on line 124

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at Z:\home\mysite\www\Index.php:11) in Z:\home\mysite\www\Index.php on line 124

<?php
session_start
();    <-------------------------------------------------------------это строка 124
$log 
mysql_real_escape_string($_POST['login']);
$pas mysql_real_escape_string($_POST['password']);
$result1 =mysql_query("SELECT * FROM `users` WHERE login = '$log'",$gb);
while (
$myrow1 mysql_fetch_array ($result1)) {
printf("
  <tr>
    <td>%s</td>
  </tr>
  <tr>
    <td>%s</td>
  </tr>
 "
,$myrow1['login'],$myrow1['password']);
}
$_SESSION['i']=$log
error_reporting(E_ALL);
?>

  Ответить  
 
 автор: root   (17.05.2010 в 20:38)   письмо автору
 
   для: Blondy   (17.05.2010 в 20:33)
 

Первыми двумя строками вашего файла сделайте
<?php 
session_start
();


перед session_start не должно быть никакого вывода

  Ответить  
 
 автор: Blondy   (17.05.2010 в 20:44)   письмо автору
 
   для: root   (17.05.2010 в 20:38)
 

О чудо, получилось всё!!!)
Огромнейшее вам спасибо за терпение и советы!!!!!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования