Перейти к содержимому

Фото
- - - - -

Php, sql, db


  • Вы не можете создать новую тему
  • Please log in to reply
3 ответов в этой теме

#1 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 26 Апрель 2008 - 19:23

Вообщем суть такая:
Имеется форма, пароль/логин
<form id='form1' method='post' action=$target>
<p class='logon'>Логин:&nbsp;</p>
<td><input maxlength='50' size='12' name='username'></td>
<tr>
<td><p class='logon'>Пароль:&nbsp;</p></td>
<td><input type='password'  maxlength='18' size='12' name='password'></td>
</tr>
<tr><td>
<center><input name=submit type=image src=pic/enter.gif  border=0></center></td>
<td>
<center><a href='registr.php'><img src='pic/reg.gif' border='0'></a></center></td>
 </tr>
 </form>


При нажатии Субмит, появляются две переменные пасворд и юзернейм, ну соответственно программа проверяет из БД. Вошли.
Делаем запрос:
<?php
if (isset($password) AND isset($username)){
$result = mysql_query("SELECT name FROM users WHERE username='$username' AND password='$password'", $connection);
$myrow = mysql_fetch_array($result);
echo $myrow['name'];
}else{
echo "Гыыыы!";
} ?>
// Если существует имя и пароль в базе он выдает имя владельца.
А при обновлении страницы, эти переменные пропадают, соотвественно он больше не находит их и выдает Гыыы..
Как сделать чтоб при обновлении страницы переменные всегда были?
Или есть другой путь, чтоб база знала тогоб кто зашел под паролем, чтоб я спокойно мог вытаскивать на сайт его инфо.
Может тупо объяснил , переспросите если что. Спасибо огромное :unsure:
  • 0

#2 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 26 Апрель 2008 - 19:29

Если находит -> Заноси в сессию. И в форме делаешь проверку, типо если сессия установлена - типо здраствуйте, вы уже вошли ... пройдите туда-то =)
  • 0

#3 PressSetter

PressSetter

    Крестный Папочка

  • Постоялец
  • 2 263 сообщений
  • Откуда:Таллинн

Отправлено 26 Апрель 2008 - 19:47

Немного не понял.
В начале страницы указать:

<?php session_start();?>

Как занести туда данные о пользователе.
Можно немножко поподробнее, просто я сверх-программист.
Начинающий.

Я так понял, ты хочешь сделать так, проверять на наличие сессии и тогда выдавать какое-то меню, которое направляет пользователя по страницам?

Но мне нужно сделать так, чтоб на основе введенных данных выдавать ту инфу, которая принадлежит только ему. То есть играть на запросах.
А то при обновлении страницы я теряю переменные(введенные данные) и система больше не может определить кто в системе, НО сессия уще существует! Вот)
  • 0

#4 .NET

.NET
  • Постоялец
  • 3 511 сообщений

Отправлено 26 Апрель 2008 - 19:57

session_start обязательно, иначе механизм сессий работать не будет. И это нужно писать в каждых отдельных страницах php. Далее. Показываю на пальцах )
login.php
<?php
session_start();
/// всякий код тут 
if(isset($_SESSION['username'])) {
header('Location: form.php');
exit();
}
$username = $_POST['username'];
$password  = $_POST['password'];
if (isset($password) AND isset($username)){
$result = mysql_query("SELECT name FROM users WHERE username='$username' AND password='$password'", $connection);
if( mysql_num_rows($result) > 0 ) {
$myrow = mysql_fetch_array($result);
$_SESSION['username'] = $myrow['name'];
echo $myrow['name'];
} else {
echo 'Неправильные логин и/или пароль.';
}
} else {
echo 'Не все поля были заполнены.';
} ?>

form.php
session_start();
/// бла-бла-бла код

if( isset($_SESSION['username']) ) {
echo 'Вы уже вошли как '.$_SESSION['username'];
exit();
}
$target = 'login.php';
<form id='form1' method='post' action=$target>
<p class='logon'>Логин: </p>
<td><input maxlength='50' size='12' name='username'></td>
<tr>
<td><p class='logon'>Пароль: </p></td>
<td><input type='password'  maxlength='18' size='12' name='password'></td>
</tr>
<tr><td>
<center><input name=submit type=image src=pic/enter.gif  border=0></center></td>
<td>
<center><a href='registr.php'><img src='pic/reg.gif' border='0'></a></center></td>
</tr>
</form>

Сообщение изменено: Ирбис (26 Апрель 2008 - 20:45 )

  • 0