[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Скрипт регистрации + авторизация
12345
Вот хочу написать максимально защищенный скрипт авторизации и регистрации.

Прошу ваших советов, что как лучше сделать?



register.php
<? include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?><h1><center>Регистрация<br></center></h1><?

if(isset($_POST['submit']))
{
$name=trim($_POST['name']);
$cpassword=trim($_POST['cpassword']);
$email=trim($_POST['email']);
$pass=trim($_POST['pass']);
$r=trim($_POST['r']);
$pol=intval($_POST['pol']);
$capcha=intval($_POST['capcha']);


if($pol != 1 and $pol !=2 ) { $pol=3;}

if($pol==3) { echo "<h1><center>ОШИБКА!!!<br><br></center></h1>";}
else
{

if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
if($pol == 2)
{
$sex="/images/d.png";
$pol=d;
}

if($email==NULL|$pass==NULL|$pol==NULL|$capcha==NULL|$name==NULL|$cpassword==NULL)
{
$er_reg_us='1';// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($pass) < 6 or strlen($pass) > 12)
{
$er_reg_us='10';// echo" Пароль должен содержать от 6 до 12 символов";
}
else
{
if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
$er_reg_us='2';// echo"Ошибка ввода Пароля";
}
else
{

if(!preg_match("/^[a-zA-Z]+$/",$name))
{
if($pass==$cpassword)
{
if($capcha==$_SESSION['summa_capcha'])
{
$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);

if ($valid_email == false)
{
$er_reg_us='3';// echo"Ошибка ввода E-mail";
}
else
{



$query = "SELECT * FROM pol WHERE emails='".mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($sql))
{
$er_reg_us='4';// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT * FROM pol WHERE ips='".mysql_real_escape_string($ips)."'
"
;
$sql2 = mysql_query($query2) or die(mysql_error());

if (mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
$er_reg_us='5';// echo"Такой IP уже зареган";
}

else
{

if($r!==NULL)
{


$valid_email_r = filter_var($r, FILTER_VALIDATE_EMAIL);

if($valid_email_r == false)
{
$er_reg_us='7';// echo"Ошибка ввода E-mail приглашенного";
}
else
{

$reg_r = mysql_query("SELECT * FROM pol WHERE emails='".mysql_real_escape_string($r)."'
"
);
if(mysql_num_rows($reg_r))
{

$r2_bd = mysql_query("SELECT * FROM pol WHERE emails='".mysql_real_escape_string($r)."'
"
);
$r2_bd = mysql_fetch_array($r2_bd);
$r2=$r2_bd['r1'];
mysql_query("update pol set ref1 = ref1 + 1 where emails='$r'");
mysql_query("update pol set ref2 = ref2 + 1 where emails='$r2'");
$ttt=preg_replace("/newref/","$email",$conf_prov_bd['text_ref']);
$ttt=preg_replace("/priglasil/","$r",$ttt);

$tttt=preg_replace("/level/","1",$ttt);
mysql_query("INSERT INTO izv(login, date, zag, text) VALUES ('".$r."','".$datesss."','".$conf_prov_bd[zag_ref]."','".$tttt."')");
$tttt=preg_replace("/level/","2",$ttt);
mysql_query("INSERT INTO izv(login, date, zag, text) VALUES ('".$r2."','".$datesss."','".$conf_prov_bd[zag_ref]."','".$tttt."')");
$tttt=preg_replace("/level/","3",$ttt);
}
else

{
$er_reg_us='8';// echo" не найден учасник пригласивший вас";
} }


}


$pass=md5(md5($pass));

$query3 = "INSERT INTO pol(avas, sax, emails, passs, ips, r1, r2, names) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($r)."'
,'"
.mysql_real_escape_string($r2)."'
,'"
.mysql_real_escape_string($name)."'
)"
;
$result = mysql_query($query3) or die(mysql_error());;

unset($_SESSION['summa_capcha']);

$er_reg_us='6';// echo"Спасибо, вы зареганы";


}
}
}

}

else
{
$er_reg_us='11';// echo"Неверно решен пример";
}
}

else
{
$er_reg_us='12';// echo"Пароли не совподают";
}
}

else
{
$er_reg_us='13';// echo"Ошибка ввода Имени";
}
}
}
}


if($er_reg_us=='1') { echo "<h1><center>Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='2') { echo "<h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='3') { echo "<h1><center>Ошибка! E-mail введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='4') { echo "<h1><center>Ошибка! Такой E-mail уже существует.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='5') { echo "<h1><center>Ошибка! Такой IP уже зареган.<br><br></center></h1>"; }
if($er_reg_us=='6') { echo "<h1><center>Спасибо, вы зареганы.<br><br></center></h1>"; }
if($er_reg_us=='7') { echo "<h1><center>Ошибка! E-mail приглашенного введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='8') { echo "<h1><center>Ошибка! Не найден учасник пригласивший вас.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='9') { echo "<h1><center>Ошибка! Учасник пригласивший вас не активировал аккаунт.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='10') { echo "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>"; }
if($er_reg_us=='11') { echo "<h1><center>Ошибка! Неверно решен пример</a></h2></center>"; }
if($er_reg_us=='12') { echo "<h1><center>Ошибка! Пароли не совподают</a></h2></center>"; }
if($er_reg_us=='13') { echo "<h1><center>Ошибка! Имя содержит недоступные символы.</a></h2></center>"; }



include('footer.php');
} }
else
{
?>


<?
if(isset($_GET['r'])) { $rrr=htmlentities($_GET['r']); } ?>
<center>
<form
action="" method="POST">
<table
width="395" border="0" align="center">
<tr>
<td
width="145" align="left"><p>
<label>
E-mail:</label>
</label></p></td>
<td
width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</tr>

<tr>
<td
width="145" align="left"><p><label>Имя:</label></label></p></td>
<td
width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</tr>


<tr>
<td
width="145" align="left"><p><label>Пароль:</label></label></p></td>
<td
width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</tr>
<tr>
<td
width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<td
width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</tr>
<tr>
<td
width="145" align="left"><p><label>Пол:</label></p></td>
<td
width="250" align="left"><select name="pol">
<option
value="1">мужской</option>
<option
value="2">женский</option>
</select></td>
</tr>
<tr>
<td
width="145" align="left"><p><label>Кто пригласил:</label></p></td>
<td
width="250" align="left"><input type="text" size="25" maxlength="13" <? if(isset($_GET['r'])) {echo " value='$rrr' "; } ?> name="r" class="field" value="" tabindex="1"></td>
</tr>
<tr>
<td
width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>
<td
width="250" align="left"><input type="text" size="25" maxlength="2" <? if(isset($_GET['r'])) {echo " value='$rrr' "; } ?> name="capcha" class="field" value="" tabindex="1"></td>
</tr>
<tr>
<td
width="145" align="left"> </td>
<td
width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</tr>
</table><br />

</form>
<br />
<br />
<br />
<br />

<?
include('footer.php');} ?>





vhod.php


<? include('config.php'); include('str.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже авторизованы!!!<br><br></center></h1>";
include('footer.php');
exit();
}

if(isset($_GET['email']) and $_GET['email']==$_SESSION['podtv'] and $_GET['opt']=='podtv')
{

$pin_email = generatePassword(15);

// ---------------- Этот код отправляем на почту
echo "$url/vhod_ban.php?login=$_GET[email]&opt=podtv&pin=$pin_email <br>";

// Это ссылка в письмо /vhod_ban.php?login=$email&pin=$pin_email

$PIN_KOD = md5(md5($pin_email));
mysql_query("update pol set PIN_KOD='$PIN_KOD', stat_pin='2' where emails='".mysql_real_escape_string($_GET[email])."'
"
);


unset($_SESSION['podtv']);
echo"$PIN_KOD<h1><center>Письмо выслано<br><br></center></h1>";
include('footer.php');
exit();
}

if (isset($_POST['email']) && isset($_POST['pass']))
{
$email = trim($_POST['email']);
$password = trim($_POST['pass']);

if(strlen($password) < 6 or strlen($password) > 12)
{
echo"<p><h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1></p><br />";
include('footer.php');
exit();
}
else
{

$opschee=$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'];


$pppaaasss=generatePassword(15)."n";////// хэш


$usvh = mysql_query("SELECT * FROM pol WHERE emails='".mysql_real_escape_string($email)."'");
$usvh = mysql_fetch_array($usvh);
$popitki=$usvh['popitki'];

if($usvh['popitki']>=3)
{
$pin_email = generatePassword(15);

// ---------------- Этот код отправляем на почту
echo "$url/vhod_ban.php?login=$email&opt=ban&pin=$pin_email <br>";

// Это ссылка в письмо /vhod_ban.php?login=$email&pin=$pin_email

$PIN_KOD = md5(md5($pin_email));
mysql_query("update pol set PIN_KOD='$PIN_KOD', stat_pin='1' where emails='".mysql_real_escape_string($email)."'
"
);

echo"<h1><center>Вы сделали 3 ошибки. Чтобы попробывать ввести еще пароль, пройдите по ссылке в письме.<br><br></center></h1>";
include('footer.php');
exit();
}
else
{

if($usvh['passs'] == md5(md5($password)))
{
if($usvh['stat_emails']=='1')
{
$_SESSION['podtv'] = $email;
echo"<p><h1><center>Вы не подтвердили email, для подтверждения пройдите по ссылке в письме <a href='vhod.php?email=$email&opt=podtv'>Выслать</a><br><br></center></h1></p><br />";
include('footer.php');
exit();
}
else
{
$_SESSION['email'] = $email;
$_SESSION['password'] = md5(md5($password));
$_SESSION['pppaaasss'] = $pppaaasss;

mysql_query("update pol set kashs='$pppaaasss', iippss='$opschee', popitki='0' where emails='".mysql_real_escape_string($email)."'
"
);

?>
<script
type="text/javascript">
location.replace("/profile.php");
</script><noscript>
<meta
http-equiv="refresh" content="0; url=/profile.php">
</noscript>
<?
}
}

else
{

mysql_query("update pol set popitki=popitki+1 where emails='".mysql_real_escape_string($email)."'
"
);
echo"<p><h1><center>Данные введены не верно <br><br></center></h1></p><br />";
include('footer.php');
exit();

}
} }
}

echo"<p><h1><center>Ошибка <br><br></center></h1></p><br />";
include('footer.php');
?>


str.php

<? 
function
generatePassword($length = 32){
$chars = 'abdefhiknrstyzABDEFGHKNQRSTYZ23456789';
$numChars = strlen($chars);
$string = '';
for ($i = 0; $i < $length; $i++) {
$string .= substr($chars, rand(1, $numChars) - 1, 1);
}
return $string;
}
?>






Спустя 16 минут, 58 секунд (10.06.2012 - 20:29) 12345 написал(а):
ну... и..??? чего не коментим то?????

Спустя 8 минут, 48 секунд (10.06.2012 - 20:38) m4a1fox написал(а):
А что коментить???? 100500 строк кода? Ха, да вы гоните товарищ

Спустя 3 минуты, 42 секунды (10.06.2012 - 20:42) m4a1fox написал(а):
Кстати. К коду я пригляделся... В общем - вам еще практиковаться и практиковаться. Код далек от норм. Идеалом там и не пахнет.... А вот до норм чуть ближе.

Спустя 1 минута, 46 секунд (10.06.2012 - 20:44) 12345 написал(а):
Что именно не так?
Какие строки? покажите

Спустя 3 минуты, 20 секунд (10.06.2012 - 20:47) m4a1fox написал(а):
12345
Позже могу показать. Я с планшетника. На нем сделать это не удобно smile.gif что могу посоветовать: отдели HTML от php

Спустя 1 минута, 7 секунд (10.06.2012 - 20:48) 12345 написал(а):
Для чего? какая разница то?

Спустя 33 минуты, 12 секунд (10.06.2012 - 21:21) inpost написал(а):
А он вообще работает? Запустился код?!

Спустя 6 минут, 58 секунд (10.06.2012 - 21:28) 12345 написал(а):
да, всё работает без ошибок. Я делал сайт, вот решил посаветоватся с вами что поправить

Спустя 39 секунд (10.06.2012 - 21:29) razoramus написал(а):
По вёрстке - теги <center></center> давно считаются устаревшими (заменяется стилями).
--
По коду, вроди, если я не ошибаюсь в памяли, exit(); лучше заменить на die(mysql_error()); , так как exit при ошибке прекращает работу последующего скрипта.

Спустя 2 минуты, 23 секунды (10.06.2012 - 21:31) 12345 написал(а):
Цитата
exit(); лучше заменить на die(mysql_error());

хм... Кто как еще думает? user posted image

Спустя 4 минуты, 22 секунды (10.06.2012 - 21:36) razoramus написал(а):
Цитата
echo"<p><h1><center>Вы не подтвердили email, для подтверждения пройдите по ссылке в письме <a href='vhod.php?email=$email&opt=podtv'>Выслать</a><br><br></center></h1></p& amp; amp; gt;<br />";

По вёрстке: тег <br> в первом документе стоит без слеша, а в данном коде с ним. Вопрос, Доктайп какой указан?

Далее по скрипту. echo лучше использовать в одинарных ковычках для облегчения кода и при вставке переменных в код использовать конкатенацию, то есть ->
<?php echo '<a href='vhod.php?email='. $email .'&opt=podtv'>Выслать</a>'; ?>


Собственно пока всё..

UPD:
И да, про оформление мы походу ничё не знаем?! Ну это так, к слову :)

<?php
echo '
<p>
<h1 style="text-align: center;">Вы не подтвердили email, для подтверждения пройдите по ссылке в письме <a href="vhod.php?email='
. $email .'&opt=podtv">Выслать</a></h1>
<br>
<br>
</p>
<br>
'
;
?>

Хотябы так. Только непонятно зачем слоко <br>, если можно задать класс и в стилях прописать всё что надо(выравнивание, отступы и т.д.), так же проще и современней.

Спустя 6 минут, 51 секунда (10.06.2012 - 21:42) 12345 написал(а):
Цитата
<?php echo '<a href='vhod.php?email='. $email .'&opt=podtv'>Выслать</a>'; ?>

ХАХАХАХАХХАХАХАХАХ user posted image
Что за хрень??????? Откуда ты эту инфу взял то??????? Если все данные echo берутся в такие ' ковычки, то внутри ковычки будут только такие " , или наоборот.

Спустя 1 минута, 27 секунд (10.06.2012 - 21:44) 12345 написал(а):
Цитата
По вёрстке:

Про верстку мне ничего ненадо. Я буду менять шаблон и весь html заменять

Спустя 4 минуты, 34 секунды (10.06.2012 - 21:48) razoramus написал(а):
Цитата (12345 @ 10.06.2012 - 18:42)
Если все данные echo берутся в такие ' ковычки, то внутри ковычки будут только такие " , или наоборот.

Само собой, что если использовать одинарные ковычки, то при втавке ссылок, картинок и прочих не нужно переписывать ковычки на одинарные и париться из-за этого. А по скрипту, ну высказал своё мнение. Скоро народ подтянется, может что кто и выскажет. smile.gif

Спустя 3 минуты, 9 секунд (10.06.2012 - 21:52) 12345 написал(а):
Цитата
Скоро народ подтянется, может что кто и выскажет.

Надеюь на это. А то написал, с моей стороны то кажется всё отлично, но может кто посаветует что... хочу критики)

Спустя 4 минуты, 50 секунд (10.06.2012 - 21:56) inpost написал(а):
Советовать... стиль оформи нормально, нереально читать, когда всё так криво...
И тоже непонятна сама удивительная логика, зачем тебе в данном случае необходимо устанавливать биты... зачем с битами работаешь...

Спустя 2 минуты, 27 секунд (10.06.2012 - 21:59) inpost написал(а):
Но................................................................................................
..................................Для................................Начала..................
.........тебе............стоит.........немного..............................обратить.
взор............на..............................................................................
....................................................................................................
то........................ , ..........................................................как ты..
пишешь и общаешься.............................................................с.....
.................................................системой......................................

Тебе..............................................................................................
...................удобно..............................................читать такую......
.......................................................................................кашу?.....
Лично мне........................ - ..................нет....................................

Спустя 1 минута, 2 секунды (10.06.2012 - 22:00) 12345 написал(а):
inpost, Какие биты?

Спустя 10 минут, 29 секунд (10.06.2012 - 22:10) neadekvat написал(а):
Сначала советчику.

Цитата (razoramus @ 10.06.2012 - 22:29)
По коду, вроди, если я не ошибаюсь в памяли, exit(); лучше заменить на die(mysql_error()); , так как exit при ошибке прекращает работу последующего скрипта.

die - это та же функция exit, только называется по-другому.
mysql_error() делать вообще моветон. Зачем пользователю показывать сообщения об ошибках? Запросы надо делать через функцию-оболочку, в которой при ошибке будет происходить логирование текста ошибки. А на экран - только "Извините, ошибка".

Цитата (razoramus @ 10.06.2012 - 22:36)
echo лучше использовать в одинарных ковычках для облегчения кода и при вставке переменных в код использовать конкатенацию

Зачем же нам тогда двойные кавычки даны? Если в тексте много переменных, лучше будет как раз-таки обойтись без явной конкатенации. А коль нужно двойную кавычку в строке использовать - экранируй ее да и все.

Теперь топикстартеру.
1. Оформление. Нужно следовать определенному стилю кодирования.
1.1 Определись, либо ты используешь пробелы, либо табуляцию. Сейчас намешано.

if($email==NULL|$pass==NULL|$pol==NULL|$capcha==NULL|$name==NULL|$cpassword==NULL)

2. В условиях намеряно используется битовое "или", или это все же ошибка, и поэтому вместо || написано | ?
3. Чуть выше по коду переменным присваивается значение функции trim, которая всегда возвращается string, но никак не NULL. Не стоит использовать такие неявные возможности php.

4. Ошибки надо обрабатывать не последовательно, а параллельно (в результате). Т.е. если я не ввел имя и пароль, то хочу сразу видеть эти ошибки, а не сначала "введите имя", а после повторной отправки формы с введенным именем еще и "введите пароль".

5. Запросы к бд также следует оформлять в соответствии со своим стилем. Желательно таким:
SELECT `col1`, `col2` FROM `tbl`WHERE `col` = 'cond' ORDER BY `col`

Причем в запросы лучше подставлять переменные, а не составлять его из смеси строк и результата работы функций php.

Спустя 1 минута, 55 секунд (10.06.2012 - 22:12) inpost написал(а):
12345
if($email==NULL|$pass==NULL|$pol==NULL|$capcha==NULL|$name==NULL|$cpassword==NULL)

Вот, объединение по битам, формирование общей строки перед проверкой на if

Спустя 9 минут, 35 секунд (10.06.2012 - 22:22) 12345 написал(а):
хм... тоесть сделать так?
if(isset($_POST['submit'])) 
{
if($email==NULL|$pass==NULL|$pol==NULL|$capcha==NULL|$name==NULL|$cpassword==NULL)
{
$er_reg_us='1';// echo"Заполнены не все поля!!!";
}
else
{
$name=trim($_POST['name']);
$cpassword=trim($_POST['cpassword']);
$email=trim($_POST['email']);
$pass=trim($_POST['pass']);
$r=trim($_POST['r']);
$pol=intval($_POST['pol']);
$capcha=intval($_POST['capcha']);

// дальше скрипт
}

Спустя 10 минут, 9 секунд (10.06.2012 - 22:32) 12345 написал(а):
или так
if($email==""|$pass==""|$pol==""|$capcha==""|$name==""|$cpassword=="")

Спустя 4 минуты (10.06.2012 - 22:36) inpost написал(а):
12345
| - объединение по битам. Ты это знал?! Нет? Так почитай.

Спустя 2 минуты, 51 секунда (10.06.2012 - 22:39) 12345 написал(а):
а где можно почитать? если возможно, то скинь ссылку.
И покажи как лучше сделать в скрипте

Спустя 2 минуты, 23 секунды (10.06.2012 - 22:41) 12345 написал(а):
и где еще ошибки?


Спустя 11 минут, 4 секунды (10.06.2012 - 22:52) inpost написал(а):
http://www.php.net/manual/ru/language.operators.php
Все операторы перечитать.

Исправь хотя бы то, что есть.

Спустя 13 минут, 40 секунд (10.06.2012 - 23:06) 12345 написал(а):
Ну а разве так не правильно??
Цитата
if($email==NULL|$pass==NULL|$pol==NULL|$capcha==NULL|$name==NULL|$cpassword==NULL)


Спустя 10 минут, 22 секунды (10.06.2012 - 23:16) Placido написал(а):
Неправильно. Neadekvat же указал на ошибку: | - это побитовый оператор, логическое "или" - это ||.

Спустя 58 секунд (10.06.2012 - 23:17) inpost написал(а):
12345
уже и ссылку дал... почитать слабо?

Спустя 1 час, 47 минут, 1 секунда (11.06.2012 - 01:04) AlmazDelDiablo написал(а):
Я думаю, что первая ссылка, которая нужна автору темы: http://framework.zend.com/manual/en/coding...ding-style.html

Спустя 7 часов, 44 минуты, 18 секунд (11.06.2012 - 08:49) 12345 написал(а):
Ну вот немного изменил и поправил код. Что еще не так?
<? include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?><h1><center>Регистрация<br></center></h1><?


if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.<br><br></center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.<br><br></center></h1>";
$er_reg_us_7 = "<h1><center>Ошибка! E-mail приглашенного введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_8 = "<h1><center>Ошибка! Не найден учасник пригласивший вас.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_9= "<h1><center>Ошибка! Учасник пригласивший вас не активировал аккаунт.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</a></h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</a></h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</a></h2></center>";

$name=trim($_POST['name']);
$cpassword=trim($_POST['cpassword']);
$email=trim($_POST['email']);
$pass=trim($_POST['pass']);
$r=trim($_POST['r']);
$pol=intval($_POST['pol']);
$capcha=intval($_POST['capcha']);

if($pol != 1 and $pol !=2 ) { $pol=3;}
if($pol==3)
{
echo "<h1><center>ОШИБКА!!!<br><br></center></h1>";
exit();
}
else
{
if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
if($pol == 2)
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{

if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}
if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}
if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}
if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}
$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if ($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}
if(preg_match("/^[a-zA-Z]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT * FROM `pol` WHERE `emails`='".mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT * FROM `pol` WHERE `ips`='".mysql_real_escape_string($ips)."'
"
;
$sql2 = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
if($r!==NULL)
{
$valid_email_r = filter_var($r, FILTER_VALIDATE_EMAIL);
if($valid_email_r == false)
{
echo $er_reg_us_7;// echo"Ошибка ввода E-mail приглашенного";
}
else
{
$reg_r = mysql_query("SELECT * FROM `pol` WHERE `emails`='".mysql_real_escape_string($r)."'
"
);
if(mysql_num_rows($reg_r))
{
$r2_bd = mysql_query("SELECT * FROM `pol` WHERE `emails`='".mysql_real_escape_string($r)."'
"
);
$r2_bd = mysql_fetch_array($r2_bd);
$r2=$r2_bd['r1'];
mysql_query("update `pol` set `ref1` = ref1 + 1 where `emails` = '$r'");
mysql_query("update `pol` set `ref2` = ref2 + 1 where `emails` = '$r2'");
$ttt=preg_replace("/newref/","$email",$conf_prov_bd['text_ref']);
$ttt=preg_replace("/priglasil/","$r",$ttt);

$tttt=preg_replace("/level/","1",$ttt);
mysql_query("INSERT INTO `izv` (login, date, zag, text) VALUES ('".$r."','".$datesss."','".$conf_prov_bd[zag_ref]."','".$tttt."')");
$tttt=preg_replace("/level/","2",$ttt);
mysql_query("INSERT INTO `izv` (login, date, zag, text) VALUES ('".$r2."','".$datesss."','".$conf_prov_bd[zag_ref]."','".$tttt."')");
$tttt=preg_replace("/level/","3",$ttt);
}
else
{
echo $er_reg_us_8;// echo" не найден учасник пригласивший вас";
}
}
}

$pass=md5(md5($pass));
$query3 = "INSERT INTO `pol` (avas, sax, emails, passs, ips, r1, r2, names) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($r)."'
,'"
.mysql_real_escape_string($r2)."'
,'"
.mysql_real_escape_string($name)."'
)"
;
$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>


<?
if(isset($_GET['r'])) { $rrr=htmlentities($_GET['r']); } ?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Кто пригласил:</label></p></td>
<
td width="250" align="left"><input type="text" size="25" maxlength="13" <? if(isset($_GET['r'])) {echo " value='$rrr' "; } ?> name="r" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" <? if(isset($_GET['r'])) {echo " value='$rrr' "; } ?> name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<? include('footer.php');} ?>

Спустя 1 час, 54 минуты, 38 секунд (11.06.2012 - 10:43) inpost написал(а):
12345
Я до сих пор не вижу стиля кодирования. Не исправлено.

Спустя 2 часа, 34 минуты, 10 секунд (11.06.2012 - 13:18) Tadochi написал(а):
<td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<td width="250" align="left"><input type="text" size="25" maxlength="2" <? if(isset($_GET['r'])) {echo " value='$rrr' "; } ?> name="capcha" class="field" value="" tabindex="1"></td>
//----
Это капча такая да? biggrin.gif

Спустя 3 минуты, 47 секунд (11.06.2012 - 13:21) Tadochi написал(а):
про переменные ошибок:
$переменная="<h1><center>...</h1></center>";
Лучше написать:
$переменная="...";
и после выводить так:
echo '<h1><center>', $переменная,'</h1></center>';
не? unsure.gif

Спустя 6 минут, 43 секунды (11.06.2012 - 13:28) 12345 написал(а):
В смысле, стиль кодироыания?
да, капча)
Про вывод ошибок - согласен

Спустя 12 минут, 7 секунд (11.06.2012 - 13:40) inpost написал(а):
12345
Гугл => "php стиль кодирования"

Спустя 7 минут, 49 секунд (11.06.2012 - 13:48) Tadochi написал(а):

if($pol != 1 and $pol !=2 ) { $pol=3;}
if($pol==3)
{
echo "<h1><center>ОШИБКА!!!<br><br></center></h1>&quo t;;
exit();
}
else
{
if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
if($pol == 2)
{
$sex="/images/d.png";
$pol=d;
}
//---------

$pol = ($pol == 1?'m':'d');
$sex="/images/$pol.png";

Спустя 1 минута, 17 секунд (11.06.2012 - 13:49) inpost написал(а):
Tadochi
$sex='/images/'.($pol == 1?'m':'d').'.png';

Спустя 6 минут, 35 секунд (11.06.2012 - 13:56) Tadochi написал(а):
Хороший рефакторинг получился ))

Спустя 2 часа, 25 минут, 2 секунды (11.06.2012 - 16:21) Tadochi написал(а):
кстати, вместо кучи переменных для ошибок надо бы сделать один массив. и чтобы ключ означал ошибку.
Напр:

$errors =array(
'empty_rows'=> "Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a>",
и тд
);
//после
if(empty($email) || empty($pass) || empty($pol) || empty($capcha) || empty($name) || empty($cpassword))
{
echo $errors['empty_rows'];// echo"Заполнены не все поля!!!";
}

Спустя 4 часа, 41 минута, 11 секунд (11.06.2012 - 21:02) 12345 написал(а):
Цитата
$pol = ($pol == 1?'m':'d');
$sex="/images/$pol.png";

Цитата
$sex='/images/'.($pol == 1?'m':'d').'.png';

эти варианты не подойдут, т.к. название изображения будет другим, а переменная $pol должна быть или 'm' или 'd'.


Что лучше использовате, это:
Цитата
if(empty($email) || empty($pass) || empty($pol) || empty($capcha) || empty($name) || empty($cpassword))


или это:


Цитата
if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
???

Как более правильно?

Спустя 5 минут, 42 секунды (11.06.2012 - 21:08) Tadochi написал(а):
Цитата (12345 @ 11.06.2012 - 18:02)
эти варианты не подойдут, т.к. название изображения будет другим, а переменная $pol должна быть или 'm' или 'd'.

Все правильно же
$pol = ($pol == 1?'m':'d');

Спустя 4 минуты, 15 секунд (11.06.2012 - 21:12) 12345 написал(а):
Цитата
Все правильно же
$pol = ($pol == 1?'m':'d');

ну а вторая строчка:
Цитата
$sex="/images/$pol.png";

где изображение получится либо "/images/m.png" либо "/images/d.png"
А изоброжение у меня будет названо совсем по другому (пример: /images/534gf.png)
Но $pol должен быть только 'm' или 'd'

Спустя 53 секунды (11.06.2012 - 21:13) 12345 написал(а):
Вот удалил на данный момент лишние функции, и немного поправил:
<?php include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.<br><br></center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.<br><br></center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</a></h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</a></h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</a></h2></center>";

$name=trim($_POST['name']);
$cpassword=trim($_POST['cpassword']);
$email=trim($_POST['email']);
$pass=trim($_POST['pass']);
$pol=intval($_POST['pol']);
$capcha=intval($_POST['capcha']);


if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
else
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{

if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}
if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}
if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}
if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}
$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if ($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}
if(preg_match("/^[a-zA-Z]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT * FROM `pol` WHERE `emails`='".mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());
if (mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT * FROM `pol` WHERE `ips`='".mysql_real_escape_string($ips)."'
"
;
$sql2 = mysql_query($query2) or die(mysql_error());
if (mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;
$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<? include('footer.php');} ?>

Спустя 2 минуты, 32 секунды (11.06.2012 - 21:15) inpost написал(а):
Всё равно ничего не поменялось.
Вроде только HTML и исправил по стилям.

Спустя 4 минуты, 14 секунд (11.06.2012 - 21:20) 12345 написал(а):
inpost , я тебя не понимаю. Что не так то? Укажи строки в которых ошибки

Спустя 7 минут, 40 секунд (11.06.2012 - 21:27) inpost написал(а):
4 пробела или табуляция для вложенности. Всё там нормально расписано. Для примера посмотри эту работу: http://phpforum.ru/index.php?showtopic=57176 , комментарии не нужны, только стиль кодирования.

Спустя 15 минут, 56 секунд (11.06.2012 - 21:43) 12345 написал(а):
npost , покажи на ту строчку, в которой у меня ошибка.

Спустя 15 минут, 39 секунд (11.06.2012 - 21:59) inpost написал(а):

Спустя 4 минуты, 56 секунд (11.06.2012 - 22:04) 12345 написал(а):
А для чего вообще эти отступы нужны то???? От них разве что-то зависит????

Спустя 47 минут, 10 секунд (11.06.2012 - 22:51) inpost написал(а):
12345
Я тебе выше показал текст, тебе удобно было его читать?

Спустя 5 часов, 48 минут, 20 секунд (12.06.2012 - 04:39) razoramus написал(а):
neadekvat
Цитата (12345 @ 10.06.2012 - 19:00)
die - это та же функция exit, только называется по-другому.

На этом же форуме мне объясняли наоборот, что exit обрывает код, а die пропускает. По этому так и сказал.
Цитата (12345 @ 10.06.2012 - 19:00)
Зачем же нам тогда двойные кавычки даны? Если в тексте много переменных, лучше будет как раз-таки обойтись без явной конкатенации. А коль нужно двойную кавычку в строке использовать - экранируй ее да и все.

В том то и дело, что если у тебя html кода много, то сам подумай как геморно каждую ковычку экранировать и как ужасно потом это будет выглядеть, куда проже в одинарные запечатать и при вставке переменной не составит труда конкатенацию сделать, и, если нужно, добавить защиту.(если это вставка или вывод из БД).

Кому как, кто как пользуется. Я всего лишь высказал своё мнение.

Спустя 8 минут, 27 секунд (12.06.2012 - 04:48) razoramus написал(а):
12345
Что за бред..
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";

Зачем тебе в h1 нужен перенос? не проще их после него поставить. И я уже сказал что тег <center></center> устарел. используй хотя бы так
echo "<h1 align="center">Вы уже зарегестрированы!</h1><br><br>";

Спустя 9 минут, 11 секунд (12.06.2012 - 04:57) neadekvat написал(а):
Цитата (razoramus @ 12.06.2012 - 05:39)
На этом же форуме мне объясняли наоборот, что exit обрывает код, а die пропускает

Надо аккуратно относится к чужим словам. И по возможности проверять их правдивость в документации.

Цитата (razoramus @ 12.06.2012 - 05:39)
если у тебя html кода много

... то надо использовать шаблоны.

Спустя 3 часа, 41 минута, 46 секунд (12.06.2012 - 08:39) Tadochi написал(а):
Вроде все также...


И чтобы каждый раз не писать width="145" align="left" или width="250" align="left" создал бы css классы

Спустя 5 минут, 47 секунд (12.06.2012 - 08:44) 12345 написал(а):
Цитата
Что за бред..
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";

Цитата
И чтобы каждый раз не писать width="145" align="left" или width="250" align="left" создал бы css классы

Я же говорил, что шаблон будет лругой, тоесть, весь html будет переписан!!!!!

Вы лучше скажите о защите скрипта!!!! Как он постаит при попытке взлома???

Спустя 7 минут (12.06.2012 - 08:51) Tadochi написал(а):
<? $rrr=isset($_GET['r'])?htmlentities($_GET['r']):null; ?> после там где надо вставить $rrr;

Спустя 7 минут, 36 секунд (12.06.2012 - 08:59) 12345 написал(а):
спасибо. Что еще? но мне бы хотелось поговорить о ЗАЩИТЕ

Спустя 12 минут, 2 секунды (12.06.2012 - 09:11) Tadochi написал(а):
mysql_real_escape_string() есть значит все ок. только после выводи с htmlspecialchars

Спустя 3 минуты, 26 секунд (12.06.2012 - 09:15) 12345 написал(а):
я здесь нигде не вывожу. А когда с бд выводиш, то это делать не надо, т.к. я перед записью в бд все данные пропускаю через mysql_real_escape_string()

Спустя 11 минут, 47 секунд (12.06.2012 - 09:26) 12345 написал(а):
ну а теперь посмотрите вот этот код:
<? include('config.php'); include('str.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже авторизованы!!!<br><br></center></h1>";
include('footer.php');
exit();
}

if(isset($_GET['email']) and $_GET['email']==$_SESSION['podtv'] and $_GET['opt']=='podtv')
{

$pin_email = generatePassword(15);

// ---------------- Этот код отправляем на почту
echo "$url/vhod_ban.php?login=$_GET[email]&opt=podtv&pin=$pin_email <br>";

// Это ссылка в письмо /vhod_ban.php?login=$email&pin=$pin_email

$PIN_KOD = md5(md5($pin_email));
mysql_query("update pol set PIN_KOD='$PIN_KOD', stat_pin='2' where emails='".mysql_real_escape_string($_GET[email])."'
"
);


unset($_SESSION['podtv']);
echo"$PIN_KOD<h1><center>Письмо выслано<br><br></center></h1>";
include('footer.php');
exit();
}

if (isset($_POST['email']) && isset($_POST['pass']))
{
$email = trim($_POST['email']);
$password = trim($_POST['pass']);

if(strlen($password) < 6 or strlen($password) > 12)
{
echo"<p><h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1></p><br />";
include('footer.php');
exit();
}
else
{

$opschee=$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT'];


$pppaaasss=generatePassword(15)."n";////// хэш


$usvh = mysql_query("SELECT * FROM pol WHERE emails='".mysql_real_escape_string($email)."'");
$usvh = mysql_fetch_array($usvh);
$popitki=$usvh['popitki'];

if($usvh['popitki']>=3)
{
$pin_email = generatePassword(15);

// ---------------- Этот код отправляем на почту
echo "$url/vhod_ban.php?login=$email&opt=ban&pin=$pin_email <br>";

// Это ссылка в письмо /vhod_ban.php?login=$email&pin=$pin_email

$PIN_KOD = md5(md5($pin_email));
mysql_query("update pol set PIN_KOD='$PIN_KOD', stat_pin='1' where emails='".mysql_real_escape_string($email)."'
"
);

echo"<h1><center>Вы сделали 3 ошибки. Чтобы попробывать ввести еще пароль, пройдите по ссылке в письме.<br><br></center></h1>";
include('footer.php');
exit();
}
else
{

if($usvh['passs'] == md5(md5($password)))
{
if($usvh['stat_emails']=='1')
{
$_SESSION['podtv'] = $email;
echo"<p><h1><center>Вы не подтвердили email, для подтверждения пройдите по ссылке в письме <a href='vhod.php?email=$email&opt=podtv'>Выслать</a><br><br></center></h1></p><br />";
include('footer.php');
exit();
}
else
{
$_SESSION['email'] = $email;
$_SESSION['password'] = md5(md5($password));
$_SESSION['pppaaasss'] = $pppaaasss;

mysql_query("update pol set kashs='$pppaaasss', iippss='$opschee', popitki='0' where emails='".mysql_real_escape_string($email)."'
"
);

?>
<script type="text/javascript">
location.replace("/profile.php");
</
script><noscript>
<
meta http-equiv="refresh" content="0; url=/profile.php">
</
noscript>
<? }
}

else
{

mysql_query("update pol set popitki=popitki+1 where emails='".mysql_real_escape_string($email)."'
"
);
echo"<p><h1><center>Данные введены не верно <br><br></center></h1></p><br />";
include('footer.php');
exit();

}
} }
}

echo"<p><h1><center>Ошибка <br><br></center></h1></p><br />";
include('footer.php');
?>


Что исправить? Вообще, как он будет при попытке взлома?

Спустя 3 минуты, 2 секунды (12.06.2012 - 09:29) Tadochi написал(а):
капчу смени и все

Спустя 4 минуты, 43 секунды (12.06.2012 - 09:34) 12345 написал(а):
а чем моя капча не нравится то????

Спустя 6 минут, 42 секунды (12.06.2012 - 09:41) Tadochi написал(а):
слабая

Спустя 5 минут, 18 секунд (12.06.2012 - 09:46) 12345 написал(а):
пфффф... такая же как и другая любая) Но в дальнейшем может изменю

Спустя 32 минуты, 14 секунд (12.06.2012 - 10:18) 12345 написал(а):
Вот я переделал скрипт авторизации. Посмотрите, как он будет при взломе? что поправить?
<?php include('config.php'); include('str.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже авторизованы!!!<br><br></center></h1>";
include('footer.php');
exit();
}

// высылаем код подтверждения аккаунта на email --- НАЧАЛО ---

if(isset($_GET['email']) and $_GET['email']==$_SESSION['podtv'] and $_GET['opt']=='podtv')
{
$pin_email = generatePassword(15);

echo "$url/vhod_ban.php?login=$_GET[email]&opt=podtv&pin=$pin_email <br>";
// Эту ссылку будем отправлять на email: $url/vhod_ban.php?login=$_GET[email]&opt=podtv&pin=$pin_email

$PIN_KOD = md5(md5($pin_email));
mysql_query("update `pol` set `PIN_KOD`='$PIN_KOD', `stat_pin`='2' where `emails`='".mysql_real_escape_string($_GET[email])."'
"
);

unset($_SESSION['podtv']);
echo"$PIN_KOD<h1><center>Письмо выслано<br><br></center></h1>";
include('footer.php');
exit();
}

// высылаем код подтверждения аккаунта на email --- КОНЕЦ ---


if (isset($_POST['email']) && isset($_POST['pass']))
{
$email = trim($_POST['email']); // удаляем пробелы
$password = trim($_POST['pass']);

//Проверка пароля и email'а на валидность --- НАЧАЛО ---
$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if ($valid_email == false)
{
echo"<p><h1><center>Ошибка ввода E-mail<br><br></center></h1></p><br />";
include('footer.php');
exit();
}
if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo"<p><h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1></p><br />";
include('footer.php');
exit();
}
if(strlen($password) < 6 or strlen($password) > 12)
{
echo"<p><h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1></p><br />";
include('footer.php');
exit();
}
//Проверка пароля и email'а на валидность --- КОНЕЦ ---


$opschee=$_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']; // ip и браузер создаем в одну строку
$pppaaasss=generatePassword(15)."n"; // генерируем хэш

$usvh = mysql_query("SELECT `popitki`, `passs`, `stat_emails` FROM `pol` WHERE `emails`='".mysql_real_escape_string($email)."'
"
); //подключаемся к email в бд
$usvh = mysql_fetch_array($usvh);

// если пароль введен 3 раза не правильно, то баним его --- НАЧАЛО ---
if($usvh['popitki']>=3)
{
$pin_email = generatePassword(15);

echo "$url/vhod_ban.php?login=$email&opt=ban&pin=$pin_email <br>"; // Это ссылка в письмо /vhod_ban.php?login=$email&pin=$pin_email
$PIN_KOD = md5(md5($pin_email));
mysql_query("update `pol` set `PIN_KOD`='$PIN_KOD', `stat_pin`='1' where `emails`='".mysql_real_escape_string($email)."'
"
);
echo"<h1><center>Вы сделали 3 ошибки. Чтобы попробывать ввести еще пароль, пройдите по ссылке в письме.<br><br></center></h1>";
include('footer.php');
exit();
}
// если пароль введен 3 раза не правильно, то баним его --- КОНЕЦ ---


if($usvh['passs'] == md5(md5($password)))
{
if($usvh['stat_emails']=='1') //проверяем или подтвержден email
{
$_SESSION['podtv'] = $email;
echo"<h1><center>Вы не подтвердили email, для подтверждения пройдите по ссылке в письме <a href='vhod.php?email=$email&opt=podtv'>Выслать</a></center></h1>";
include('footer.php');
exit();
}
else
{
$_SESSION['email'] = $email;
$_SESSION['password'] = md5(md5($password));
$_SESSION['pppaaasss'] = $pppaaasss;

mysql_query("update `pol` set `kashs`='$pppaaasss', `iippss`='$opschee', `popitki`='0' where `emails`='".mysql_real_escape_string($email)."'
"
);
?>

<script type="text/javascript">
location.replace("/profile.php");
</
script><noscript>
<
meta http-equiv="refresh" content="0; url=/profile.php">
</
noscript>

<?php
}
}

else
{

mysql_query("update `pol` set `popitki`=popitki+1 where `emails`='".mysql_real_escape_string($email)."'
"
);

echo"<p><h1><center>Данные введены не верно <br><br></center></h1></p><br />";

include('footer.php');
exit();
}
}

?>

Спустя 2 минуты, 12 секунд (12.06.2012 - 10:21) inpost написал(а):
Как знаешь, не хочешь исправляться в лучшую сторону - не буду помогать. Ты просто игнорируешь замечания.

Спустя 7 минут, 26 секунд (12.06.2012 - 10:28) 12345 написал(а):
ведь от этого пробела ничего не будет зависеть, только вид поменяется. А ведь скрипт будет для меня, а не для когото еще. Ты посмотри скрипт авторизации, который я выше кинул. Как там он будет вести себя при попытке взлома?

Спустя 10 минут, 12 секунд (12.06.2012 - 10:38) Tadochi написал(а):
может кто еще скажет про капчу? sad.gif

Спустя 1 минута, 4 секунды (12.06.2012 - 10:39) 12345 написал(а):
всех она устраивает)))) biggrin.gif

Спустя 12 минут, 47 секунд (12.06.2012 - 10:52) inpost написал(а):
12345
Любой профессионал пишет со стилем. И ты будешь писать, разница лишь во времени, либо с самого начала начнёшь, либо парить мозги себе будешь годами, пока наконец не дойдёт истина.
Он никого не устраивает, просто все привыкли терпеть.

А ты спустя 1 год вернёшься к этому скрипту и прочитать не сможешь его, что и как он делает. Зачем писать то, что зарание будет непонятно через время тебе же самому...

Спустя 3 минуты, 23 секунды (12.06.2012 - 10:55) Tadochi написал(а):
Цитата (12345 @ 12.06.2012 - 07:39)
всех она устраивает)))) biggrin.gif

и это мне кажется странным. Такую капчу боты легко обойдут

Спустя 53 секунды (12.06.2012 - 10:56) Tadochi написал(а):
Стиль GNU самый кульный biggrin.gif

Спустя 5 минут, 28 секунд (12.06.2012 - 11:02) 12345 написал(а):
inpost , скорее всего ты прав, но я щас не очень понимаю где какие отступы делать. Со временем почитаю нужную литературу и надеюсь, что пойму, что к чему.

Но а ты скажи, как сам скрипт то? Нормально написан?(только не говори опять про стили smile.gif )

И авторизацию глянь пожалуйста

Спустя 2 минуты, 2 секунды (12.06.2012 - 11:04) inpost написал(а):
12345
Я сказал, что есть вещи, которые надо менять. Их надо выполнять по порядку, а не случайным образом. Пункт №1 я назвал. "Со временем почитаю нужную литературу и надеюсь, что пойму, что к чему" - я уже раз 10 говорил, чтобы ты пошел читать... *facepalm*. Ладно, как хочешь, но я ухожу. Хотел помочь, указать на все ошибки, а ты даже самую простую исправить не можешь.

Спустя 4 минуты, 48 секунд (12.06.2012 - 11:09) 12345 написал(а):
так чтоли?
<?php include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.<br><br></center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.<br><br></center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</a></h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</a></h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</a></h2></center>";

$name=trim($_POST['name']);
$cpassword=trim($_POST['cpassword']);
$email=trim($_POST['email']);
$pass=trim($_POST['pass']);
$pol=intval($_POST['pol']);
$capcha=intval($_POST['capcha']);


if($pol == 1)
{

$sex="/images/m.png";
$pol=m;

}

else

{

$sex="/images/d.png";
$pol=d;

}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{

if(strlen($pass) < 6 or strlen($pass) > 12)
{

echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;

}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{

echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;

}

if($pass!==$cpassword)
{

echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;

}

if($capcha!==$_SESSION['summa_capcha'])
{

echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;

}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if ($valid_email == false)
{

echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;

}

if(preg_match("/^[a-zA-Z]+$/",$name))
{

echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;

}

if($hana!==1)
{

$query = "SELECT * FROM `pol` WHERE `emails`='".mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if (mysql_num_rows($sql))
{

echo $er_reg_us_4;// echo"Такой E-mail уже существует";

}

else

{

$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT * FROM `pol` WHERE `ips`='".mysql_real_escape_string($ips)."'
"
;
$sql2 = mysql_query($query2) or die(mysql_error());

if (mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{

echo $er_reg_us_5;// echo"Такой IP уже зареган";

}

else

{
$pass=md5(md5($pass));
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;
$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";

}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<? include('footer.php');} ?>

Спустя 1 минута, 11 секунд (12.06.2012 - 11:10) inpost написал(а):
12345
Я писал как, давал ссылки, давал способ найти литературу. А ты ничего не сделал ещё.

Спустя 34 минуты, 45 секунд (12.06.2012 - 11:45) 12345 написал(а):
может так?
<?php include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.<br><br></center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.<br><br></center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.<br><br></center></h1><center><h2><a href='register.php'>Зарегестрироватся заново</a></h2></center>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</a></h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</a></h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</a></h2></center>";

$name = trim($_POST['name']);
$email = trim($_POST['email']);
$pass = trim($_POST['pass']);
$cpassword = trim($_POST['cpassword']);

$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);


if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
else
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{

if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}

if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);

if ($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}

if(preg_match("/^[a-zA-Z]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;
$sql2 = mysql_query($query2) or die(mysql_error());

if (mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));

$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>

Спустя 1 минута, 7 секунд (12.06.2012 - 11:46) inpost написал(а):
Вопрос на засыпку.
Как надо выделять? Есть какое-то правило, или ставятся пробелы на угад?
В каком случае необходимо выделять пробелами? Когда что?!

Спустя 3 минуты, 5 секунд (12.06.2012 - 11:49) 12345 написал(а):
ну я как-то по этому примеру делал http://php-pro.su/article/standarty-oformleniya-php-koda

Допустим:


if ($a==$b)
{
// оператор
}
else
{
// оператор2
}


Спустя 5 минут, 15 секунд (12.06.2012 - 11:54) inpost написал(а):
12345
С GNU у тебя одна каша получается. Посмотри на другие варианты.
if() { 
// так
}

или
if()
{
// так
}


И ещё, любые данные вложенности необходимо отделять от базовой линии. Вот что я вижу в начале:
if(isset($_POST['submit'])) 
{
$er_reg_us_1

Нет отступа вообще!

Спустя 26 минут, 26 секунд (12.06.2012 - 12:20) 12345 написал(а):
<?php include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.</center></h1>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.</center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>";

$name = trim($_POST['name']);
$email = trim($_POST['email']);
$pass = trim($_POST['pass']);
$cpassword = trim($_POST['cpassword']);
$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
else
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}

if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}

if(preg_match("/^[a-zA-Z]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;

$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));

$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;
$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>

Спустя 1 минута, 46 секунд (12.06.2012 - 12:22) 12345 написал(а):
только тут
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;

и тут
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

и тут
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;

кривовато получилось. А так вроде нормально?

Спустя 1 минута, 53 секунды (12.06.2012 - 12:24) 12345 написал(а):
блин, когда сюда код копирую, он разезжается как-то. У меня в редакторе всё нормально. а тут даже это
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}

разъехолось

Спустя 3 минуты, 29 секунд (12.06.2012 - 12:28) inpost написал(а):
http://my.jetscreenshot.com/demo/20120612-fsj0-20kb
http://my.jetscreenshot.com/demo/20120612-vsfi-38kb
http://my.jetscreenshot.com/demo/20120612-noyi-14kb

Стало лучше, но обычно принято не 2 пробела ставить, а 4 пробела, или табуляцию. Потому что 2 не очень то и заметна разница!

А разъехалось потому, что 4 пробела и табуляция в редакторах одинаковая, а на форуме - разная. Надо придерживаться одного стиля, если ставишь табуляцию - ставь её везде, а не перемешивай с пробелами!

Спустя 13 минут, 34 секунды (12.06.2012 - 12:41) 12345 написал(а):
ну а так?
<?php include('config.php'); 
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.</center></h1>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.</center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>";

$name = trim($_POST['name']);
$email = trim($_POST['email']);
$pass = trim($_POST['pass']);
$cpassword = trim($_POST['cpassword']);
$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
else
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}

if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}

if(preg_match("/^[a-zA-Z]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "
SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;

$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];

$query2 = "
SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));

$query3 = "
INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>

Спустя 1 минута, 29 секунд (12.06.2012 - 12:43) 12345 написал(а):
всеровно разъезжается(

Спустя 23 секунды (12.06.2012 - 12:43) inpost написал(а):
У тебя уезжает постоянно. Я же показал, только между фигурными скобками делаешь отступ. А не просто так где хочешь.

Спустя 6 минут, 17 секунд (12.06.2012 - 12:49) 12345 написал(а):
смотри, допустим есть код

if(isset($_POST['submit']))
{$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";


между этим

if(isset($_POST['submit']))
{
и этим
$er_reg_us_1  =  "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";

я сначала нажимаю Enter, и потом сразуже 4 пробела. Далее я нажимаю между этим
$er_reg_us_1  =  "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";

и этим
$er_reg_us_2  =  "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";
только Enter. В моем редакторе всё показывается красиво, а тут всё разъезжается

Спустя 3 минуты, 56 секунд (12.06.2012 - 12:53) Tadochi написал(а):
,'".mysql_real_escape_string($pass)."' это мусор. ты и так его уже хешировал

Спустя 3 минуты, 31 секунда (12.06.2012 - 12:57) inpost написал(а):
Потому что ты делаешь 4 пробела, а при переносе браузер у тебя делает не 4 пробела, а табуляцию. Вот и разница отсюда.
Либо вместо пробела ставь табуляцию с самого начала, либо исправляй автоматическую табуляцию на 4 пробела.

Спустя 1 минута, 34 секунды (12.06.2012 - 12:58) 12345 написал(а):

Спустя 1 минута, 54 секунды (12.06.2012 - 13:00) inpost написал(а):
12345
И? Я тебе говорю, что ты должен привести к единому стилю. Не буду же я твой код по скрин-шоту анализировать.

Спустя 2 минуты, 49 секунд (12.06.2012 - 13:03) 12345 написал(а):
я просто не очень понимаю тебя. вот код
if(isset($_POST['submit']))
{$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";

Объясни где тут что ставить(пробелы, Enter'ы)

Спустя 2 минуты, 35 секунд (12.06.2012 - 13:06) 12345 написал(а):
Tadochi , там только строчка ,'".mysql_real_escape_string($ips)."' останется, а так все данные проверяются выше

Спустя 1 минута, 12 секунд (12.06.2012 - 13:07) inpost написал(а):
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";
}

Спустя 22 минуты (12.06.2012 - 13:29) 12345 написал(а):
Скачал нывай редактор, вроде всё нормально
<?php include('config.php');
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us_1 = "<h1><center>Ошибка! Заполнены не все поля.</center></h1>";
$er_reg_us_2 = "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";
$er_reg_us_3 = "<h1><center>Ошибка! E-mail введен неверно.</center></h1>";
$er_reg_us_4 = "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>";
$er_reg_us_5 = "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>";
$er_reg_us_6 = "<h1><center>Спасибо, вы зареганы.</center></h1>";
$er_reg_us_10 = "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>";
$er_reg_us_11 = "<h1><center>Ошибка! Неверно решен пример</h2></center>";
$er_reg_us_12 = "<h1><center>Ошибка! Пароли не совподают</h2></center>";
$er_reg_us_13 = "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>";

$name = trim($_POST['name']);
$email = trim($_POST['email']);
$pass = trim($_POST['pass']);
$cpassword = trim($_POST['cpassword']);
$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol=m;
}
else
{
$sex="/images/d.png";
$pol=d;
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us_1;// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us_10;// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us_2;// echo"Ошибка ввода Пароля";
$hana=1;
}

if($pass!==$cpassword)
{
echo $er_reg_us_12;// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us_11;// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us_3;// echo"Ошибка ввода E-mail";
$hana=1;
}

if(preg_match("/^[а-яА-Я]+$/",$name))
{
echo $er_reg_us_13;// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us_4;// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us_5;// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `ips`, `names`) VALUES (
'"
.mysql_real_escape_string($sex)."'
,'"
.mysql_real_escape_string($pol)."'
,'"
.mysql_real_escape_string($email)."'
,'"
.mysql_real_escape_string($pass)."'
,'"
.mysql_real_escape_string($ips)."'
,'"
.mysql_real_escape_string($name)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo $er_reg_us_6;// echo"Спасибо, вы зареганы";
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>

Спустя 1 минута, 1 секунда (12.06.2012 - 13:30) Tadochi написал(а):
Цитата (12345 @ 12.06.2012 - 10:06)
Tadochi , там только строчка ,'".mysql_real_escape_string($ips)."' останется, а так все данные проверяются выше

блин. Может покажешь как будет "после" . Что не скажешь , пишешь этого уже не будет. И ip фильтровать смысла нет. Ну может регулярками

Спустя 3 минуты, 51 секунда (12.06.2012 - 13:34) 12345 написал(а):
Tadochi, будет так

$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `names`, `ips`) VALUES (
'
$sex','$pol','$email','$pass','$name','".mysql_real_escape_string($ips)."'
)"
;

Спустя 3 минуты (12.06.2012 - 13:37) neadekvat написал(а):
Ого, уже семь страниц, а с первой так ничего и не изменилось.

Спустя 1 минута, 54 секунды (12.06.2012 - 13:39) 12345 написал(а):
neadekvat , помоги)

Спустя 2 минуты, 21 секунда (12.06.2012 - 13:41) inpost написал(а):
После регистрации необходимо делать переадресацию страницы через header(); А у тебя работать не будет, так как логика скрипта неправильно прописана. Любые ПХП обработки должны быть ДО вывода информации на экран.
Работаешь ты в ЮТФ-8? Если да, то для регулярок есть модификатор u , а для строковых функций их альтернатива с библиотекой mb_ , то есть mb_strlen.
Далее ошибка тут: $pol=d;
d - это у тебя написано, что КОНСТАНТА, потому что так пишутся константы. Переменные со знаком доллара, текст в кавычках.

Далее:
$name = trim($_POST['name']);
У тебя есть массив, с которым очень удобно работать, ведь все данные сгруппированные. Ты пытаешься перевести их в независимые переменные, что ставят проблему удобства работы с ними + создаёшь ненужные переменные. Работай непосредственно с $_POST['name'], не надо её копию делать!!! Твоя проблема тут в том, что ты не умеешь работать с массивами. $_POST - массив, тебе надо все элементы массива обработать функцией trim, поэтому прогони его через foreach и обработай - будет в 100 раз эффективнее!

$er_reg_us_1 - перечень ошибок! Их надо хранить в массиве: $er_reg_us = array(); Тоже упрощает понимание и работу скрипта.

Всё, исправляй. Следующую порцию ошибок выдам, как это всё исправишь.

Спустя 4 минуты (12.06.2012 - 13:45) neadekvat написал(а):
Цитата (12345 @ 12.06.2012 - 14:39)
neadekvat , помоги)

Первый мой пост ты проигнорил, зачем мне писать второй с идентичным содержанием? оО

inpost, стоп, хуатит. Пусть сначала разбереться со своим стилем. Невозможно увидеть ошибки при коде, смешанном в кучу. Мы так, помню, лабы писали - квадратиком, ромбиком и пр.

Спустя 12 минут, 37 секунд (12.06.2012 - 13:57) 12345 написал(а):
Цитата
тебе надо все элементы массива обработать функцией trim, поэтому прогони его через foreach и обработай - будет в 100 раз эффективнее!

это будет как-то так?
foreach($_POST as $value)
trim($value)"
"
;


neadekvat, а что, разве со стилем еще проблемы???

Спустя 18 минут, 14 секунд (12.06.2012 - 14:16) 12345 написал(а):
neadekvat
Цитата
2. В условиях намеряно используется битовое "или", или это все же ошибка, и поэтому вместо || написано | ?
3. Чуть выше по коду переменным присваивается значение функции trim, которая всегда возвращается string, но никак не NULL. Не стоит использовать такие неявные возможности php.

4. Ошибки надо обрабатывать не последовательно, а параллельно (в результате). Т.е. если я не ввел имя и пароль, то хочу сразу видеть эти ошибки, а не сначала "введите имя", а после повторной отправки формы с введенным именем еще и "введите пароль".

5. Запросы к бд также следует оформлять в соответствии со своим стилем. Желательно таким:
SELECT `col1`, `col2` FROM `tbl`WHERE `col` = 'cond' ORDER BY `col`

это ты писал, и заметь, я изменил.

Спустя 40 минут, 1 секунда (12.06.2012 - 14:56) 12345 написал(а):
Цитата
Работаешь ты в ЮТФ-8?

нет, windows-1251

Спустя 47 секунд (12.06.2012 - 14:57) 12345 написал(а):
Вот что получилось
<?php include('config.php');
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us = array(
"1" => "<h1><center>Ошибка! Заполнены не все поля.</center></h1>",
"2" => "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>",
"3" => "<h1><center>Ошибка! E-mail введен неверно.</center></h1>",
"4" => "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>",
"5" => "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>",
"10" => "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>",
"11" => "<h1><center>Ошибка! Неверно решен пример</h2></center>",
"12" => "<h1><center>Ошибка! Пароли не совподают</h2></center>",
"13" => "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>",
);


foreach($_POST as $value)
{
trim($value);
}

$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol='m';
}
else
{
$sex="/images/d.png";
$pol='d';
}

if($email==""||$pass==""||$pol==""||$capcha==""||$name==""||$cpassword=="")
{
echo $er_reg_us['1'];// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($pass) < 6 or strlen($pass) > 12)
{
echo $er_reg_us['10'];// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$pass))
{
echo $er_reg_us['2'];// echo"Ошибка ввода Пароля";
$hana=1;
}

if($pass!==$cpassword)
{
echo $er_reg_us['12'];// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us['11'];// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($email, FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us['3'];// echo"Ошибка ввода E-mail";
$hana=1;
}

if(preg_match("/^[а-яА-Я]+$/",$name))
{
echo $er_reg_us['13'];// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.mysql_real_escape_string($email)."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us['4'];// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us['5'];// echo"Такой IP уже зареган";
}
else
{
$pass=md5(md5($pass));
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `names`, `ips`) VALUES (
'
$sex','$pol','$email','$pass','$name','".mysql_real_escape_string($ips)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
header("Location: /profile");
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>


Но я не проверял или работает

Спустя 11 минут, 4 секунды (12.06.2012 - 15:08) Tadochi написал(а):
на счет $er_reg_us. Я же писал что ключ означал значение

Спустя 7 минут, 2 секунды (12.06.2012 - 15:15) inpost написал(а):
Не работает! Я не зря писал про переадресацию, которая работать не будет.

Спустя 19 минут, 38 секунд (12.06.2012 - 15:34) 12345 написал(а):
Я забыл переменные заменить на $_POST

Вот сделал. В чем еще ошибки?

<?php include('config.php');
include('header.php');
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include('footer.php');
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us = array(
"1" => "<h1><center>Ошибка! Заполнены не все поля.</center></h1>",
"2" => "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>",
"3" => "<h1><center>Ошибка! E-mail введен неверно.</center></h1>",
"4" => "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>",
"5" => "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>",
"10" => "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>",
"11" => "<h1><center>Ошибка! Неверно решен пример</h2></center>",
"12" => "<h1><center>Ошибка! Пароли не совподают</h2></center>",
"13" => "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>",
);


foreach($_POST as $value)
{
trim($value);
}

$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol='m';
}
else
{
$sex="/images/d.png";
$pol='d';
}
if($_POST['email']==""||$_POST['pass']==""||$pol==""||$capcha==""||$_POST['name']==""||$_POST['cpassword']=="")
{
echo $er_reg_us['1'];// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($_POST['pass']) < 6 or strlen($_POST['pass']) > 12)
{
echo $er_reg_us['10'];// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$_POST['pass']))
{
echo $er_reg_us['2'];// echo"Ошибка ввода Пароля";
$hana=1;
}

if($_POST['pass']!==$_POST['cpassword'])
{
echo $er_reg_us['12'];// echo"Пароли не совподают";
$hana=1;
}

if($capcha!==$_SESSION['summa_capcha'])
{
echo $er_reg_us['11'];// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us['3'];// echo"Ошибка ввода E-mail";
$hana=1;
}

if(!preg_match("/^[а-яА-Я+@]+$/",$_POST['name']))
{
echo $er_reg_us['13'];// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana!==1)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.$_POST['email']."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us['4'];// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us['5'];// echo"Такой IP уже зареган";
}
else
{
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `names`, `ips`) VALUES (
'
$sex','$pol','".$_POST[email]."','".md5(md5($_POST[pass]))."','".$_POST[name].",'".mysql_real_escape_string($ips)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
header("Location: /profile");
}
}
}


include('footer.php');
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="<? echo $row["password"]; ?>" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="<? echo $row["password"]; ?>" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include('footer.php');
}
?>

Спустя 1 час, 15 минут, 35 секунд (12.06.2012 - 16:50) neadekvat написал(а):
Да, действительно, стало лучше. Не туда посмотрел, видать.

Тогда можно больше говорить о деталях.

1. include('footer.php');
В принципе, нет смысла ставить скобки - любой лишний символ загружает код (да и по клаве меньше стучать придется). Это можно (и даже лучше) писать так:
include 'footer.php';

2.
    foreach($_POST as $value)
{
trim($value);
}

Непонятно, зачем здесь эта конструкция? Я догадываюсь, что ты хотел сделать, но выглядить оно должно как минимум так:
    foreach($_POST as $key => $value)
{
$_POST[$key] = trim($value);
}

Единственное, если какое-либо поле может иметь значение 0, то код надо дополнить.

3. При объявлении массива не нужно писать его индексы. По крайней мере, в кавычках точно. Хотя в данном случаи нумерацию можно оставить для очевидности соответствия кода и текста ошибки:
array(
1 => 'asd', 'sdf', 'sdf'
); // Индексы будут 1, 2, 3 соответственно.

В данном случаи просто вытащи цифры из кавычек:
array(
1 => 'asd',
2 => 'zxc',
...
);


4.
    $pol          =  intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

Выравнивают обычно по необходимости наибольшего отступа, т.е.:
    $pol    =  intval($_POST['pol']);
$capcha = intval($_POST['capcha']);


5. Вывод ошибок - не советую делать в коде много echo - чем его меньше - тем лучше. Делай так:
$msg = array();
...

$msg[] = $er_reg_us[4]; // Заменить, к числовым элементам массива обращаюсь без кавычек
...
$msg[] = $er_reg_us[2];

А потом выводишь:

echo implode('<br>', $msg);

Спустя 3 часа, 12 минут, 1 секунда (12.06.2012 - 20:02) inpost написал(а):
В самом начале пропиши: error_reporting(E_ALL); а в htaccess: php_flag display_errors ON

И запусти скрипт. Работает? Я уверяю тебя, у тебя не будет работать smile.gif А какой смысл тогда проверять правильность нерабочего скрипта?

Спустя 1 час, 20 минут, 46 секунд (12.06.2012 - 21:23) 12345 написал(а):
я почти всё переделал, только вот не могу избавится от этой ошибки
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '127.0.0.1' )' at line 2

Что это за ошибка???

Спустя 7 минут, 48 секунд (12.06.2012 - 21:30) Tadochi написал(а):
Цитата (12345 @ 12.06.2012 - 18:23)
я почти всё переделал, только вот не могу избавится от этой ошибки
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '127.0.0.1' )' at line 2

Что это за ошибка???

ip2long() гугли

Спустя 5 минут, 14 секунд (12.06.2012 - 21:36) 12345 написал(а):
Tadochi, щас гляну

Спустя 29 минут, 7 секунд (12.06.2012 - 22:05) 12345 написал(а):
Ну вот, работает, что еще не так?

<?php error_reporting(E_ALL); include 'config.php' ;
include 'header.php';
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include 'footer.php';
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us = array(
1 => "<h1><center>Ошибка! Заполнены не все поля.</center></h1>",
2 => "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>",
3 => "<h1><center>Ошибка! E-mail введен неверно.</center></h1>",
4 => "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>",
5 => "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>",
10 => "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>",
11 => "<h1><center>Ошибка! Неверно решен пример</h2></center>",
12 => "<h1><center>Ошибка! Пароли не совподают</h2></center>",
13 => "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>",
);


foreach($_POST as $key => $value)
{
$_POST[$key] = trim($value);
}

$hana = 0;
$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol='m';
}
else
{
$sex="/images/d.png";
$pol='d';
}

if($_POST['email']==""||$_POST['pass']==""||$pol==""||$capcha==""||$_POST['name']==""||$_POST['cpassword']=="")
{
echo $er_reg_us['1'];// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($_POST['pass']) < 6 or strlen($_POST['pass']) > 12)
{
echo $er_reg_us['10'];// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$_POST['pass']))
{
echo $er_reg_us['2'];// echo"Ошибка ввода Пароля";
$hana=1;
}

if($_POST['pass']!==$_POST['cpassword'])
{
echo $er_reg_us['12'];// echo"Пароли не совподают";
$hana=1;
}

if($capcha != $_SESSION['summa_capcha'])
{
echo $er_reg_us['11'];// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us['3'];// echo"Ошибка ввода E-mail";
$hana=1;
}

if(!preg_match("/^[а-яА-Я0-9+@]+$/",$_POST['name']))
{
echo $er_reg_us['13'];// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana == 0)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.$_POST['email']."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us['4'];// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT `nomers`
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us['5'];// echo"Такой IP уже зареган";
}
else
{
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `names`, `ips`) VALUES (
'
$sex','$pol','".$_POST['email']."','".md5(md5($_POST['pass']))."','".$_POST['name']."','".mysql_real_escape_string($ips)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo "Вы зарегестрированы";

}
}
}


include 'footer.php';
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include 'footer.php';
}
?>

Спустя 38 минут, 31 секунда (12.06.2012 - 22:43) inpost написал(а):
Работает? Не верю! Ты пробовал зарегистрироваться?!
Я что-то не вижу очистки POST данных при помощи переадресации. В предыдущих скриптах, что ты вылаживал - были!

Спустя 4 минуты, 21 секунда (12.06.2012 - 22:48) 12345 написал(а):
Всё регестрируется, без проблем, и без ошибок.

Спустя 13 минут, 51 секунда (12.06.2012 - 23:01) 12345 написал(а):
Вот сам код(я немного еще изменил)
<?php error_reporting(E_ALL); include 'config.php' ;
include 'header.php';
if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже зарегестрированы!!!<br><br></center></h1>";
include 'footer.php';
exit();
}
?>
<h1><center>Регистрация<br></center></h1>
<?php
if(isset($_POST['submit']))
{
$er_reg_us = array(
1 => "<h1><center>Ошибка! Заполнены не все поля.</center></h1>",
2 => "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>",
3 => "<h1><center>Ошибка! E-mail введен неверно.</center></h1>",
4 => "<h1><center>Ошибка! Такой E-mail уже существует.</center></h1>",
5 => "<h1><center>Ошибка! Такой IP уже зареган.</center></h1>",
10 => "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>",
11 => "<h1><center>Ошибка! Неверно решен пример</h2></center>",
12 => "<h1><center>Ошибка! Пароли не совподают</h2></center>",
13 => "<h1><center>Ошибка! Имя содержит недоступные символы.</h2></center>",
);


foreach($_POST as $key => $value)
{
$_POST[$key] = trim($value);
}

$hana = 0;
$pol = intval($_POST['pol']);
$capcha = intval($_POST['capcha']);

if($pol == 1)
{
$sex="/images/m.png";
$pol='m';
}
else
{
$sex="/images/d.png";
$pol='d';
}

if($_POST['email']==""||$_POST['pass']==""||$pol==""||$capcha==""||$_POST['name']==""||$_POST['cpassword']=="")
{
echo $er_reg_us['1'];// echo"Заполнены не все поля!!!";
}
else
{
if(strlen($_POST['pass']) < 6 or strlen($_POST['pass']) > 12)
{
echo $er_reg_us['10'];// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("/^[a-zA-Z0-9+@]+$/",$_POST['pass']))
{
echo $er_reg_us['2'];// echo"Ошибка ввода Пароля";
$hana=1;
}

if($_POST['pass']!==$_POST['cpassword'])
{
echo $er_reg_us['12'];// echo"Пароли не совподают";
$hana=1;
}

if($capcha != $_SESSION['summa_capcha'])
{
echo $er_reg_us['11'];// echo"Неверно решен пример";
$hana=1;
}

$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
echo $er_reg_us['3'];// echo"Ошибка ввода E-mail";
$hana=1;
}

if(!preg_match("/^[а-яА-Я0-9+@]+$/",$_POST['name']))
{
echo $er_reg_us['13'];// echo"Ошибка ввода Имени";
$hana=1;
}

if($hana == 0)
{
$query = "SELECT *
FROM `pol`
WHERE `emails`='"
.$_POST['email']."'
"
;
$sql = mysql_query($query) or die(mysql_error());

if(mysql_num_rows($sql))
{
echo $er_reg_us['4'];// echo"Такой E-mail уже существует";
}
else
{
$ips=$_SERVER['REMOTE_ADDR'];
$query2 = "SELECT *
FROM `pol`
WHERE `ips`='"
.mysql_real_escape_string($ips)."'
"
;

$sql2 = mysql_query($query2) or die(mysql_error());

if(mysql_num_rows($sql2) and $ips!=='127.0.0.1')
{
echo $er_reg_us['5'];// echo"Такой IP уже зареган";
}
else
{
$query3 = "INSERT INTO `pol` (`avas`, `sax`, `emails`, `passs`, `names`, `ips`) VALUES (
'
$sex','$pol','".$_POST['email']."','".md5(md5($_POST['pass']))."','".$_POST['name']."','".mysql_real_escape_string($ips)."'
)"
;

$result = mysql_query($query3) or die(mysql_error());
unset($_SESSION['summa_capcha']);
echo "Вы зарегестрированы";

}
}
}


include 'footer.php';
}
}

else
{
?>
<center>
<
form action="" method="POST">
<
table width="395" border="0" align="center">
<
tr>
<
td width="145" align="left"><p>
<
label>E-mail:</label>
</
label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="email" value="" class="field" tabindex="1"></td>
</
tr>

<
tr>
<
td width="145" align="left"><p><label>Имя:</label></label></p></td>
<
td width="250" align="left"><input type="text" size="25" name="name" value="" class="field" tabindex="1"></td>
</
tr>


<
tr>
<
td width="145" align="left"><p><label>Пароль:</label></label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="pass" value="" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пароль еще раз:</label></p></td>
<
td width="250" align="left"><input type="password" size="25" maxlength="12" name="cpassword" value="" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label>Пол:</label></p></td>
<
td width="250" align="left"><select name="pol">
<
option value="1">мужской</option>
<
option value="2">женский</option>
</
select></td>
</
tr>
<
tr>
<
td width="145" align="left"><p><label><? $x=rand(9,0); $y=rand(9,0); $_SESSION['summa_capcha']=$x+$y; echo "$x+$y="; ?></label></p></td>

<
td width="250" align="left"><input type="text" size="25" maxlength="2" name="capcha" class="field" value="" tabindex="1"></td>
</
tr>
<
tr>
<
td width="145" align="left"> </td>
<
td width="250" align="left"><input type="submit" name="submit" value="Зарегестрироватся" class="submit" tabindex="4"></td>
</
tr>
</
table><br />

</
form>
<
br />
<
br />
<
br />
<
br />
<?php
include 'footer.php';
}
?>



а вот доказательство:

1. Заполняю все поля и нажимаю "Зарегестрироватся" user posted image

2. Пишет что удачно зарегались user posted image

3. Созданные данные в БД user posted image

Спустя 22 часа, 44 минуты, 2 секунды (13.06.2012 - 21:46) 12345 написал(а):
Ну что, ребята, дайте ответ на мой вопрос: "Возможно ли взломать эту регистрацию? Могу ли я добавлять эту регистрацию на сайт с уверенностью, что сайт не будет взломан?"

Спустя 5 минут, 35 секунд (13.06.2012 - 21:51) Tadochi написал(а):
Усложни капчу. Или ищи готовое

Спустя 6 минут, 19 секунд (13.06.2012 - 21:57) 12345 написал(а):
капчу я поменяю вообще, а то с ней проблемы. Ошибка из-за нее вылазит.

А так всё нормально?

Спустя 18 минут, 23 секунды (13.06.2012 - 22:16) inpost написал(а):
Стало гораздо лучше, уязвимости не увидел.

Спустя 8 минут, 10 секунд (13.06.2012 - 22:24) 12345 написал(а):
вот и хорошо) а посмотри еще авторизацию. Вот:

<?php include 'conf/config.php'; include 'modules/dopolnenie/str.php'; include 'header.php';

if(isset($_SESSION['email']))
{
echo "<h1><center>Вы уже авторизованы!!!<br><br></center></h1>";
include 'footer.php';
exit();
}

include_once 'modules/pismo_podtv_email.php';// Высылаем код подтверждения аккаунта на email


if (isset($_POST['email']) && isset($_POST['pass']))
{

//Проверка пароля и email'а на валидность --- НАЧАЛО ---
if(strlen($_POST['pass']) < 6 or strlen($_POST['pass']) > 12)
{
$er .= "<h1><center>Ошибка! Пароль должен содержать от 6 до 12 символов.</center></h1>";// echo" Пароль должен содержать от 6 до 12 символов";
$hana=1;
}

if(!preg_match("^[a-zA-Z0-9]+$",$_POST['pass']))
{
$er .= "<h1><center>Ошибка! Пароль содержит недоступные символы.</center></h1>";// echo"Ошибка ввода Пароля";
$hana=1;
}

$valid_email = filter_var($_POST['email'], FILTER_VALIDATE_EMAIL);
if($valid_email == false)
{
$er .= "<h1><center>Ошибка! E-mail введен неверно.</center></h1>";// echo"Ошибка ввода E-mail";
$hana=1;
}

if($hana == 1)
{
echo $er;
include 'footer.php';
exit();
}
//Проверка пароля и email'а на валидность --- КОНЕЦ ---


$opschee = $_SERVER['REMOTE_ADDR'].$_SERVER['HTTP_USER_AGENT']; // ip и браузер создаем в одну строку
$pppaaasss = generatePassword(15)."n"; // генерируем хэш

$usvh = mysql_query("SELECT `popitki`,
`passs`,
`stat_emails`
FROM `pol`
WHERE `emails`='"
.$_POST['email']."'
"
); //подключаемся к email в бд

$usvh = mysql_fetch_array($usvh);

include_once 'modules/ban_vhod.php'; // Бан при 3ех ошибках

if($usvh['passs'] == md5(md5($_POST['pass'])))
{

if($usvh['stat_emails']=='1') //проверяем или подтвержден email
{
$_SESSION['podtv'] = $_POST['email'];
echo"<h1><center>Вы не подтвердили email. <a href='vhod.php?email=$_POST[email]&opt=podtv'>Выслать письмо</a></center></h1>";
include 'footer.php';
exit();
}
else
{
$_SESSION['email'] = $_POST['email'];
$_SESSION['password'] = md5(md5($_POST['pass']));
$_SESSION['pppaaasss'] = $pppaaasss;

mysql_query("update `pol`
set `kashs`='"
.mysql_real_escape_string($pppaaasss)."',
`iippss`='"
.mysql_real_escape_string($opschee)."',
`popitki`='0'
where `emails`='"
.$_POST['email']."'
"
);
?>
<script type="text/javascript">
location.replace("/profile.php");
</
script><noscript>
<
meta http-equiv="refresh" content="0; url=/profile.php">
</
noscript>
<?php
}
}

else
{
mysql_query("update `pol`
set `popitki`=popitki+1
where `emails`='"
.$_POST['email']."'
"
);

echo"<p><h1><center>Данные введены не верно <br><br></center></h1></p><br />";
include('footer.php');
exit();
}
}

include 'footer.php';
?>
Быстрый ответ:

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