Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Запись сценария на одной странице!
 
 автор: Vados   (28.07.2006 в 18:38)   письмо автору
 
 

Всем привет!

Скажите, как можно сделать так, чтобы

<form action=sendmail.php enctype='multipart/form-data' method=post class="pages"> 

<tr><td width=50% class="pages">Имя:</td><td align=right><input type=text name=name_m maxlength=32 class="form"></td></tr>

<tr><td width=50% class="pages">Тема письма:</td><td align=right><input type=text name=mail_subject maxlength=64 class="form"></td></tr>

<tr><td colspan=2 class="pages">Сообщение:<br><textarea cols=50 rows=8 name=mail_msg class="form"></textarea maxlength=500></td> <br/> 

</tr><tr><td colspan=2><input type=submit value='Отправить' class="pages">&nbsp;&nbsp;<INPUT name="reset" type="reset" value='Очистить' class="pages"></td></tr> 

</form> 

при отсылке данной формы сценарий sendmail.php можно было прописать на текущей странице, а не писать новую страницу sendmail.php со сценарием.

Я просто не помню как это сделать, а очень нужно реализовать это для формы обратной связи.

То есть, что мне нужно прописать в форме, вместо form action=sendmail.php?

Не хочется, чтобы сценарий возвращал результат на др. странице, а мне нужно на текущей, где моя форма!

Заранее спасибо за вашу помощь!:-)

   
 
 автор: TheCreator   (28.07.2006 в 18:44)   письмо автору
 
   для: Vados   (28.07.2006 в 18:38)
 

Здравствуй,
Если я правельно понял то сделай так:
<form action="" enctype='multipart/form-data' method=post class="pages">
То есть поле Action ничего не писать(Оставь пустым) - так будет работать тот сценарий который находиться в коде данной страницы.

   
 
 автор: Vados   (28.07.2006 в 19:19)   письмо автору
 
   для: TheCreator   (28.07.2006 в 18:44)
 

Спасибо огромное, помогло, а вот такой ещё вопрос, как дать возможность проверять данные при вводе:


<table cellspacing="10" cellpadding="10" border="0">

<form action="" enctype='multipart/form-data' method=post class="pages"> 

<tr><td width=50% class="pages">Имя:</td><td align=right><input type=text name=name_m maxlength=32 class="form"></td></tr>

<tr><td width=50% class="pages">Тема письма:</td><td align=right><input type=text name=mail_subject maxlength=64 class="form"></td></tr>

<tr><td colspan=2 class="pages">Сообщение:<br><textarea cols=50 rows=8 name=mail_msg class="form"></textarea maxlength=500></td> <br/> 

</tr><tr><td colspan=2><input type=submit value='Отправить' class="pages">&nbsp;&nbsp;<INPUT name="reset" type="reset" value='Очистить' class="pages"></td></tr> 

</form> 
            </table>
<?php
    
//определить получателя почты
    
if(empty($_POST['name_m']))
    {
       exit(
"Введите пожалуйста имя!");
    } 
    
$_POST['name_m'] = htmlspecialchars(stripslashes($_POST['name_m']));
    if (empty(
$_POST['mail_subject']))
    {
        exit(
"Введите пожалуйста тему сообщения!");
    }
    
$_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject']));
    if (empty(
$_POST['mail_msg']))
    {
        exit(
"Введите пожалуйста текст сообщения!");
    }
    
$_POST['mail_msg'] = htmlspecialchars(stripslashes($_POST['mail_msg']));
     
mail("email@email.com""$name_m""$mail_subject""$mail_msg");
     echo (
"Ваше письмо отправлено.<br><br>Спасибо за Ваши отзывы!");
?>


Просто, если всё это отображается на одной странице, тогда у меня сразу срабатывает в сценарии первое условие проверки введённого имени!
Как сделать так, чтобы при нажатии на кнопку отправить проверялись эти данные?
То есть проверялись на заполнение поля : Имя, тема сообщения и само сообщение.

И ещё при таком расположении:


mail("email@email.com", "$name_m", "$mail_subject", "$mail_msg");


Я получаю письмо, но меня не устраивает то, что тема письма у меня идёт после самого письма, хотя в сценарии сначала идёт имя, которое указывается в subject, потом заголовок письма, а потом само тело письма, но в письме не так.

Помогите!

Заранее спасибо!

   
 
 автор: TheCreator   (28.07.2006 в 19:35)   письмо автору
 
   для: Vados   (28.07.2006 в 19:19)
 

Здравствуй,
>Как сделать так, чтобы при нажатии на кнопку отправить проверялись эти данные?
Можно вот так:

if (isset($_POST['send']))
 {
 if(empty($_POST['name_m'])) 
    { 
       exit("Введите пожалуйста имя!"); 
    }  
    $_POST['name_m'] = htmlspecialchars(stripslashes($_POST['name_m'])); 
    if (empty($_POST['mail_subject'])) 
    { 
        exit("Введите пожалуйста тему сообщения!"); 
    } 
    $_POST['mail_subject'] = htmlspecialchars(stripslashes($_POST['mail_subject'])); 
    if (empty($_POST['mail_msg'])) 
    { 
        exit("Введите пожалуйста текст сообщения!"); 
    } 

}

Этот код означает, что если кнопка send получила какоето значение (То есть вы кликнули по ней) то идёт проверка заполниности формы
send - это переменная кнопки послать
(<input type="submit" value="Отправить" class="pages" name="send">)

Внимание:!!! Не забудьте добавить name="send" в <input type="submit" value="Отправить" class="pages">

Насчёт письма ответитьи не могу к сожалению.

   
 
 автор: Vados   (29.07.2006 в 12:46)   письмо автору
 
   для: TheCreator   (28.07.2006 в 19:35)
 

Всем привет!

Кто-то может подсказать правильное решение?

Заранее спасибо!

   
 
 автор: Ziq   (29.07.2006 в 12:54)   письмо автору
 
   для: Vados   (29.07.2006 в 12:46)
 

В форме делаешь скрытое поле, например action

<input type="hidden" name="action" value="1">

и в скрипте проверяешь условием

<?
if($_POST['action'] == "1")
{
  
//  код
}
?>

При таком способе можно использовать неограниченное количество форм на странице, только необходимо менять значение с $n на ++$n

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования