Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
1

Ошибка при создании скрипта для входа

05.12.2015, 19:41. Показов 582. Ответов 19
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый вечер. Хочу сделать для своего сайта вход, но никак не могу понять как правильно.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<?php
 
//
//
 
if(isset($_POST["log"])) //Проверка введен ли логин
{ 
 $name=$_POST["log"];// Если да, то логин заносится в переменную
if ($name==""){//Если поле пустое
unset($name); //  Переменная уничтожается
}
}
//
//
if (isset ($_POST["parol"]))
{
$parol=$_POST["parol"]; 
if ($parol==""){
unset($parol);
}
}
include("connect.php");
$result = mysql_query("SELECT 'id' FROM 'users' WHERE 'log'=$name and 'parol'=$parol");
ini_set('display_errors','On');
$myrow = mysql_fetch_array($result);
if (mysql_fetch_array($result) == "id"){
$_SESSION['log'] = $name;
$_SESSION['parol'] = $parol;
}
//
//
if (empty($login))  {
    Error_Reporting(E_ALL & ~E_NOTICE);
exit ("Вы не ввели логин или пароль");
}
//
//
 
    ?>
Вот всё, что смог накалякать.

Notice: Undefined variable: name in Z:\home\localhost\www\vhod.php on line 23
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: parol in Z:\home\localhost\www\vhod.php on line 23

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\vhod.php on line 25

Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in Z:\home\localhost\www\vhod.php on line 26
А вот список ошибок.
Помогите, кто чем может
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.12.2015, 19:41
Ответы с готовыми решениями:

Ошибка 0x800a138f в Visual Studio при создании скрипта JS
Всем привет. Вешаю обработчик события &quot;click&quot; (для учебных целей) на JS в Visual Studio, выдает...

Ошибка при создании дескриптора окна при динамическом создании кнопок
public Form1() { InitializeComponent(); } int height = 10;...

Ошибка при создании пароля для приложения
Всем привет, пытаюсь создать пароль на приложение по этой статье. Но выходит какая-то ошибка.

Ошибка при создании категорий для статей.
Warning: mysql_fetch_object(): supplied argument is not a valid MySQL result resource in...

19
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 20:10 2
PHP
1
$result = mysql_query("SELECT 'id' FROM 'users' WHERE 'log'=$name and 'parol'=$parol");
Измени на это:

PHP
1
$result = mysqli_query("SELECT `id` FROM `users` WHERE `log`=$name and `parol`=$parol");
кажись дело в клавише тильда

Добавлено через 1 минуту
и измени везде на mysqli: mysqli_query, mysqli_fetch_array
Вроде Mysql устарел
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 20:10  [ТС] 3
Исправил эту ошибку, перепутал просто названия столбцов в бд. Теперь оно выводит только 2 ошибки:
Notice: Undefined variable: name in Z:\home\localhost\www\vhod.php on line 23
[Денвер: показать возможную причину ошибки]
Notice: Undefined variable: parol in Z:\home\localhost\www\vhod.php on line 23
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 20:13 4
Может ты просто не использовал в запросе подключение? пропрбуй эту строку

PHP
1
$result = mysql_query($connect, "SELECT 'id' FROM 'users' WHERE 'log'=$name and 'parol'=$parol");
Добавлено через 22 секунды
только с тильдами
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 20:14  [ТС] 5
Warning: mysql_query() expects parameter 1 to be string, resource given in Z:\home\localhost\www\vhod.php on line 22

Ну и те 2 ошибки остались.
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 20:15 6
скинь исправленный код
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 20:16  [ТС] 7
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//
//
 
if(isset($_POST["log"])) //Проверка введен ли логин
{ 
 $name=$_POST["log"];// Если да, то логин заносится в переменную
if ($name==""){//Если поле пустое
unset($name); //  Переменная уничтожается
}
}
//
//
if (isset ($_POST["parol"]))
{
$parol=$_POST["parol"]; 
if ($parol==""){
unset($parol);
}
}
include("connect.php");
$result = mysql_query('$connect', "SELECT id FROM users WHERE login='$name' AND password='$parol'")or die(mysql_error());
Error_Reporting(E_ALL & ~E_NOTICE);
$myrow = mysql_fetch_array($result) or die(mysql_error());
if (mysql_fetch_array($result) == "id"){
$_POST['log'] = 'login';
$_POST['parol'] = 'password';
}
//
//
if (empty($login))  {
exit ("Вы не ввели логин или пароль");
}
//
//
 
    ?>
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 20:20 8
Крч, пробни все равно поставить везде так и имзенить mysql

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
//
//
 
if(isset($_POST["log"])) //Проверка введен ли логин
{ 
 $name=$_POST["log"];// Если да, то логин заносится в переменную
if ($name==""){//Если поле пустое
unset($name); //  Переменная уничтожается
}
}
//
//
if (isset ($_POST["parol"]))
{
$parol=$_POST["parol"]; 
if ($parol==""){
unset($parol);
}
}
include("connect.php");
$result = mysqli_query($connect, "SELECT `id` FROM `users` WHERE `login`='$name' AND `password`='$parol'")or die(mysql_error());
Error_Reporting(E_ALL & ~E_NOTICE);
$myrow = mysqli_fetch_array($result) or die(mysqli_error());
if (mysqli_fetch_array($result) == "id"){
$_POST['log'] = 'login';
$_POST['parol'] = 'password';
}
//
//
if (empty($login))  {
exit ("Вы не ввели логин или пароль");
}
//
//
 
    ?>
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 21:19  [ТС] 9
Нет. Не работает.
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 21:26 10
Может неправильно написаны названия в таблице?

Попробуй изменить вот эти условия:

PHP
1
2
if ($parol=="")
if ($name=="")
на эти:

PHP
1
2
if (empty($parol))
if (empty($login))
Хотя вряд ли они помогут исправить ошибку...
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 21:32  [ТС] 11
Нет, всё так же.

Добавлено через 1 минуту
Если я правильно понял, то нужно сделать цикл, который будет просматривать строки таблицы и при нахождении строки login, которая совпадает с переменной $name, в которой по-идее хранится введенный пользователем логин, выводить надпись, мол всё хорошо. И так же с паролем. Но у меня что-то не выходит.
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 21:38 12
Скинь форму заполнения и подключение к бд, можешь логин и пароль скрыть

Добавлено через 43 секунды
Ах да структуру бд напиши
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 21:56  [ТС] 13
PHP
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
mysql_query ("set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
mysql_query ("SET NAMES utf8");
ini_set('display_errors','On');
error_reporting(E_ALL|E_STRICT);
$db="syte";
$connect = mysql_connect("localhost", "root", "")or die;
mysql_select_db($db);
$result = mysql_query("SELECT * FROM janri")or die(mysql_error()); 
?>
Подключние к бд.

В смысле структуру бд ?
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 22:11 14
Структура - название столбцов и их типы

Добавлено через 9 минут
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$connect = mysqli_connect('host','user','password', 'db');
 
if (isset($_POST['auth'])) {
$login = $_POST['login'];
$password = $_POST['password'];
if (!empty($login) and !empty($password)) {
$row = mysqli_fetch_assoc(mysqli_query($connect, "SELECT * FROM `users` WHERE `login` = '$login'"));
if ($row['password'] == $password) {
setcookie('user', $login, strtotime('+30 days'), '/');
}
}
}
if ($_COOKIE['user']) {
echo 'Вы вошли';
}
else {
echo '<form action="index.php" method="post">
Логин: <input type="text" name="login"><br>Пароль: <input type="password" name="password"><br>
<input type="submit" name="auth" value="Войти"></form>';
}
Наверное так...
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 22:21  [ТС] 15
Код вставил, но теперь ничего не выводит.
Миниатюры
Ошибка при создании скрипта для входа  
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
05.12.2015, 22:27  [ТС] 16
Хотя не, вроде заработало. Давайте перейдем в лс, чтоб тут не сорить.
0
13 / 12 / 8
Регистрация: 04.12.2013
Сообщений: 323
05.12.2015, 22:29 17
ок.
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
06.12.2015, 16:16  [ТС] 18
Вопрос всё еще актуален.
0
576 / 514 / 253
Регистрация: 26.09.2010
Сообщений: 2,603
07.12.2015, 05:34 19
Цитата Сообщение от arakul Посмотреть сообщение
Вопрос всё еще актуален.
что так и неполучилось сделать вход?

Добавлено через 20 минут
arakul, вот попробуй это

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
if (isset($_POST['submit'])) {
    if {!empty($_POST['login'])} {
        $login = trim(stripslashes(htmlspecialchars($_POST['login'])));
    } else {
        $error[] = "Вы не ввели логин";
    }
    
    if {!empty($_POST['password'])} {
        $password = trim(stripslashes(htmlspecialchars($_POST['password'])));
    } else {
        $error[] = "Вы не ввели пароль";
    }
    
    if (!empty($error)) {
            echo "<ul>";
                foreach ($error as $err) {
                    echo "<li>".$err."</li>\n";
                }
            echo "</ul>";
        } else {
                // подключение к БД
            $db = mysqli_connect("localhost", "login", "password", "db_name");
            mysqli_query($db, "SET NAMES utf8");
            
                // поиск пользователя
            $sql = mysqli_query($db, "SELECT `id` FROM `users` WHERE `log` = '".$login."' AND `parol` = '".$password."' LIMIT 1") or die (mysqli_error($db));
            
            $row_count = mysqli_num_rows($sql);
            if ($row_count == 0) {
                echo "Пользователя с такими данными нет. Проверте введенные данные.";
            } else {
                $_SESSION['log'] = $login;
                $_SESSION['parol'] = $password;
            }
        }
    
}
0
1 / 1 / 1
Регистрация: 01.12.2015
Сообщений: 101
07.12.2015, 18:24  [ТС] 20
Нашел скрипт, который заработал. Спасибо всем, кто отозвался.
0
07.12.2015, 18:24
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.12.2015, 18:24
Помогаю со студенческими работами здесь

Ошибка при создании события для кнопки
Button bt1 = new Button(); bt1.Content = &quot;Кнопка 2&quot;; bt1.Width = 180;...

Потеря данных скрипта при создании GameObject
Объясните мне. У меня есть в игре уже обьект спрайт кубик в нём есть скрипты в которых уже по игра...

Ошибка при создании поиска для документа xml
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Ошибка при создании сигнала для нажатие на виджет
Дорой ночи. Сидел писал код, все было прекрасно, а потом ни с того ни с сего куча ошибок, и я не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru