Вернуться   Дизайнерский форум » ВЕБ-ПРОГРАММИРОВАНИЕ » ASP, Perl, PHP и MySQL

Переделать скрипт

Обсуждение темы Переделать скрипт в разделе ASP, Perl, PHP и MySQL, часть категории ВЕБ-ПРОГРАММИРОВАНИЕ; колеги. на сайте сделал опросный лист, созданный на базе одного допотопного скрипта почтовой формы. принцип простой и дубовый: любое нажатие на "отправить" сопровождается ...


Закрытая тема
 
Опции темы
Старый 22.11.2006, 20:38   #1
колеги. на сайте сделал опросный лист, созданный на базе одного допотопного скрипта почтовой формы. принцип простой и дубовый: любое нажатие на "отправить" сопровождается фразой "спасибо за ваше письмо" или "возникли ошибки". никакой проверки на заполнение полей.
вот код:

PHP код:
<?
$fText
="$fTitle\n\n";
for (
$i=1;$i<=$fCount;$i++) {$fText.=$fName[$i]."------- ".$fData[$i]."\n";}
$fText.="\n\n";
$fText.=date("l dS of F Y h:i:s A");
if (
mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");}
else {
Header("Location: $fBad");}
exit;
?>
можно ли в этот скрипт как-то добавить обязательные к заполнению поля (*) (хотя бы одно), чтобы не переделывать полностью мой опросник?
 
Старый 22.11.2006, 20:38
Ссылки
Старый 22.11.2006, 21:35   #2
Так и делай проверку на заполненость:
PHP код:
if ($fName[$i] != "") or ($fData[$i != "") {
 
выполнение скрипта
}
else {
 
поля не заполненыошибка

 
Старый 22.11.2006, 21:56   #3
я практическо совсем не знаю php. ты не мог бы поточнее написать код? вот заэто1й фразой "выполнение скрипта" и "поля не заполнены, ошибка" что должно стоять? я вот сделал так:

PHP код:
<?
$fText
="$fTitle\n\n";
for (
$i=1;$i<=$fCount;$i++) {$fText.=$fName[$i]."------- ".$fData[$i]."\n";}
$fText.="\n\n";
$fText.=date("l dS of F Y h:i:s A");
if (
mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");}
else {
Header("Location: $fBad");}

if (
$fName[$i] != "") or ($fData[$i != "") { Header("Location: $fOk");
 } 
else { 
Header("Location: $fBad");
}
exit;
?>
пишет ошибку syntax error, unexpected T_LOGICAL_OR в 9-ой строке (как раз с начала твоего кода). может быть, я не туда его вставил?
 
Старый 23.11.2006, 13:31   #4
ILA

PHP код:
<? 
$fText
="$fTitle\n\n"
for (
$i=1;$i<=$fCount;$i++) {$fText.=$fName[$i]."------- ".$fData[$i]."\n";} 
$fText.="\n\n"
$fText.=date("l dS of F Y h:i:s A"); 

if ((
$fName[$i] == "") or ($fData[$i == ""))
{
   
Header("Location: $fBad");
}
else
{
   if (
mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");} 
   else {
Header("Location: $fBad");} 
}
exit; 
?>
 
Старый 23.11.2006, 15:54   #5
Parse error: syntax error, unexpected ')', expecting ']' - в 7-ой строке.
 
Старый 23.11.2006, 16:06   #6
ILA

Седьмая строка. Скобку закрыть забыл.
PHP код:
if (($fName[$i] == "") or ($fData[$i] == "")) 
 
Старый 23.11.2006, 16:14   #7
ок! скрипт прошел...только теперь отправлять не хочет. пишет , что ошибки при передачи - давай, мол, заново заполняй.
пробовал заполнить все поля - не выходит.

то есть при любом раскладе он как будто постоянно ссылается на location: $fBad и подсовывавет мне стра. с ошибкой передачи "попробуй отправить заново"
 
Старый 23.11.2006, 16:43   #8
ILA

Тьфу. У тя ж там в цикле какие-то переменные проверяются...
У тебя массивы $fname[] и $fdata[], как я понимаю.
Скрипт че должен проверять-то? Чтобы каждый элемент был заполнен? Или чтобы хотябы один из них?
 
Старый 23.11.2006, 16:44   #9
хотя бы два элемента: и-майл и имя.
можно ограничиться одним мылом, если остальное сложно.
спасибо заранее )

Начинающий добавил [date]1164295411[/date]:
коллеги! я тут немного разобрался, и чтобы внести дополнительную ясность поясняю:
в моей форме поле почта проходит как fData[3]. Поэтому я внес коррективы в скрипт и теперь он не отсылает, если это поле не заполнено:
PHP код:
<? 
$fText
="$fTitle\n\n"
for (
$i=1;$i<=$fCount;$i++) {$fText.=$fName[$i]."------- ".$fData[$i]."\n";} 
$fText.="\n\n"
$fText.=date("l dS of F Y h:i:s A"); 

if ((
$fMail[$i] == "") or ($fData[3] == ""))

   
Header("Location: $fBad"); 

else 

   if (
mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");} 
   else {
Header("Location: $fBad");} 

exit; 
?>
как теперь добавить строчку с ограничением "/^([a-z,0-9])+\@([a-z,0-9])+(\.([a-z,0-9])+)+$/" на правильность ввода и-мейла?
дело осталось за малым, помогите плиз!
 
Старый 24.11.2006, 08:22   #10
ILA

Вижу, что проверяется $fData[3] - это хорошо, но что такое $fMail[$i], стоящее вне цикла?

Со всеми изменениями и проверкой $fData[3] получаем:
PHP код:
$fText="$fTitle\n\n"
for (
$i=1;$i<=$fCount;$i++) {$fText.=$fName[$i]."------- ".$fData[$i]."\n";} 
$fText.="\n\n"
$fText.=date("l dS of F Y h:i:s A"); 

if ((
$fData[3] == "") or (preg_match "/^([a-z,0-9])+\@([a-z,0-9])+(\.([a-z,0-9])+)+$/"$fData[3])==0)) 

   
Header("Location: $fBad"); 

else 

   if (
mail($fMail,$fSubject,$fText)) {Header("Location: $fOk");} 
   else {
Header("Location: $fBad");} 

exit; 
 
Старый 24.11.2006, 08:22
Закрытая тема




Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите переделать скрипт JavaScript FotoCorrector HTML, CSS, JavaScript 1 01.06.2011 17:42
Переделать меню osadach HTML, CSS, JavaScript 3 17.04.2010 01:23
Попробовал переделать baibek HTML, CSS, JavaScript 11 20.03.2008 23:14
как вы думаете что нужно переделать killop Зал дебютантов 3 04.09.2007 14:28
как psd быстро переделать в html? ERSI HTML, CSS, JavaScript 7 04.11.2004 22:54


Текущее время: 10:17. Часовой пояс GMT +4.

Реклама на форуме Условия размещения рекламы
Биржа ссылок Заработай на сайте!
Дизайнерский форум