[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблема с скриптом регистрации
php-doctor
Пишу скрипт регистрации .
Файл register.php - это форма для ввода данных . После того как ввожу её оно вместо того , чтоб закинуть данные выбивает ошибку в 28 строке файла reg.php .
Вот скрипт файла register.php ^
<html>
<
head>
<
title>Регистрация</title>
</
head>

<
body>
<?php
include ('for.php') ;
?>
<table><tr>
<
form method="post" action="reg.php">
<
td> Логин: </td><td><font color='red'>*</font>
<
input name="login" type="text"></td></tr>
<
t><td> Имя: </td><td><font color="red">*</font>
<
input name="name" type="text"></td></tr>
<
tr><td> Ник: </td><td>  
<input name="nik" type="text"> </td></tr>
<
tr><td> E-mail: </td><td><font color="red">*</font>
<
input name="email" type="text"> </td></tr>
<
t><td> Пароль: </td><td><font color="red">*</font>
<
input name="password" type="password"></td></tr>
<
tr><td> Повтор пароля: </td><td><font color="red">*</font>
<
input name="pass" type="password"></td></tr>
<
tr><td><input type="submit" value="Зарегистрироваться"> </td>
<
td><input type="reset" value="Отмена"> </td></tr>
</
form>
</
table>
<
br />
<
p><b><font color="blue"> Поля , отмеченные звёздочкой , заполнять обязательно! </font></b></p>
</
body>

</
html>

А вот файла reg.php , где и видит ошибку в 28 строке . :
<?php
function
help() {
if ($_POST['login']==""){
echo "<br /><strong> Поле Логин не заполнено </strong>";
exit();
}
if ($_POST['name']==""){
echo "<br /><strong> Поле Имя не заполнен </strong>";
exit();
}
if ($_POST['email']==""){
echo "<br /><strong> Поле E-MAIL не заполнено </strong>";
exit();
}
if ($_POST['password']==""){
echo "<br /><strong> Поле Пароль не заполнено </strong>";
exit();
}
if ($_POST['pass']==""){
echo "<br /><strong> Поле Повтор Пароля не заполнено </strong>";
exit();
}
}

echo help();
function check () {
$login=$_POST['login'];
$name=$_POST['name];
$email=$_POST['
email'];
$password=$_POST['
password'];
$pass=$_POST['
pass];

$regular='/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,4})/';
$preg_match($regular,$email);
if($result==true){
if($password===$pass){
$mdPass=md5($password);
include ('connect.php');
insert($login,$name,$_POST['nik'],$email,$mdPass);
echo "<br /> Успешно добавлено";
exit();
}
else
{ echo "Пароли не совпадают";
exit();
}
else {
echo "Некорректный мейл";
exit();
}
}

echo check();
?>

Помогите плиз , а то не пойму , в чём дело . Есть ещё файл connect.php :
<?php
function
select (){
$query="SELECT * FROM reg";
$result=mysql_querry($querry) or die (mysql_error());
}
function insert ($login,$name,$nik,$email,$password) {
$query=" INSERT INTO reg(login,name,nik,email,password)
VALUES('login','
$name','$nik','$email','$password')";
}
?>

Заранее благодарю .



Спустя 28 минут, 1 секунда (12.06.2011 - 01:51) Игорь_Vasinsky написал(а):
function check () 
{
$login=$_POST['login'];
$name=$_POST['name];
$email=$_POST['
email'];
$password=$_POST['
password'];
$pass=$_POST['
pass];


ковычки не любишь больно то закрывать? (через строчку).

а это и аналоги
Цитата
if ($_POST['login'] =="")

можно заменить на
if (empty(trim($_POST['login']))

вдруг те отправят 3 пробела ;)

это
Цитата
if($result==true)

достаточно:
if($result)


exit() - останавливает выполнение всех последующих скриптов.

и вообще перемудрёно всё для новичка.

Спустя 6 минут, 40 секунд (12.06.2011 - 01:58) inpost написал(а):
Игорь_Vasinsky
0 - вернёт EMPTY = TRUE, а ="" - вернёт false +)

Спустя 13 часов, 47 минут, 4 секунды (12.06.2011 - 15:45) Игорь_Vasinsky написал(а):
ты это к чему?

разве :

empty(trim($_POST)), если тправить пробелы не вернёт TRUE ?

Спустя 4 минуты, 50 секунд (12.06.2011 - 15:50) neadekvat написал(а):
Цитата (Игорь_Vasinsky @ 12.06.2011 - 16:45)
empty(trim($_POST)), если тправить пробелы не вернёт TRUE ?

Если отправить нули, то будет true, а это уже неправильно, ибо ноль может быть вполне себе корректным данным.

Спустя 32 минуты, 37 секунд (12.06.2011 - 16:22) Потрашитель написал(а):
<?php
function help() {
if ($_POST['login']==""){
echo "<br /><strong> Поле Логин не заполнено </strong>";
exit();
}
if ($_POST['name']==""){
echo "<br /><strong> Поле Имя не заполнен </strong>";
exit();
}
if ($_POST['email']==""){
echo "<br /><strong> Поле E-MAIL не заполнено </strong>";
exit();
}
if ($_POST['password']==""){
echo "<br /><strong> Поле Пароль не заполнено </strong>";
exit();
}
if ($_POST['pass']==""){
echo "<br /><strong> Поле Повтор Пароля не заполнено </strong>";
exit();
}
}
echo help();
function check () {
$login=$_POST['login'];
$name=$_POST['name];
/*
не закрыл ковыки
*/
$email=$_POST['email'];
$password=$_POST['password'];
$pass=$_POST['pass];
/*
и тут не закрыл ковыки
*/

$regular='/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,4})/';
$preg_match($regular,$email);
if($result==true){
if($password===$pass){
$mdPass=md5($password);
include ('connect.php');
insert($login,$name,$_POST['nik'],$email,$mdPass);
echo "<br /> Успешно добавлено";
exit();
}
else
{ echo "Пароли не совпадают";
exit();
}
else {
echo "Некорректный мейл";
exit();
}
}
echo check();
?>

Спустя 9 минут, 46 секунд (12.06.2011 - 16:32) neadekvat написал(а):
Свернутый текст
Потрашитель, чегой то у тебя ник то с ошибкой? Не любишь ты себя.

Спустя 6 часов, 14 минут, 6 секунд (12.06.2011 - 22:46) php-doctor написал(а):
и всё равно пишет ошибку в 46 строке...

Спустя 10 минут, 24 секунды (12.06.2011 - 22:57) inpost написал(а):
php-doctor
А показать строчку 46 и 45? А показать, что за ошибка?

Спустя 8 минут, 43 секунды (12.06.2011 - 23:05) php-doctor написал(а):
с 46 по 51 строку
else {
echo "Некорректный мейл";
exit();
}
}

echo check();

Спустя 2 минуты, 57 секунд (12.06.2011 - 23:08) neadekvat написал(а):
Кроме строки просили еще и саму ошибку показать.

Спустя 1 минута, 22 секунды (12.06.2011 - 23:10) php-doctor написал(а):

Спустя 55 секунд (12.06.2011 - 23:11) php-doctor написал(а):
это скрипт reg.php
<?php
function
help() {
if ($_POST['login']==""){
echo "<br /><strong> Поле Логин не заполнено </strong>";
exit();
}
if ($_POST['name']==""){
echo "<br /><strong> Поле Имя не заполнен </strong>";
exit();
}
if ($_POST['email']==""){
echo "<br /><strong> Поле E-MAIL не заполнено </strong>";
exit();
}
if ($_POST['password']==""){
echo "<br /><strong> Поле Пароль не заполнено </strong>";
exit();
}
if ($_POST['pass']==""){
echo "<br /><strong> Поле Повтор Пароля не заполнено </strong>";
exit();
}
}

echo help();
function check () {
$login=$_POST['login'];
$name=$_POST['name'];
$email=$_POST['email'];
$password=$_POST['password'];
$pass=$_POST['pass'];

$regular='/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,4})/';
$preg_match($regular,$email);
if($result==true){
if($password===$pass){
$mdPass=md5($password);
include ('connect.php');
insert($login,$name,$_POST['nik'],$email,$mdPass);
echo "<br /> Успешно добавлено";
exit();
}
else
{ echo "Пароли не совпадают";
exit();
}
else {
echo "Некорректный мейл";
exit();
}
}

echo check();



?>

Спустя 1 минута, 2 секунды (12.06.2011 - 23:12) inpost написал(а):
php-doctor
Не буду открывать из принципов, вдруг там вирус.

Спустя 4 минуты, 34 секунды (12.06.2011 - 23:16) php-doctor написал(а):
Parse error: syntax error, unexpected T_ELSE in /www/elitno.net/g/a/gamez/home/site/reg.php on line 46

Спустя 1 минута, 54 секунды (12.06.2011 - 23:18) php-doctor написал(а):
заметьте в конце у меня два раза else почему-то получилось

Спустя 4 минуты, 27 секунд (12.06.2011 - 23:23) neadekvat написал(а):
У тебя код всмятку - расставь отступы (например, с помощью этого), а так - хрен найдешь, где скобку не закрыл или else лишний поставил.

Спустя 5 минут, 37 секунд (12.06.2011 - 23:28) php-doctor написал(а):
<?php 
function
help()
{

if($_POST['login'] == "")
{
echo "<br /><strong> Поле Логин не заполнено </strong>";
exit();
}

if($_POST['name'] == "")
{
echo "<br /><strong> Поле Имя не заполнен </strong>";
exit();
}

if($_POST['email'] == "")
{
echo "<br /><strong> Поле E-MAIL не заполнено </strong>";
exit();
}

if($_POST['password'] == "")
{
echo "<br /><strong> Поле Пароль не заполнено </strong>";
exit();
}

if($_POST['pass'] == "")
{
echo "<br /><strong> Поле Повтор Пароля не заполнено </strong>";
exit();
}
}

echo help();
function check()
{
$login = $_POST['login'];
$name = $_POST['name'];
$email = $_POST['email'];
$password = $_POST['password'];
$pass = $_POST['pass'];
$regular = '/([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z]{2,4})/';
$preg_match($regular, $email);

if($result == true)
{

if($password === $pass)
{
$mdPass = md5($password);
include ('connect.php');
insert($login, $name, $_POST['nik'], $email, $mdPass);
echo "<br /> Успешно добавлено";
exit();
}
else
{
echo "Пароли не совпадают";
exit();
}
else
{
echo "Некорректный мейл";
exit();
}
}

echo check();
?>

Спустя 12 минут, 13 секунд (12.06.2011 - 23:40) neadekvat написал(а):
Берем строки после "function check()". Считаем открывающиеся фигурные кавычки: их 5. Считаем закрывающиеся: их 4. Ищи, где потерял.

Спустя 5 минут, 8 секунд (12.06.2011 - 23:46) php-doctor написал(а):
спс , дружище

Спустя 2 минуты, 1 секунда (12.06.2011 - 23:48) php-doctor написал(а):
поставил нужную ковычку , но опять пишет ошибку

Спустя 15 минут, 58 секунд (13.06.2011 - 00:04) Игорь_Vasinsky написал(а):
у тя 2 ELSE подряд в конце кода. Ты что не видишь?

UPD: у тя в конце должен проериться email на корректность по ркгулярке:
$preg_match($regular, $email);

Потеряно начало условия if.

предпологаю, что
Цитата
$preg_match($regular, $email);

должно быть записано как:
$email_valid = preg_match($regular, $email);

и след-но:
if($result == true)        
{
if($password === $pass)
{
$mdPass = md5($password);
include ('connect.php');
insert($login, $name, $_POST['nik'], $email, $mdPass);
echo "<br /> Успешно добавлено";
exit();
}
else
{
echo "Пароли не совпадают";
exit();
}

if(!$email_valid)
{
echo "Некорректный мейл";
exit();
}
}

echo check();

Спустя 11 минут, 7 секунд (13.06.2011 - 00:15) Игорь_Vasinsky написал(а):
Но тока в связи с этим:

if($result == true)        
{
if($password === $pass)
{
$mdPass = md5($password);
include ('connect.php');
insert($login, $name, $_POST['nik'], $email, $mdPass);

echo "<br /> Успешно добавлено";
exit();
}
else
{
echo "Пароли не совпадают";
exit();
}


до провеки мыла (последний IF) - дело то не дойдёт, тя что true, что false - везде сразу exit() ;)

Спустя 19 минут, 3 секунды (13.06.2011 - 00:34) allplayer написал(а):
$name=$_POST['name];
А надо $name=$_POST['name'];

'-потерял

Спустя 14 минут, 22 секунды (13.06.2011 - 00:48) Игорь_Vasinsky написал(а):
я уже ему писал - там через строчку токая х... была.

Спустя 2 минуты, 13 секунд (13.06.2011 - 00:50) allplayer написал(а):
Подожди до завтра. я сделаю тебе

Спустя 3 минуты, 14 секунд (13.06.2011 - 00:54) Игорь_Vasinsky написал(а):
с барского плеча. wink.gif
лучше учить и учиться, чем делать всё за других.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.