Здравствуйте. Решил создать обычную HTML форму входа, прикрепил к ней php, но он не хочет проверять Логин и Пароль.Т.е, вводишь любое значение в Логине и в Пароле, и он входит. Не знаю что делать. Помогите нубу, пожалуйста. HTML HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Авторизация</title> </head> <body> <div class="container"> <form method="post" action="uu.php"> <div class="inp-dw"> <input type="text" name="text" placeholder="Введите Логин"></div> <div class="inp-dw"> <input type="password" name="password" placeholder="Введите Пароль"> </div> <input class = "btn-dw" type="submit" name="submit" value="Войти"> <a href="#" target="_blank">Сайт</a> </form> </div> </body> </html> PHP PHP: <?php $user = filter_input(INPUT_POST, 'text'); $password = filter_input(INPUT_POST, 'password'); $log = "PC-ПК\SQLEXPRESS"; $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234"); $conn = sqlsrv_connect($log,$u); $params = array(1,"some data"); if(!empty($user) && !empty($password)) { $sql="SELECT users FROM WHERE login='$user' and password='$password'"; $stmt = sqlsrv_query($conn,$sql,$params); echo "Good"; }else{echo "Введите ";} ?>
Так ты логику такую задал, где: PHP: if(!empty($user) && !empty($password)) { любое значение было, главное чтоб обои небыли пустыми. Потом ты в пустую запрос гонишь в бд и на этом Финишер. Так где Brutality and Fatality для неверных ?
@MouseZver, Вы наверное имели ввиду, где проверка значений на истину или ложь (Brutality and Fatality). Если я Вас правильно понял, то он всё равно не хочет проверять.... PHP: <?php $user = filter_input(INPUT_POST, 'text'); $password = filter_input(INPUT_POST, 'password'); $log = "PC-ПК\SQLEXPRESS"; $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234"); $conn = sqlsrv_connect($log,$u); $params = array(1,"some data"); if(!empty($user) && !empty($password)) { $sql="SELECT users FROM WHERE login='$user' and password='$password'"; if ($user = true) { echo "Вошёл"; } else{echo "Не получилось войти";} }else{echo "Введите значения!";} ?>
Ну так почитайте где-нибудь, как работать с результатами запроса при пользовании MS SQL в php. https://secure.php.net/manual/ru/function.sqlsrv-has-rows.php, https://secure.php.net/manual/ru/function.sqlsrv-next-result.php, https://secure.php.net/manual/ru/function.sqlsrv-fetch-array.php, https://secure.php.net/manual/ru/function.sqlsrv-fetch-object.php
@mkramer, Здравствуйте, Спасибо, что откликнулись. Я уже много сайтов посвященной этой тематике перерыл. Делал по примерам. Но либо у меня входи при любом логине и пароле, либо не входи вообще. Вот пример: PHP: $user = filter_input(INPUT_POST, 'text'); $password = filter_input(INPUT_POST, 'password'); $log = "PC-ПК\SQLEXPRESS"; $u = array("Database"=>"Test", "UID"=>"Test","PWD"=>"1234"); $conn = sqlsrv_connect($log,$u); $params = array(1,"some data"); if(!empty($user) && !empty($password)) { $stmt=sqlsrv_query($conn,"SELECT login FROM users WHERE login='$user'"); if ($stmt) { $rows = sqlsrv_num_rows($stmt); if($rows === true) echo "Da <br/>"; else echo "Net<br/>"; } }else{echo "Введите значения!";} ?>
Просто вставка в БД MS SQL - работает, а проверка для входа не хочет работать.... HTML: <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Add</title> </head> <body> <form method="POST" action="ewq.php"> Название новсоти:<br> <input type="text" name="title" /> Текст<br> <textarea cols="40" rows="10" name="text"></textarea> <br> <input type="submit" name="acc"> </form> <?php $serverName = "PC-ПК\SQLEXPRESS, 1433"; $connectionInfo = array( "Database"=>"Test", "UID"=>"Test", "PWD"=>"1234"); $conn = sqlsrv_connect( $serverName, $connectionInfo); if(! $conn ) { exit(sqlsrv_error()); } if(isset ($_POST['acc'])) { $text = strip_tags(trim($_POST['title'])); $textarea = strip_tags(trim($_POST['text'])); $sqql = (iconv("UTF-8" ,"windows-1251","INSERT INTO info(name,text) VALUES(N'$text',N'$textarea')")); $params = array(1,"some data"); $stmt = sqlsrv_query( $conn, $sqql, $params); echo "Всё хорошо, Ты Молодец)"; } ?> </body> </html>
А почему с true сравниваете? А говорите, что-то там читали.... Разве number of rows - это булево значение? Вот эта функция возвращает действительно булево значение: https://secure.php.net/manual/ru/function.sqlsrv-has-rows.php И код уязвим к SQL-инъекциям, но это уже следующая часть мармизонского балета --- Добавлено --- @Асаша, а что прочитано по PHP? Потому что, простите, но в коде бред копипастера, разумных мыслей нету.