Есть код для авторизации пользователей Код (Text): <?php session_start(); if(isset($_POST['login']) && isset($_POST['password'])){ $login = $_POST['login']; $password = $_POST['password']; $db = mysql_connect("localhost","root",""); mysql_select_db('kino', $db); if(mysqli_connect_errno()){ echo "Не возможно подключение к БД"; exit; } $query = "SELECT login FROM user WHERE login = '$login'"; } if(empty($_SESSION['login'])) { $_SESSION['login'] = $_POST['login']; echo "<form action='' method='post'>"; echo "Логин: ".'<br>'; echo "<input type='text' name='login'>".'<br><br>'; echo "Пароль :".'<br>'; echo "<input type='password' name='password'>".'<br>'; echo "<input type='submit' name='submit' value='Вход' align='center'>"; echo "</form>"; echo "<a href='registration.php'>Регистрация</a>"; } else { $result = mysql_query($query, $db); $myrow = mysql_fetch_assoc($result); foreach($myrow as $v){ echo "Здраствуйте ".$v; } echo "<br><a href='inc/exit_user.php'>Выйти</a>"; } ?> После авторизации на этой же вкладки все нормально выводит из БД логин, когда открываю вкладку ошибка: Код (Text): Warning: mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in Z:\home\localhost\www\wpkino\inc\login.php on line 29 Warning: Invalid argument supplied for foreach() in Z:\home\localhost\www\wpkino\inc\login.php on line 30
Запрос обломился. Ответа не может быть. Ищи косяк. Добавлено спустя 50 секунд: Предполагаю, что надо взять поля в кавычки Добавлено спустя 6 минут 47 секунд: Аналогично viewtopic.php?f=9&t=49995
По одному логину вход, прелестно. вместо $login = $_POST['login']; $password = $_POST['password']; юзайте тогда уж extract($_POST) чтоб вытрясти все его переменные
ну для понятия принципа авторизации достаточно) Код (PHP): if(isset($_POST['login']) & isset($_POST['password'])){ не лучше ли так? не вижу смысла проверки условия дальше если, $_POST['login'] отсутствует
Вот исправил пропала ошибка, но всеравно при открытии новой вкладки не выводит логин Код (Text): <?php session_start(); if(isset($_POST['login']) & isset($_POST['password'])){ $login = $_POST['login']; $password = $_POST['password']; } $db = mysql_connect("localhost","root",""); mysql_select_db('kino', $db); $query = mysql_query("SELECT login FROM user WHERE `login` = '$login'"); if(!$db){ echo "Не возможно соединится с БД"; } if(!mysql_select_db('kino', $db)){ echo "Не возможно выбрать БД"; } if(mysqli_connect_errno()){ echo "Не возможно подключение к БД"; exit; } if(empty($_SESSION['login'])) { $_SESSION['login'] = $_POST['login']; echo "<form action='' method='post'>"; echo "Логин: ".'<br>'; echo "<input type='text' name='login'>".'<br><br>'; echo "Пароль :".'<br>'; echo "<input type='password' name='password'>".'<br>'; echo "<input type='submit' name='submit' value='Вход' align='center'>"; echo "</form>"; echo "<a href='registration.php'>Регистрация</a>"; } else { $myrow = mysql_fetch_array($query); echo $myrow['login']; echo "<br><a href='inc/exit_user.php'>Выйти</a>"; } ?>
это к этому не относится. )) Добавлено спустя 6 минут 58 секунд: отправил форму, переменные $_POST['login']; $_POST['password']; присутствуют, запрос Код (Text): $query = mysql_query("SELECT login FROM user WHERE `login` = '$login'"); проходит. Но если просто открывать другую вкладку, то нет отправки формы и не может быть переменных Код (Text): $_POST['login']; $_POST['password']; попробуй ручками прописать логин вместо Код (Text): $login в запросе Добавлено спустя 1 минуту 39 секунд: не вижу где ты сохраняешь логин в сессии
Я просто еще нуб в php это мой первый проект). Это мне нужно сделать ? Код (Text): $_SESSION['login'] = $login;
Код (Text): $query = mysql_query("SELECT login FROM user WHERE `login` = '$login'"); тут логин пропиши ручками, и проверь что будет
Я тоже не пишу ё, так что кому такой совет дали, тот или догадается прикрутить префикс, или будет подвержен падучей и воде в коленях.