Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 3
1

Подскажите, где в скрипте регистрационной формы я ошибаюсь!

14.02.2011, 13:45. Просмотров 668. Ответов 5
Метки нет (Все метки)

Значит так. Имеется 3 файла:
Это сама форма, которую я соответственно вставила в свою страницу:
<table>
<form action="reg.php" method="POST">
<tr>
<td>Имя</td>
<td><input type="text" name="login" ></td>
</tr>
<tr>
<td>Пароль</td>
<td><input type="password" name="password" ></td>
</tr>
<tr>
<td>Повторите пароль</td>
<td><input type="password" name="password2"></td>
</tr>
<tr>
<td>Email</td>
<td><input type="text" name="email"></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="OK" name="submit" ></td>
</tr>
</form>
</table>

Далее, уже со своими данными, кроме пароля)))) эти файлы я пробовала загружать в корень (файлы даны целиком).
1) Reg.php:
<?
include_once("connect.php");
if (isset($_POST['submit']))
{
if(empty($_POST['login']))
{
echo 'Вы не ввели логин';
}
elseif(empty($_POST['password']))
{
echo 'Вы не ввели пароль';
}
elseif(empty($_POST['password2']))
{
echo 'Вы не ввели подтверждение пароля';
}
elseif($_POST['password'] != $_POST['password2'])
{
echo 'Введенные пароли не совпадают';
}
elseif(empty($_POST['email']))
{
echo 'Вы не ввели E-mail';
}
else
{
$login = $_POST['login'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
";
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql) > 0)
{
echo 'Такой логин уже существует';
}

else
{
$query = "INSERT INTO u1422069_default(login , password , email )
VALUES ('$login', '$password', '$email')";
$result = mysql_query($query) or die(mysql_error());;
echo 'Регистрация успешно прошла';
}
}
}
?>

2) connect.php:

<?php
$dblocation = "127.0.0.1";
$dbname = "u1422069_default";
$dbuser = "u1422069_default";
$dbpasswd = "*********";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
echo( "<P> В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно. </P>" );
exit();
}
if (!@mysql_select_db($dbname, $dbcnx))
{
echo( "<P> В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно. .</P>" );
exit();
}
?>

Вроде как всё. База данных само собой создана, в скрипт значения подставлены.
Но НЕ ПАШЕТ! БЕЛЫЙ ЭКРАН И ВСЁ, а база данных пуста!!!

Добавлено через 2 минуты
FROM `users` я заменила, только забыла здесь, когда вылаживала исправить на FROM `u1422069_default`
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.02.2011, 13:45
Ответы с готовыми решениями:

Тестирование регистрационной формы
Здравствуйте. Сделал регистрационную форму в своей программе. Для полноценного теста сохранения...

Сессии. Где я ошибаюсь?
Начал разбираться с сессиями, кукисами. Планируется сделать 3 защищённых страницы, получается...

Объясните, где я ошибаюсь?
Прошу извинить, что касаюсь &quot;вечного&quot; двигателя второго рода. Но мне важно понять, в чём моя...

Поправьте где ошибаюсь
Добрый день/вечер! Не могу понять в чем проблема, подскажите как решить using...

5
222 / 180 / 5
Регистрация: 12.01.2009
Сообщений: 1,095
14.02.2011, 13:50 2
что то подсказывает , что белый экран - неправильная работа с бд. Беглым просмотром только вот это косяк заметил.
PHP
1
$result = mysql_query($query) or die(mysql_error());;
уберите одну ;
и сделайте var_dump() на каждый запрос в базу.
0
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 3
14.02.2011, 14:20  [ТС] 3
Впервые с таким сталкиваюсь, что-то типа так...

<?
include_once("connect.php");
if (isset($_POST['submit']))
{
if(empty($_POST['login']))
{
echo 'Вы не ввели логин';
}
elseif(empty($_POST['password']))
{
echo 'Вы не ввели пароль';
}
elseif(empty($_POST['password2']))
{
echo 'Вы не ввели подтверждение пароля';
}
elseif($_POST['password'] != $_POST['password2'])
{
echo 'Введенные пароли не совпадают';
}
elseif(empty($_POST['email']))
{
echo 'Вы не ввели E-mail';
}
else
{
$login = $_POST['login'];
$password = $_POST['password'];
$password2 = $_POST['password2'];
$email = $_POST['email'];
$query = "SELECT `id`
FROM `u1422069_default`
WHERE `login`='{$login}' AND `password`='{$password}'
";
$sql = mysql_query($query);
var_dump( $sql );
var_dump( mysql_num_rows( $sql ) );
}

else
{
$query = "INSERT INTO u1422069_default(login , password , email )
VALUES ('$login', '$password', '$email')";
$result = mysql_query($query) or die(mysql_error());;
echo 'Регистрация успешно прошла';
}
}
}
?>
0
191 / 191 / 31
Регистрация: 04.10.2010
Сообщений: 505
14.02.2011, 15:11 4
Первое, что мне "бросилось" в глаза это
PHP
1
2
3
4
$query = "SELECT `id`
FROM `users`
WHERE `login`='{$login}' AND `password`='{$password}'
";
Для проверки логина вот это " AND `password`='{$password}'" не нужно. Это надо будет при авторизации.

Ну и наверное сама ошибка находится тут...
HTML5
1
<form action="reg.php" method="POST">
и
1) Reg.php:
Дело в том что *nix системы к регистру относятся очень "серьёзно")))
Переведи название файла в нижний регистр -> reg.php
0
26 / 26 / 3
Регистрация: 03.04.2010
Сообщений: 206
14.02.2011, 15:51 5
Первое и ОЧЕНЬ важное
ваш скрипт не читабелен
когда выкладываете постарайтесь чтоб другие его тож могли прочитать
для примера вот такой форматер есть на другом ресурсе
по изучайте
второе где вы взяли переменные
они у вас обьявлены или (инициализированы===>правильнее сказать)
инициализация выглядит так в начале вашего скрипа или другом файле через
include

PHP
1
2
$mail_2 = !empty($_POST['mail_2'])        ? $_POST['mail_2'] : NULL; 
$vvv = !empty($_POST['vvv'])              ? $_POST['vvv'] : NULL;
и все остальные переменные так-же
вот ваша строчка include_once("connect.php");
так будет лучше
include 'connect.php';

РS. ошибок куча не знаю с какой и начать как логические так и синтаксические

Добавлено через 12 минут
вот ваш код так ведь нагляднее ДА?
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
<?php 
    include_once ("connect.php");
    
    if(isset($_POST['submit']))
    {
        
        if(empty($_POST['login']))
        {
            echo 'Вы не ввели логин';
        }
        elseif(empty($_POST['password']))
        {
            echo 'Вы не ввели пароль';
        }
        elseif(empty($_POST['password2']))
        {
            echo 'Вы не ввели подтверждение пароля';
        }
        elseif($_POST['password'] != $_POST['password2'])
        {
            echo 'Введенные пароли не совпадают';
        }
        elseif(empty($_POST['email']))
        {
            echo 'Вы не ввели E-mail';
        }
        else 
        {
            $login = $_POST['login'];
            $password = $_POST['password'];
            $password2 = $_POST['password2'];
            $email = $_POST['email'];
            $query = "SELECT `id` 
FROM `users` 
WHERE `login`='{$login}' AND `password`='{$password}' 
";
            $sql = mysql_query($query) or die(mysql_error());
            
            if(mysql_num_rows($sql) > 0)
            {
                echo 'Такой логин уже существует';
            }
            else 
            {
                $query = "INSERT INTO u1422069_default(login , password , email ) 
VALUES ('$login', '$password', '$email')";
                $result = mysql_query($query) or die(mysql_error());
                ;
                echo 'Регистрация успешно прошла';
            }
        }
    }
    ?>
 
2) connect.php:
 
<?php $dblocation = "127.0.0.1";
    $dbname = "u1422069_default";
    $dbuser = "u1422069_default";
    $dbpasswd = "*********";
    $dbcnx = @mysql_connect($dblocation, $dbuser, $dbpasswd);
    
    if(!$dbcnx)
    {
        echo ("<P> В настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно. </P>");
        exit();
    }
    
    if(!@mysql_select_db($dbname, $dbcnx))
    {
        echo ("<P> В настоящий момент база данных не доступна, поэтому корректное отображение страницы невозможно. .</P>");
        exit();
    }
?>
0
0 / 0 / 0
Регистрация: 14.02.2011
Сообщений: 3
14.02.2011, 18:15  [ТС] 6
Ребята, Вам огромное спасибо)))))))
Исправила!!!! Работает. Сразу видно - профессионалы!!!!!!!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2011, 18:15

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не отправляются данные из регистрационной формы в БД
Вопрос далеко не новый, но я его не могу решить уже больше суток. Данный просто не хотят залетать в...

Экранный буфер консоли, где я ошибаюсь?
Вот код: #include &lt;windows.h&gt; #include &lt;iostream&gt; using namespace std; HANDLE hStdin,...

Надо из регистрационной формы по нажатию на кнопку записать данные в файл
Было похожее. У формы добавить атрибут: enctype=&quot;multipart/form-data&quot;

При заполнении пользователем регистрационной формы, необходимо высылать ему e-mail с подтверждением
При заполнении пользователем регистрационной формы, необходимо высылать ему e-mail с...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.