С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
linkan
1 / 1 / 0
Регистрация: 09.02.2009
Сообщений: 7
1

Необходима доделать форму подписки соединить с java

08.05.2011, 00:15. Просмотров 851. Ответов 1
Метки нет (Все метки)

Всем доброго времени суток.
Поставил перед собой задачу создать форму подписки сохраняющую адреса в определённы файл. Но без всяких красивостей а просто правильно работающую и надёжную (чтобы нельзя было взломать и украсть файл в который заносятся адреса).
Вот что пока получилось
1) сама форма.
HTML5
1
2
3
<form action="newsprov.php" name="newsletterForm" id="newsletterForm">
 <input type="text" name="email" id="email" class="newsletterInput" value="Введите Ваш Email" onfocus="if (this.value=='Введите Ваш Email') this.value='';" onblur="if (this.value=='') this.value='Введите Ваш Email';" /><br />
 <input type="submit" name="Submit" value="Подписаться" class="newsletterButton" /></form>
2) файл проверки newsprov.php и записи Email в файл mail.txt
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
$newsletterFN = "mail.txt";
/*2 функции очистки поля от лишних символов и проверки его на правильность введения email*/
function GetField($input) {
    $input=strip_tags($input);
    $input=str_replace("<","<",$input);
    $input=str_replace(">",">",$input);
    $input=str_replace("#","%23",$input);
    $input=str_replace("'","`",$input);
    $input=str_replace(";","%3B",$input);
    $input=str_replace("script","",$input);
    $input=str_replace("%3c","",$input);
    $input=str_replace("%3e","",$input);
    $input=trim($input);
    return $input;
} 
 
function validEmail($email)
{
   $isValid = true;
   $atIndex = strrpos($email, "@");
   if (is_bool($atIndex) && !$atIndex)  {$isValid = false;}
   else {$domain = substr($email, $atIndex+1);
         $local = substr($email, 0, $atIndex);
         $localLen = strlen($local);
         $domainLen = strlen($domain);
        if ($localLen < 1 || $localLen > 64)    {$isValid = false;}   
        else if ($domainLen < 1 || $domainLen > 255)  {$isValid = false;}  
        else if ($local[0] == '.' || $local[$localLen-1] == '.')  {$isValid = false;}  
        else if (preg_match('/\\.\\./', $local))  {$isValid = false;}  
        else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain))   {$isValid = false;}   
        else if (preg_match('/\\.\\./', $domain))   {$isValid = false;} 
        else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/',str_replace("\\\\","",$local)))  
              {if (!preg_match('/^"(\\\\"|[^"])+"$/',str_replace("\\\\","",$local)))   {$isValid = false;} }
        }
   return $isValid;
}
 
$email  = GetField($_GET['email']);
$pass   = validEmail($email);
 
/* проверка на все соответствия и запись в файл или вывод ошибки */
if ($pass) {
        $f = fopen($newsletterFN, 'a+');
        $read = fread($f,filesize($newsletterFN));
        if (strstr($read,"@")) {$delimiter = ";";}
        if (strstr($read,$email)) {echo 3;} 
        else {fwrite($f, $delimiter . $email);  echo 1;}
        fclose($f);
} 
else {echo 2;}
3) А вот дальше я в стопоре так как почти не знаю Java
приведённый ниже файл использовал jquery и ajax с всплывающими картинками в зависимости от номера получаемого из файла проверки
я его почистил и добавил задачу вывода сообщений через alert заместо всплывающих картинок с текстом и вот что у меня вышло.
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$(document).ready(function(){
 
    $('form#newsletterForm').bind('submit', function(e){
        var email  = $('input#email').val();
        e.preventDefault();
                
                $.ajax({type: 'POST', url: 'newsprov.php?email='+email, data: '',       success: function(theResponse){
                                if (theResponse == 1) {alert("Ваш e-mail добавлен в список.");}
                                if (theResponse == 2) {alert("Вы не корректно ввели Email."); return false;}
                                if (theResponse == 3) {alert("E-mail уже добавлен в список."); return false;}
                        },
                        error: function(){alert("Произошла ошибка. Пожалуйста, попробуйте еще раз."); return false;}            
                });
        });
});
На данный момент основная загвостка в том что код 3 пункта не работает и при добавлении email или ошибки открывается страница с номером ошибки 1, 2 или 3.
Подскажите что надо подправить в коде 3 пункта чтобы выскакивало окошко по методу alert с соответствующим текстом. Такое же как при ошибке в названии темы выскакивает на этом форуме.
или как можно ещё сообщить человеку об ошибке или удачном добавлении email без перезагрузки окна или открытии нового.



4)Вопрос к взломщикам... Надёжен ли код проверки? основная его задача чтобы злоумышленник не смог в итоге достать файл mail.txt с адресами подписчиков.
А если не надёжен, то где у него бреши?
Всем спасибо!
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2011, 00:15
Ответы с готовыми решениями:

Как добавить в форму подписки файл
Форумчане, привет. Есть форма подписки на brandberry.pro. После подписки...

Помогите вставить форму подписки в файле JS
Здравствуйте уважаемые форумчане. Прошу у вас помощи, так как сам не...

На java script написать Поместить на форму кнопки
неправильно работает программа , помогите исправить... Щелчок по кнопке делает...

Как выровнять форму подписки?
Всем привет. Хотел попросить помощи у знающих. На моём сайте имеется вот такой...

Как отключить форму подписки средствами CSS
Форма подписки выполнена вот таким образом - когда страницу прокручивают...

1
Good-bad man
08.05.2011, 07:21     Необходима доделать форму подписки соединить с java
  #2

Не по теме:

Ну сколько раз можно повторять: Java != JavaScript

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.05.2011, 07:21
Привет! Вот еще темы с ответами:

Как вставить в php функцию div ( форму подписки)
Ребят подскажите! Как в функцию вставить html код ? Перепробовал всё что нашел...

Ребят ! Подскажите, как вставить форму подписки в конец поста. Очень надо !
Сделал форму подписки и вставил через редактор вордпресовский а очень хотелось...

Необходима литература по Java EE
Цель: научиться языку java, в пределах создания сервер-клиентских приложений и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru