Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: скрипты обрабатывающие формы

Сообщения:  [1-8] 

 
 автор: Васили   (28.06.2007 в 10:30)   письмо автору
 
   для: indexer   (27.06.2007 в 15:06)
 

попробовал такое, вроде получается:


<?
//определение адреса, на кот. будет отправляться форма
$mailto="people.levsha@inbox.ru";
if (empty(
$ok))
{
?>

<form name="form" method="post" action="<?echo $PHP_SELF;?>">
 <table>
 <tr><td class="glavpodpisforma">введите сообщение:</td></tr>
 <tr><td> 
 <textarea name="question" cols="40" rows="15"></textarea>
  </td></tr>
  <tr><td>
  <select class="input" type="text" name="publik">
  <option value='opublikovat'>опубликовать вопрос</option>
  <option value='neopublikovat'>не публиковать вопрос</option>
  </select>
  </td></tr>
  <tr><td><INPUT TYPE="text" NAME="mailfrom" SIZE=20 MAXLENGTH=100 VALUE="e-mail"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td><INPUT TYPE="text" NAME="username" SIZE="20" MAXLENGTH="100" VALUE="подпись"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td colspan="2"><input type="submit" name="ok" value="отправить"></td></tr>
</table>
</form>

<?
}
else
{
    
//проверяем  e-mail на корректность
    
if(!preg_match("/^([a-z,0-9,_,\-,\.])+\@([a-z,0-9,_,\-])+(\.([a-z,0-9])+)+$/"$mailfrom))
    {
    
$error "Не верно заполнено поле: <b>E-mail</b><br>";
    }
    if (empty(
$question))  
    {
        
$error .= "Не заполнено поле: <b>Ваш вопрос</b><br>";
    }
    if (
$error
    {
        echo 
$error;
        echo 
"<br><a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
        exit;
    }
    
//формируем тело и тему сообщения
    
$subject="Вопрос от $mailfrom";
    
$body="Имя:\n$username\n\nE-mail:\n$mailfrom\n\nЧто:\n$publik\n\nКомментарии:\n$question";
    
//конвертируем из win в koi
    
$body=convert_cyr_string (stripslashes($body),w,k);
    
$subject=convert_cyr_string (stripslashes($subject),w,k);
    
//отправляем по почте...
    
$sucess mail($mailto$subject$body"From: $email\nX-Mailer: PHP/" phpversion());
    if (
$sucess)
    {
        echo 
"Спасибо. Ваш вопрос отправлен.<br><br>";
        echo 
"<a href=\"javascript:history.go(-1)\" class=\"text\">Вернуться назад</a>";
    }
}
?>


после того как нажать отправить, вот что получается -
Это что значит, просто то что с локального сервера на эл.адрес не отправляется, а когда
сайт разместить на хостинге, тогда отправляться будет, верно?:


Notice: Undefined variable: error in z:\home\levsha.ru\www\vopros_otvet.php on line 80
[ убрать подсказку | никогда больше не показывать ]

Это предупреждение, вероятнее всего, возникает вследствие высокого уровня контроля ошибок в PHP, по умолчанию установленного в Денвере (E_ALL). Такой режим вывода ошибок является рекомендуемым и сильно помогает при отладке скриптов. Однако множество готовых скриптов требуют более низкого уровня ошибок.

Вы можете установить более слабый контроль ошибок одним из следующих способов:

Впишите в скрипты строчку: 
Error_Reporting(E_ALL & ~E_NOTICE);
Этот способ особенно удобен, если в скрипте есть один файл (конфигурационный), который подключается всеми остальными.
Рекомендуемый способ. Создайте в директории со скриптом файл .htaccess следующего содержания: 
php_value error_reporting 7
Исправьте в /usr/local/php/php.ini значение error_reporting на E_ALL & ~E_NOTICE. Этот способ не является рекомендуемым и может привести к серьезным неудобствам при отладке!
[Денвер: показать возможную причину ошибки]
Notice: Use of undefined constant w - assumed 'w' in z:\home\levsha.ru\www\vopros_otvet.php on line 90

Notice: Use of undefined constant k - assumed 'k' in z:\home\levsha.ru\www\vopros_otvet.php on line 90

Notice: Use of undefined constant w - assumed 'w' in z:\home\levsha.ru\www\vopros_otvet.php on line 91

Notice: Use of undefined constant k - assumed 'k' in z:\home\levsha.ru\www\vopros_otvet.php on line 91

Notice: Undefined variable: email in z:\home\levsha.ru\www\vopros_otvet.php on line 93
Спасибо. Ваш вопрос отправлен.

Вернуться назад


строка 80: if ($error)
строка 90: $body=convert_cyr_string (stripslashes($body),w,k);
строка 91: $subject=convert_cyr_string (stripslashes($subject),w,k);
строка 93: $sucess = mail($mailto, $subject, $body, "From: $email\nX-Mailer: PHP/" . phpversion());

   
 
 автор: Васили   (28.06.2007 в 10:23)   письмо автору
 
   для: CrazyAngel   (27.06.2007 в 12:41)
 

mail('people.levsha@inbox.ru', subject, body); - правильно так значит?

   
 
 автор: Васили   (28.06.2007 в 10:22)   письмо автору
 
   для: Ravanger   (27.06.2007 в 12:30)
 

ошибку такую выдает


Parse error: parse error, unexpected T_IF in z:\home\levsha.ru\www\action.php on line 3


по поводу метода отправки, после того как указал в форме что method="post", ошибка та же показывается

   
 
 автор: indexer   (27.06.2007 в 15:06)   письмо автору
 
   для: Васили   (27.06.2007 в 10:24)
 


$ot=$_POST["ot"]; 
$mail=$_POST["mail"];

а это то зачем?

   
 
 автор: CrazyAngel   (27.06.2007 в 12:41)   письмо автору
 
   для: Васили   (27.06.2007 в 10:24)
 

mail('people.levsha@inbox.ru', $podpiska, '_','от',$ot,_,'эл.почта',$mail); - неправильно mail()
и почему ты посылаешь данные методом GET а берешь постом?

   
 
 автор: Ravanger   (27.06.2007 в 12:30)   письмо автору
 
   для: Васили   (27.06.2007 в 10:24)
 

возможно проблема в том, что по умолчанию <form method=GET а ты пытаешся брать значения из переменной POST, это раз... и еще выложи сам текст ошибки... так будет проще понять причину

   
 
 автор: Васили   (27.06.2007 в 10:24)   письмо автору
 
   для: Васили   (22.06.2007 в 15:04)
 

если так задам вопрос дорогие профессионалы:


<FORM NAME="novosti" ACTION="action.php">

<table align="left">
<caption class="glavpodpisforma">получать по эл.почте:</caption>
<tr><td class="podpisforma" align="justify" colspan="2">
    <INPUT TYPE="checkbox" NAME="podpiska" CHECKED><nobr>что нового у нас</nobr><br>
    <INPUT TYPE="checkbox" NAME="podpiska">общие новости<BR>
    <INPUT TYPE="checkbox" NAME="podpiska">статьи<BR>
</td></tr>
<tr><td class="podpisforma">Имя:</td><td><input name="ot" size="12"></td></tr>
<tr><td class="podpisforma">E-mail:</td><td><input name="mail" size="12"></td></tr>
<tr><td colspan="2"><input type="submit" value="подписаться"></td></tr>
</table>
<!-- закрыли таблицу формы -->

</form>


обработка

<?
$podpiska
=$_POST['podpiska']
if(empty(
$_POST['podpiska'];
echo 
"Выберете значение";
$ot=$_POST["ot"];
$mail=$_POST["mail"];
mail('people.levsha@inbox.ru'$podpiska'_','от',$ot,_,'эл.почта',$mail);
?>


но локальный сервер(денвер установлен) выдает ошибку =(

п.с.
уважаемые интеллектуалы:
честное слово не ленюсь я, по крайне мере уж совсем точно.

почитывать начал месяц как
-второе издание "Самоучитель PHP 5" написанное,Кузнецовым Максимом Валерьевичем и Симдяновым Игорем Вячеславовичем.

-PHP 5. Практика создания web-сайтов, те же авторы

до этого за месяц освоил базово HTML - шаблоны страничек сделанны.

ПХП начал изучать с нулевым познанием программирования до этого(освоить очень хочу!),
тяжеловато дается мне, по крайне мере сейчас на первых порах-читаю литературу, приходит пока общее понимание а не конкретное знание.
Когда начинал ХТМЛ изучать было предупреждение - что это не есть язык программирование, это язык разметки и все тут, когда перешел к поползнавениям ПХП - понял даааааа ХТМЛ далеко не язык программирования (хотя знать его первонаперво необходимо для создания сайтов, но без знаний программирования рабочий интерактивный сайт,а не сайт визитку просто опублекованный в Инете, сделать не возможно).

надеюсь на ваше понимание и мудрую снисходительность,
с уважением Василий.

   
 
 автор: Васили   (22.06.2007 в 15:04)   письмо автору
 
 

Здраствуйте дорогие!

есть две формы. Надоумне пожалуйста, какими скриптами их обработать с проверкой корректности ввода, и проверкой ввода вообще ( а обработанные данные направлять на э-майл) , формы та простые - осознаю решение простое (но бъюсь об стену)

1)форма подписи на новости:


<FORM NAME="novosti" ACTION="#">

<table align="left">
<caption class="glavpodpisforma">получать по эл.почте:</caption>
<tr><td class="podpisforma" align="justify" colspan="2">
<INPUT TYPE="checkbox" NAME="novnash" CHECKED><nobr>что нового у нас</nobr><br>
<INPUT TYPE="checkbox" NAME="novobsh">общие новости<BR>
<INPUT TYPE="checkbox" NAME="statyi">статьи<BR>
</td></tr>
<tr><td class="podpisforma">Имя:</td><td><input size="12"></td></tr>
<tr><td class="podpisforma">E-mail:</td><td><input size="12"></td></tr>
<tr><td colspan="2"><input type="submit" value="подписаться"></td></tr>
</table>
<!-- закрыли таблицу формы -->

</form>


2) форма отправить сообщение

<form method="post" name=ot_posetitelya action="">
<table>
<tr><td class="glavpodpisforma">введите сообщение:</td></tr>
<tr><td>
<textarea name="message" cols="40" rows="15"></textarea>
</td></tr>
<tr><td>
<select class="input" name="select" type="text" name=publikuem?>
<option value='opublikovat'>опубликовать вопрос</option>
<option value='neopublikovat'>не публиковать вопрос</option>
</select>
</td></tr>
<tr><td><INPUT TYPE=text NAME=email SIZE=20 MAXLENGTH=100 VALUE="e-mail"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td><INPUT TYPE=text NAME=email SIZE=20 MAXLENGTH=100 VALUE="подпись"
style="font-size: 9pt" onfocus="this.select()"></td></tr>
<tr><td colspan="2"><input type="submit" value="отправить"></td></tr>
</table>

   

Сообщения:  [1-8] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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