Не могу разобраться с формой подписки. Помогите)

NewJey
На сайте с 21.11.2009
Offline
113
577

Добрый день.

Наверное жара действует, не могу уже пол дня решить простую проблему(

Была форма подписки с одним полем Email с последующей записью данных в файл на хостинг.

Решено было добавить поле ещё Имя.

Поле добавил но не записывается в файл(

И что-то не могу понять почему.

Вот код:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

<div id="wrapper"> <div class="sub"> <div class="box1"> <div><h3>Подписка на новости:</h3>


<div id="maincontent" class="clearfix">
<div id="completeform"> <span id="error"></span>
<form id="inviteform" name="inviteform" method="post" action="#">
<input type="name" name="name" id="name" placeholder="Ваше имя">
<input type="email" name="email" id="email" placeholder="Введите Ваш E-mail" autocomplete="off" autocorrect="off" autocapitalize="off">
<button name="sendbtn" id="sendbtn" type="submit" value="Send">Подписаться</button></form> </div>


</div>


</div>


<div style="padding-left: 50px;"> Тут ещё один информацилнный блок


</div>

</div>

</div>

</div>

<!-- javascript код здесь -->
<script type="text/javascript">
function isEmail(email) {
// регулярное выражение для проверки введенного адреса
var regex = /^([a-zA-Z0-9_\.\-\+])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
return regex.test(email);
}

function completeInviteForm() {
setTimeout(function() { $("#completeform").fadeOut(400, function(){
$.ajax({
type: 'POST',
url: 'sub.php',
data: 'email='+$("#email").val(),
success: function(){
$('#completeform').before('<span class="msg">Отлично! Вы добавлены в список рассылки.</span>');}
});
});
}, 1100);
}

var erdiv = $("#error");
var btnwrap = $("#btnwrap");


$(document).ready(function(){
$("#sendbtn").live("click", function(e){
// После нажатия на кнопку отменяем стандартное поведение браузера
// и создаем переменную
e.preventDefault();
var emailval = $("#email").val();


if(!isEmail(emailval)) {
erdiv.html("Вы не правильно ввели адрес электронной почты");
erdiv.css("display", "block");
}

if(isEmail(emailval)) {
erdiv.css("color", "#719dc8");
erdiv.html("обработка...");
btnwrap.html('<img src="img/loader.gif" alt="loading">');
(completeInviteForm(), 900);
}
});
});
</script>

ну и сам обработчик:

<? 

if(isset($_POST['email'])) { $email = $_POST['email']; }
if(isset($_POST['name'])) { $name = $_POST['name']; }
header('Location: ' . 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']);
$file=fopen('sub.txt','a+');
fputs($file,$_POST['name']);
fputs($file,$_POST['email']."\n");
fclose($file);
?>

По хорошему бы ещё дописать проверку ввода имени, желательно на русском языке только.

Если не сложно подскажите хоть куда копать)

VHS
На сайте с 28.09.2007
Offline
142
VHS
#1
data: 'email='+$("#email").val(),

Ничего не напрягает?

Ну и конечно смысл в такой проверке полностью отсутствует, пишутся все равно данные из POST:

if(isset($_POST***91;'email'***93;)) { $email = $_POST***91;'email'***93;; }
if(isset($_POST***91;'name'***93;)) { $name = $_POST***91;'name'***93;; }
NewJey
На сайте с 21.11.2009
Offline
113
#2

Говорю ж жара) Не доглядел. Спасибо помогли)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий