Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Подскажите пожалуйста что неправильно!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Форма авторизации
Red_man
Отправлено: 31 Мая, 2016 - 21:27:07
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Подскажите пожалуйста что не так. Форма авторизации. Ввожу неправильный логин/пароль выдает 'No correct' так и должно. Ввожу правильный все равно выдает 'No correct' что не так делаю

<?php

////////////////// настройка соединения с БД /////////////////////////

$hostname_connect = "localhost"; //параметры подключения к БД
$database_connect = "bdsite1";
$username_connect = "user1";
$password_connect = "12345";
// функция подключения к БД
$connect = mysql_pconnect($hostname_connect, $username_connect, $password_connect) or trigger_error(mysql_error(),E_USER_ERROR);
mysql_select_db($database_connect); //функция, подключаемся к БД
// Вывод данных в кодировке
@mysql_query ("set character_set_client='utf8'"); //кодировка данных
@mysql_query ("set character_set_results='utf8'");
@mysql_query ("set collation_connection='utf8_unicode_ci'");

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:www.w3.org/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title> Админка и защита от взлома </title>

</head>

<body>

<h1> Админка </h1>
<div style="background-color:#D3D3D3; width:200px; padding:10px">
<form method="post">
Login:<br/>
<input name"log" type="text" style="cursor:pointer"> <br/><br/>
Password:<br/>
<input name="passw" type="password" style="cursor:pointer"> <br/><br/>
<input type="submit" name="button" value="Войти" style="cursor:pointer">
</form>

<?php
if ($_POST['button'])
{
$log = $_POST['log'];
$passw = $_POST['passw'];

if ( ($log === $row[0]) and ($passw === $row[1]))
{
$_SESSION['auth'] = $log;
echo "Enter to admin -> <a href='admin.php' > </a>";
}
else
{
return exit ('Not correct');
}
}
?>





</body>
</html>
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 21:34:12
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man пишет:
что не так делаю
Не так сравниваете. Вернее, сравниваете с "ничем". У вас в условии записано так
PHP:
скопировать код в буфер обмена
  1. if ( ($log === $row[0]) and ($passw === $row[1]))
А вот откуда "вдруг" появилась $row[0] и $row[1] ? Эти данные надо сперва из базы получить, а потом уже с ними сравнивать.
 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 22:16:12
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




$db = mysqli_connect('localhost', 'user1', '12345');
mysqli_select_db($db, bdsite1); //функция, подключаемся к БД

$select = @mysqli_query ($db, "SELECT log, passw FROM tabl1");
if (!$select) exit ('#01 Ошибка');
$row = @mysqli_fetch_row ($select);
if (!row) exit ('#02 Ошибка');


Вот так? Но все равно 'No correct' пишет.
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 22:24:02
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man А что в $row ? Выполните дамп
 
 Top
Viper
Отправлено: 31 Мая, 2016 - 22:43:30
Post Id



Активный участник


Покинул форум
Сообщений всего: 4555
Дата рег-ции: Февр. 2007  
Откуда: Симферополь


Помог: 98 раз(а)




Red_man пишет:
if ( ($log === $row[0]) and ($passw === $row[1]))
зачем строгое сравнение?

Red_man пишет:
Вот так?
не ставьте @, дурной тон и затрудняет отладку.


-----
Список фильмов с описанием, блекджеком и... для Joomla? -> https://киноархив[dot]com
Демо нового движка для сайта php.su -> php[dot]su, проект на гитхабе
 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 22:46:31
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Строитель пишет:
Red_man А что в $row ? Выполните дамп


строка запроса
(Добавление)
Выполните дамп

array(2) { [0]=> string(3) "123" [1]=> string(3) "123" }
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 22:50:21
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man пишет:
array(2) { [0]=> string(3) "123" [1]=> string(3) "123" }
А логин и пароль как выглядит? (те, с которыми вы сравниваете)
 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 22:52:14
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Строитель пишет:
Red_man пишет:
array(2) { [0]=> string(3) "123" [1]=> string(3) "123" }
А логин и пароль как выглядит? (те, с которыми вы сравниваете)


Так и есть
123
123
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 22:55:20
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man пишет:
Так и есть
Ну тогда попробуйте не использовать строгое сравнение в условии (вместо трёх знаков === напишите два ==), и ещё не плохо было бы весь код целиком посмотреть, с подсветкой (в bbphp-тегах)
 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 23:03:05
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Строитель пишет:
Red_man пишет:
Так и есть
Ну тогда попробуйте не использовать строгое сравнение в условии (вместо трёх знаков === напишите два ==), и ещё не плохо было бы весь код целиком посмотреть, с подсветкой (в bbphp-тегах)


Попробовал == тоже самое.
А с одним = направляет на страницу admin
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 23:10:08
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man Код целиком опубликуйте.
 
 Top
Botik
Отправлено: 31 Мая, 2016 - 23:14:25
Post Id



Новичок


Покинул форум
Сообщений всего: 30
Дата рег-ции: Дек. 2008  
Откуда: Чебоксары


Помог: 0 раз(а)




Боземой, а теперь сделаем это правильно Улыбка
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. ////////////////// настройка соединения с БД /////////////////////////
  4. $db_config = [
  5.     'host' => 'localhost',
  6.     'user' => 'user1',
  7.     'db' => 'bdsite1',
  8.     'pass' => '12345'
  9. ];  //параметры подключения к БД
  10.  
  11. $auth = null;
  12.  
  13. if (isset($_POST['button'])) {
  14.     // функция подключения к БД
  15.     $db = new mysqli($db_config['host'], $db_config['user'], $db_config['pass'], $db_config['db']);
  16.  
  17.     if ($db->connect_error) {
  18.         die('Ошибка подключения ('.$db->connect_errno.') '.$db->connect_error);
  19.     }
  20.  
  21.     // Вывод данных в кодировке
  22.     $db->set_charset('utf-8');
  23.  
  24.     $log = $_POST['log'];
  25.     $passw = $_POST['passw'];
  26.     $password = null;
  27.  
  28.     // Подготавливаем запрос
  29.     $stmt = $db->prepare('SELECT passw FROM tabl1 WHERE log = ?');
  30.     // Связываем данные
  31.     $stmt->bind_param("s", $log);
  32.     // Привязываем результат
  33.     $stmt->bind_result($password);
  34.     // Выполняем запрос
  35.     $stmt->execute();
  36.     // Получаем результат
  37.     $stmt->fetch();
  38.     // Очищаем
  39.     $stmt->close();
  40.     // Закрываем соединение
  41.     $db->close();
  42.  
  43.     if ($password && $password == $passw) {
  44.         $_SESSION['auth'] = $log;
  45.         $auth = 'Enter to admin -> <a href="admin.php"> Admin </a>';
  46.     } else {
  47.         $auth = 'Not correct';
  48.     }
  49. }
  50. ?><!DOCTYPE html>
  51. <html lang="en">
  52.     <head>
  53.         <meta charset="utf-8">
  54.         <title> Админка и защита от взлома </title>
  55.     </head>
  56.     <body>
  57.         <h1> Админка </h1>
  58.         <div style="background-color:#D3D3D3; width:200px; padding:10px">
  59.             <form method="post">
  60.                 Login:<br>
  61.                 <input name="log" type="text" style="cursor:pointer"> <br><br>
  62.                 Password:<br>
  63.                 <input name="passw" type="password" style="cursor:pointer"> <br><br>
  64.                 <input type="submit" name="button" value="Войти" style="cursor:pointer">
  65.             </form>
  66.  
  67.             <?PHP if ($auth) echo $auth; ?>
  68.  
  69.     </body>
  70. </html>

(Отредактировано автором: 31 Мая, 2016 - 23:27:24)

 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 23:15:14
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




<?php

//////////////////// Подключение к БД ///////////////////////

$db = mysqli_connect('localhost', 'user1', '12345');
mysqli_select_db($db, bdsite1);//функция, подключаемся к БД

$select = mysqli_query ($db, "SELECT log, passw FROM tabl1");//запрос к БД
if (!$select) exit ('#01 Ошибка');
$row = mysqli_fetch_row ($select);
if (!$row) exit ('#02 Ошибка');

?>


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:www.w3.org/TR/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">

<head>

<meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
<title> Админка и защита от взлома </title>

</head>

<body>

<h1> Админка </h1>
<div style="background-color:#D3D3D3; width:200px; padding:10px">
<form method="post">
Login:<br/>
<input name"log" type="text" style="cursor:pointer"> <br/><br/>
Password:<br/>
<input name="passw" type="password" style="cursor:pointer"> <br/><br/>
<input type="submit" name="button" value="Войти" style="cursor:pointer">
</form>

<?php
if ($_POST['button'])
{
$log = $_POST['log'];
$passw = $_POST['passw'];

if ( ($log === $row[0]) and ($passw === $row[1]))
{
$_SESSION['auth'] = $log;
echo "Enter to admin -> <a href='admin.php' > admin </a>";
}
else
{
return exit ('Not correct');
}
}
?>



</body>
</html>
 
 Top
Строитель Модератор
Отправлено: 31 Мая, 2016 - 23:21:50
Post Id



Участник


Покинул форум
Сообщений всего: 1581
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 74 раз(а)




Red_man В html-коде у вас небыло знака "=" (было так name"log"), из-за этого одна переменная не поступала в пост запрос. Вот так должно работать
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //////////////////// Подключение к БД ///////////////////////
  4.  
  5. $db = mysqli_connect('localhost', 'user1', '12345');
  6. mysqli_select_db($db, bdsite1);//функция, подключаемся к БД
  7.  
  8. $select = mysqli_query ($db, "SELECT log, passw FROM tabl1");//запрос к БД
  9. if (!$select) exit ('#01 Ошибка');
  10. $row = mysqli_fetch_row ($select);
  11. if (!$row) exit ('#02 Ошибка');
  12.  
  13.  
  14. ?>
  15.  
  16.  
  17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:www.w3.org/TR/xhtml1-transitional.dtd">
  18. <html xmlns="http://www.w3.org/1999/xhtml">
  19.  
  20. <head>
  21.  
  22. <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
  23. <title> Админка и защита от взлома </title>
  24.  
  25. </head>
  26.  
  27. <body>
  28.  
  29. <h1> Админка </h1>
  30. <div style="background-color:#D3D3D3; width:200px; padding:10px">
  31. <form method="post">
  32. Login:<br/>
  33. <input name="log" type="text" style="cursor:pointer"> <br/><br/>
  34. Password:<br/>
  35. <input name="passw" type="password" style="cursor:pointer"> <br/><br/>
  36. <input type="submit" name="button" value="Войти" style="cursor:pointer">
  37. </form>
  38.  
  39. <?PHP
  40. if ($_POST['button'])
  41. {
  42. $log = $_POST['log'];
  43. $passw = $_POST['passw'];
  44.  
  45. if ( ($log == $row[0]) and ($passw == $row[1]))
  46. {
  47. $_SESSION['auth'] = $log;
  48. echo "Enter to admin -> <a href='admin.php' > admin </a>";
  49. }
  50. else
  51. {
  52. return exit ('Not correct');
  53. }
  54. }
  55. ?>
  56.  
  57.  
  58.  
  59. </body>
  60. </html>
 
 Top
Red_man
Отправлено: 31 Мая, 2016 - 23:27:45
Post Id


Новичок


Покинул форум
Сообщений всего: 7
Дата рег-ции: Май 2016  


Помог: 0 раз(а)




Блин((
Спасибо большое вам Улыбка
(Добавление)
А еще подскажите пожалуйста.
Когда 'No correct' вылазиет, я обновляю страницу, а оно остается, как это исправить?
Только если адрес опять ввести исчезает а при обновлении нет
(Добавление)
Строитель пишет:
Red_man В html-коде у вас небыло знака "=" (было так name"log"), из-за этого одна переменная не поступала в пост запрос. Вот так должно работать
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. //////////////////// Подключение к БД ///////////////////////
  4.  
  5. $db = mysqli_connect('localhost', 'user1', '12345');
  6. mysqli_select_db($db, bdsite1);//функция, подключаемся к БД
  7.  
  8. $select = mysqli_query ($db, "SELECT log, passw FROM tabl1");//запрос к БД
  9. if (!$select) exit ('#01 Ошибка');
  10. $row = mysqli_fetch_row ($select);
  11. if (!$row) exit ('#02 Ошибка');
  12.  
  13.  
  14. ?>
  15.  
  16.  
  17. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http:www.w3.org/TR/xhtml1-transitional.dtd">
  18. <html xmlns="http://www.w3.org/1999/xhtml">
  19.  
  20. <head>
  21.  
  22. <meta http-equiv="Content-Type" content="text/html; charset=Windows-1251" />
  23. <title> Админка и защита от взлома </title>
  24.  
  25. </head>
  26.  
  27. <body>
  28.  
  29. <h1> Админка </h1>
  30. <div style="background-color:#D3D3D3; width:200px; padding:10px">
  31. <form method="post">
  32. Login:<br/>
  33. <input name="log" type="text" style="cursor:pointer"> <br/><br/>
  34. Password:<br/>
  35. <input name="passw" type="password" style="cursor:pointer"> <br/><br/>
  36. <input type="submit" name="button" value="Войти" style="cursor:pointer">
  37. </form>
  38.  
  39. <?PHP
  40. if ($_POST['button'])
  41. {
  42. $log = $_POST['log'];
  43. $passw = $_POST['passw'];
  44.  
  45. if ( ($log == $row[0]) and ($passw == $row[1]))
  46. {
  47. $_SESSION['auth'] = $log;
  48. echo "Enter to admin -> <a href='admin.php' > admin </a>";
  49. }
  50. else
  51. {
  52. return exit ('Not correct');
  53. }
  54. }
  55. ?>
  56.  
  57.  
  58.  
  59. </body>
  60. </html>
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB