Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидация динамических форм e-mail 
:(
    Опции темы
focus_198411
Дата 14.2.2011, 12:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.7.2007

Репутация: нет
Всего: нет



Добрый день, имеется у меня код на js который при нажатии на сслыку генерит поля для вводва е-мейл адресов. Также имеется php код, который проверяет данные.
Проблема:
- проверка производится только по первой форму, т.е. если первая прав. то и все прав., если первая не прав, то и остальные не прав.
вот код:
Код

func.php
=======================
<?php

class mail {
    var $mail;
    var $subject;
    var $text;

    function sendmail($email, $subject, $text)
    {
        require_once('Rmail/Rmail.php');

        $sendmail = new Rmail();
        $sendmail->setFrom('MailForm <[email protected]>');
        $sendmail->setSubject($subject);
        $sendmail->setPriority('high');
        $sendmail->setText($text);
        $sendmail->setReceipt('[email protected]');
        $result = $sendmail->send(array($email));
    }
}

class validation {


    function valid_name($name)
    {
        return(preg_match('/^[A-Za-z]+$/', $name));
    }

    function valid_phone($phone)
    {
        return(preg_match('/^([\(]{1}[0-9]{3}[\)]{1}[ ]{1}[0-9]{3}[\-]{1}[0-9]{4})$/', $phone));
    }

    function valid_email($mails)
    {
        return(preg_match('/^\w+[\w-\.]*\@\w+((-\w+)|(\w*))\.[a-z]{2,3}$/', $mails));
    }

    function captcha($cptch)
    {
        session_start();
    
    if($_SESSION['s_cptch'] == $cptch)
    {
        return true;
    }
    else
    {
        return false;
    }
        
        session_destroy();
    }

    function verification()
    {
    /*$len = count($_POST['linkurl']);
    for($i = 0; $i < $len; $i++)
    {
        $mails = $_POST['linkurl'][$i];
    }*/
    $addr = $_POST['linkurl'];
    $valid = true;
    foreach($addr as $key => $mails)
    {
        if(!$this->valid_email($mails))
        {
            $valid = false;
            break;
        }
    }

        if($valid /*&& $this->valid_name($_POST['name'])/* && $this->valid_phone($_POST['phone'])
                && $this->valid_email($mails) && $this->captcha($_POST['cptch'])*/)
        {
            $message = "Your data is successfully sent.";
        
        //$m = new mail();
            //$m->sendmail($_POST['linkurl'], $_POST['subject'], $_POST['message']);
        }
        else
        {
            $message = "Please enter your details correctly";
        }

        return $message;
    }

}




?>
index.php
=======================
<?php
require_once('functions.php');
$phpself = $_SERVER['PHP_SELF'];


if(!empty($_POST['submit']))
{
    $obj = new validation();
    $message = $obj->verification();

}
else
{
    $message = "";
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link rel="stylesheet" href="css/form.css" type="text/css" />
    <script type="text/javascript">
         /* 
         This script is identical to the above JavaScript function. 
         */  
         var ct = 1;  
           
         function new_link()  
         {  
             ct++;  
             var div1 = document.createElement('div');  
             div1.id = ct;  
           
             // link to delete extended form elements  
             var delLink = '<td><a href="javascript:delIt('+ ct +')">Del</a></div>';  
           
             div1.innerHTML = document.getElementById('newlinktpl').innerHTML + delLink;  
           
             document.getElementById('newlink').appendChild(div1);  
           
         }  
         // function to delete the newly added set of elements  
         function delIt(eleId)  
         {  
             d = document;  
           
            var ele = d.getElementById(eleId);  
           
             var parentEle = d.getElementById('newlink');  
           
             parentEle.removeChild(ele);  
           
         }

</script>
        <title>SendForm</title>
   </head>
<body>
<?php
$form_str = <<< FORM
        $message
    <table>
    <tbody>
        <tr>
        <form action="$phpself" method="post">
            <td class="label"><label for="name">Name:</label></td>
            <td>
            <input name="name" id="name" type="text" size="20" maxlength="15" />
            </td>
        </tr>
        <tr>
            <td class="label"><label>Phone:</label></td>
            <td>
            <input name="phone" id="phone" type="text" size="20" maxlength="15" />        
           </td>
        </tr>
        <tr>
            <td class="label"><label>Email:</label></td>
            <td>
            <div id="newlink">
                <div><input name="linkurl[]" type="text"  size="20" maxlength="30" /></div>
            </div>
            </td>
            <td>
            <p id="addnew">  
                <a href="javascript:new_link()">Add address </a>  
            </p>  
            </td>
        </tr>
        <tr>
            <td class="label"><label>Subject:</label></td>
            <td><input name="subject" id="subject" type="text" size="43" maxlength="30" /></td>
        </tr>
        <tr>
            <td class="label"><label>Message:</label></td>
            <td><textarea name="message" id="message" rows="10" cols="50"></textarea></td>
        </tr>
        <tr>
            <td class="label"><label>Captcha:</label></td>
            <td><img src="captcha_img.php" /></td>
        </tr>
        <tr>
            <td><input name="cptch" id="cptch" type="text" size="6" maxlength="4"/></td>
            <td><input name="submit" type="submit" value="Send" /></td>
        </form>
        </tr>

    </tbody>
    <!--- Tpl new input e-mail -->    
    <div id="newlinktpl" style="display:none">
        <div><input name="linkurl[]" type="text" size="20" maxlength="30"></div>
    </div>
    </table>

FORM;
print($form_str);
?>
    </body>
</html>

PM MAIL WWW ICQ   Вверх
focus_198411
Дата 14.2.2011, 12:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 39
Регистрация: 21.7.2007

Репутация: нет
Всего: нет



похоже проблема в том, что передается массиву одно только значение, пока вопрос почему???
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0407 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.