Прошу ваших советов, что как лучше сделать?
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
Позже могу показать. Я с планшетника. На нем сделать это не удобно что могу посоветовать: отдели HTML от php
Позже могу показать. Я с планшетника. На нем сделать это не удобно что могу посоветовать: отдели 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 при ошибке прекращает работу последующего скрипта.
--
По коду, вроди, если я не ошибаюсь в памяли, exit(); лучше заменить на die(mysql_error()); , так как exit при ошибке прекращает работу последующего скрипта.
Спустя 2 минуты, 23 секунды (10.06.2012 - 21:31) 12345 написал(а):
Цитата |
exit(); лучше заменить на die(mysql_error()); |
хм... Кто как еще думает?
Спустя 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>'; ?> |
ХАХАХАХАХХАХАХАХАХ
Что за хрень??????? Откуда ты эту инфу взял то??????? Если все данные 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 берутся в такие ' ковычки, то внутри ковычки будут только такие " , или наоборот. |
Само собой, что если использовать одинарные ковычки, то при втавке ссылок, картинок и прочих не нужно переписывать ковычки на одинарные и париться из-за этого. А по скрипту, ну высказал своё мнение. Скоро народ подтянется, может что кто и выскажет.
Спустя 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
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>
//----
Это капча такая да?
<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>
//----
Это капча такая да?
Спустя 3 минуты, 47 секунд (11.06.2012 - 13:21) Tadochi написал(а):
про переменные ошибок:
$переменная="<h1><center>...</h1></center>";
Лучше написать:
$переменная="...";
и после выводить так:
echo '<h1><center>', $переменная,'</h1></center>';
не?
$переменная="<h1><center>...</h1></center>";
Лучше написать:
$переменная="...";
и после выводить так:
echo '<h1><center>', $переменная,'</h1></center>';
не?
Спустя 6 минут, 43 секунды (11.06.2012 - 13:28) 12345 написал(а):
В смысле, стиль кодироыания?
да, капча)
Про вывод ошибок - согласен
да, капча)
Про вывод ошибок - согласен
Спустя 12 минут, 7 секунд (11.06.2012 - 13:40) inpost написал(а):
12345
Гугл => "php стиль кодирования"
Гугл => "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 и исправил по стилям.
Вроде только 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
Что за бред..
Зачем тебе в h1 нужен перенос? не проще их после него поставить. И я уже сказал что тег <center></center> устарел. используй хотя бы так
Что за бред..
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 классы
И чтобы каждый раз не писать 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 написал(а):
может кто еще скажет про капчу?
Спустя 1 минута, 4 секунды (12.06.2012 - 10:39) 12345 написал(а):
всех она устраивает))))
Спустя 12 минут, 47 секунд (12.06.2012 - 10:52) inpost написал(а):
12345
Любой профессионал пишет со стилем. И ты будешь писать, разница лишь во времени, либо с самого начала начнёшь, либо парить мозги себе будешь годами, пока наконец не дойдёт истина.
Он никого не устраивает, просто все привыкли терпеть.
А ты спустя 1 год вернёшься к этому скрипту и прочитать не сможешь его, что и как он делает. Зачем писать то, что зарание будет непонятно через время тебе же самому...
Любой профессионал пишет со стилем. И ты будешь писать, разница лишь во времени, либо с самого начала начнёшь, либо парить мозги себе будешь годами, пока наконец не дойдёт истина.
Он никого не устраивает, просто все привыкли терпеть.
А ты спустя 1 год вернёшься к этому скрипту и прочитать не сможешь его, что и как он делает. Зачем писать то, что зарание будет непонятно через время тебе же самому...
Спустя 3 минуты, 23 секунды (12.06.2012 - 10:55) Tadochi написал(а):
Цитата (12345 @ 12.06.2012 - 07:39) |
всех она устраивает)))) |
и это мне кажется странным. Такую капчу боты легко обойдут
Спустя 53 секунды (12.06.2012 - 10:56) Tadochi написал(а):
Стиль GNU самый кульный
Спустя 5 минут, 28 секунд (12.06.2012 - 11:02) 12345 написал(а):
inpost , скорее всего ты прав, но я щас не очень понимаю где какие отступы делать. Со временем почитаю нужную литературу и надеюсь, что пойму, что к чему.
Но а ты скажи, как сам скрипт то? Нормально написан?(только не говори опять про стили )
И авторизацию глянь пожалуйста
Но а ты скажи, как сам скрипт то? Нормально написан?(только не говори опять про стили )
И авторизацию глянь пожалуйста
Спустя 2 минуты, 2 секунды (12.06.2012 - 11:04) inpost написал(а):
12345
Я сказал, что есть вещи, которые надо менять. Их надо выполнять по порядку, а не случайным образом. Пункт №1 я назвал. "Со временем почитаю нужную литературу и надеюсь, что пойму, что к чему" - я уже раз 10 говорил, чтобы ты пошел читать... *facepalm*. Ладно, как хочешь, но я ухожу. Хотел помочь, указать на все ошибки, а ты даже самую простую исправить не можешь.
Я сказал, что есть вещи, которые надо менять. Их надо выполнять по порядку, а не случайным образом. Пункт №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 у тебя одна каша получается. Посмотри на другие варианты.
И ещё, любые данные вложенности необходимо отделять от базовой линии. Вот что я вижу в начале:
Нет отступа вообще!
С 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 пробела и табуляция в редакторах одинаковая, а на форуме - разная. Надо придерживаться одного стиля, если ставишь табуляцию - ставь её везде, а не перемешивай с пробелами!
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 написал(а):
смотри, допустим есть код
между этим
я сначала нажимаю Enter, и потом сразуже 4 пробела. Далее я нажимаю между этим
и этим
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 пробела.
Либо вместо пробела ставь табуляцию с самого начала, либо исправляй автоматическую табуляцию на 4 пробела.
Спустя 1 минута, 34 секунды (12.06.2012 - 12:58) 12345 написал(а):
Смотри как у меня http://my.jetscreenshot.com/demo/20120612-kk3k-113kb
Спустя 1 минута, 54 секунды (12.06.2012 - 13:00) inpost написал(а):
12345
И? Я тебе говорю, что ты должен привести к единому стилю. Не буду же я твой код по скрин-шоту анализировать.
И? Я тебе говорю, что ты должен привести к единому стилю. Не буду же я твой код по скрин-шоту анализировать.
Спустя 2 минуты, 49 секунд (12.06.2012 - 13:03) 12345 написал(а):
я просто не очень понимаю тебя. вот код
Объясни где тут что ставить(пробелы, Enter'ы)
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(); Тоже упрощает понимание и работу скрипта.
Всё, исправляй. Следующую порцию ошибок выдам, как это всё исправишь.
Работаешь ты в ЮТФ-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.
Непонятно, зачем здесь эта конструкция? Я догадываюсь, что ты хотел сделать, но выглядить оно должно как минимум так:
Единственное, если какое-либо поле может иметь значение 0, то код надо дополнить.
3. При объявлении массива не нужно писать его индексы. По крайней мере, в кавычках точно. Хотя в данном случаи нумерацию можно оставить для очевидности соответствия кода и текста ошибки:
В данном случаи просто вытащи цифры из кавычек:
4.
Выравнивают обычно по необходимости наибольшего отступа, т.е.:
5. Вывод ошибок - не советую делать в коде много echo - чем его меньше - тем лучше. Делай так:
А потом выводишь:
Тогда можно больше говорить о деталях.
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
И запусти скрипт. Работает? Я уверяю тебя, у тебя не будет работать А какой смысл тогда проверять правильность нерабочего скрипта?
И запусти скрипт. Работает? Я уверяю тебя, у тебя не будет работать А какой смысл тогда проверять правильность нерабочего скрипта?
Спустя 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
Что это за ошибка???
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 данных при помощи переадресации. В предыдущих скриптах, что ты вылаживал - были!
Я что-то не вижу очистки POST данных при помощи переадресации. В предыдущих скриптах, что ты вылаживал - были!
Спустя 4 минуты, 21 секунда (12.06.2012 - 22:48) 12345 написал(а):
Всё регестрируется, без проблем, и без ошибок.
Спустя 13 минут, 51 секунда (12.06.2012 - 23:01) 12345 написал(а):
Вот сам код(я немного еще изменил)
а вот доказательство:
1. Заполняю все поля и нажимаю "Зарегестрироватся"
2. Пишет что удачно зарегались
3. Созданные данные в БД
<?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. Заполняю все поля и нажимаю "Зарегестрироватся"
2. Пишет что удачно зарегались
3. Созданные данные в БД
Спустя 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';
?>