Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Проверка е-мэйла (https://forum.antichat.xyz/showthread.php?t=176772)

soxer 06.02.2010 21:36

Проверка е-мэйла
 
Привет у меня есть форма типа :
Логин
Почта
Пароль
Подтверждение пароля

сопсна вопрос, как сделать так чтоб проверялось правильность ввода мыла ... то есть щас чел может нажать войти и ничего не вводить а нужно чтоб проверялось что в поле е-мэйл было введено например @

ChieFSS 06.02.2010 21:45

PHP код:

if(!preg_match('/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i'$email)) {
    exit(
'Вы неверно заполнили поле e-mail.');



soxer 06.02.2010 21:47

вот полная форма куда вставить нужно?

Код:

<div class="simplePage">

 <form method="post" name="login" id="login" action="ap.php">
  <table align="center" cellpadding=0 cellspacing=7 border=0 width="40%">
  <tr>
    <td><span class="grey"><b>Логин:</span>    </td>
    <td><input type="text" class="inputText" size="25" maxlength="15" /></td>
  </tr>
  <tr>
    <td width="100px">
    <span class="grey"><b>E-mail:</span>
    </td>
    <td>
    <input class="inputText" type="text" name="login" value="" id="email" size="25" />
    <td>
  </tr>
  <tr>
    <td>
    <span class="grey"><b>Пароль:</span>
    </td>
    <td>
    <input class="inputText" type="password" name="pass" value="" id="pass" size="25" />
    </td>
  </tr>
  <tr>
    <td><span class="grey"><b>Пароль ещё раз:</span>    </td>
    <td><input type="text" class="inputText" size="25" maxlength="15" /></td>
  </tr>
  <tr>
    <td>&nbsp;
   
    </td>
    <td><ul class="nNav">
      <li>
        <div align="left"><b class="nc"><b class="nc1"><b></b></b><b class="nc2"><b></b></b></b> <span class="ncc"><a href="javascript:document.login.submit()"reg0="reg0""><b>Зарегистрироваться</a></span> <b class="nc"><b class="nc2"><b></b></b><b class="nc1"><b></b></b></b> </div>
      </li>
    </ul>
    </td>
  </tr>
  <tr>
    <td>&nbsp;    </td>
    <td class="forgotPass">&nbsp;</td>
  </tr>

  </table>
  <input type="submit" value="." style="color:#fff;border:0;padding:0;margin:0;background:#fff;height:6px;width:6px"/>
 </form>

</div>


Compton 06.02.2010 21:54

PHP код:

<html>
<form name="form1" method="post" action="">
  <input name="preg" type="text" id="preg">
  <input type="submit" name="Submit" value="check">
</form>
</html>
<?
$text
=$_POST['preg'];
if(
preg_match("/^[a-z0-9]+@[a-z]+(.ru|.com|.net)/i"$text)) { 
    echo 
"ок. Все введено"
} else { 
    echo 
"чезана***";

?>


Adio 06.02.2010 22:01

Я на сайте вообще сделал Фофч проверку кода
1)удобно если юзер вводит спец символы вылазит окошечко и говорит что они зпрещены и т д
2)Сделал проверку на сущесвование логина

Я долго искал что то подобное вот нашел

Качай _http://rapidshare.com/files/346836323/formValidator.zip.html

потом закидуеш папку на локалхост и открываеш и смотриш на примерах как оно работает - потом просто подставляеш переменные в свой скрипт и вуаля.
Если что пиши помогу

b3 07.02.2010 07:34

Compton
А если мыло будет не в зоне (.ru|.com|.net) ?
Да и вообще зачем регулярка?
PHP код:

var_dump(filter_var('bob@example.com'FILTER_VALIDATE_EMAIL)); 


Compton 07.02.2010 11:20

b3
пусть так будет
PHP код:

"/^[a-z0-9]+@[a-z]+\.[a-z0-9]/i" 

пусть тс выберет,как ему нравится

d_x 07.02.2010 23:07

Compton, e-mail может содержать и точку, и подчеркивание. Кроме того, домен может быть больше, чем второго уровня, и может содержать тире.
vasya_pupkin@home.vasya.ru - не пройдет. Да и твоя регулярка пропустит нечто типа
ololo@a.ru[любые_символы]

Более верно (хотя и не лишено недостатков - позволяет ввести несколько тире подряд в домене):
/^[a-z0-9_]+(\.[a-z0-9_]+)*@[0-9a-z]{1}[\-0-9a-z]*(\.[0-9a-z]{1}[\-0-9a-z]*)*\.[a-z]{2,4}/i

b3 07.02.2010 23:18

Тут возникает вопрос - "зачем?" если есть filter_var() с ключем FILTER_VALIDATE_EMAIL, зачем составлять сложные неидеальные регекспы, рискуя недопустить к регистрации пользователя. Не утверждаю что FILTER_VALIDATE_EMAIL идеален, но полагаюсь на девелоперов РНР (=

suser 13.02.2010 20:01

PHP код:

<?php
var_dump
(filter_var('antichat@example.com'FILTER_VALIDATE_EMAIL));
?>



Время: 09:11