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

Форум PHP

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

 

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

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

тема: Форма отправки сообщений
 
 автор: Ксения_954   (14.08.2007 в 21:17)   письмо автору
 
 

Я взяла замечательный скрипт формы отправки сообщений. Но в нем не хватает то, что мне нужно - ещё одно поле для добавления файла, т.е. как в этом форуме: "прикрепить" .
Не могли бы помочь справиться?

вот скрипт:


<?
$action 
$_GET['action'];

$s file("filer/form.set");
$count count($s);
list(
$name,$type,$error,$sub,$before,$after,$email,$min)=explode("<<>>"$s[0]);

$sub =  str_replace("&#13;&#10;","\r\n",$sub);
$before str_replace('||','"',$before);
$after str_replace('||','"',$after);

$names_text $name;
$type_text =$type;
$zvezda_text=$error;
$sub_text =$sub;

$rrt explode("^^^"$names_text); 
$r explode("^^^"$type_text); 
$rt explode("^^^"$zvezda_text); 
$rrtt explode("^^^"$sub_text); 

if(
$names_text == "") { exit("no fields"); }

$rr count($rrt);

if(
$action == "") { echo "<h1>".$before."</h1>"; }
if(
$action == "ok") { echo "<h1><font color=red><b>".$after."</b></font></h1>"; }

echo
"<br><form action=send.php method=POST>";
echo 
"<table border=0 width=100% align=center class=form><tr><td width=20%></td><td></td></tr>";

$n_in 0;
$n_ch 0;
$n_tx=0;
$n_ra =0;

for(
$i=0;$i<$rr;$i++)
  {
   if(
$rt[$i] !="") {$zv ="<font color=red><small><sup>*</sup></small></font>";}
   else { 
$zv ="";}
  if(
$r[$i] == 0) { echo"<tr><td>".$rrt[$i].$zv."</td><td><input type=text name=input[".$i."] value='' style='width:100%'></td></tr>
  <input type=hidden name=inchek["
.$i."] value='".$rt[$i]."'>"; }
  if(
$r[$i] == 1) { echo"<tr><td valign=top>".$rrt[$i].$zv."</td><td><textarea name=text[".$i."]  style='width:100%' rows=4></textarea></td></tr>
  <input type=hidden name=txchek["
.$i."] value='".$rt[$i]."'>"; }
  if(
$r[$i] == 2)
      {
        
$opt explode("\r\n"$rrtt[$i]); 
        
$count_opt count($opt);
        echo
"<tr><td>".$rrt[$i].$zv."</td><td><select name=select[".$i."]  style='width:100%'>";
        for(
$o=0;$o<$count_opt;$o++)
            {
               if(
$o == 0) {$ggg "selected";} 
               else {
$ggg="";}
               echo 
"<option value='".$opt[$o]."' ".$ggg.">".$opt[$o];
            }
        echo
"</select></td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=selchek[".$i."] value='".$rt[$i]."'>";
      }

  if(
$r[$i] == 3)
      {
        
$ch explode("\r\n"$rrtt[$i]); 
        
$count_ch count($ch);
        echo
"<tr><td valign=top>".$rrt[$i].$zv."</td><td>";
        for(
$h=0;$h<$count_ch;$h++)
            {
             echo 
"
                      <input type=checkbox name=chek"
.$n_ch."[".$h."] value='".$ch[$h]."'> ".$ch[$h]."<br>";
            }
        echo
"</td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=cg[".$n_ch."] value=".$h."><input type=hidden name=chchek[".$i."] value='".$rt[$i]."'>";
        
$n_ch++;
      }

  if(
$r[$i] == 4)
      {
        
$ra explode("\r\n"$rrtt[$i]); 
        
$count_ra count($ra);
        echo
"<tr><td valign=top>".$rrt[$i].$zv."</td><td>";
        for(
$o=0;$o<$count_ra;$o++)
            {
               if(
$o == 0) {$gggfh "checked";} 
               else {
$gggfh="";}
               echo 
"<input type=radio name=radio[".$i."] value='".$ra[$o]."' ".$gggfh.">".$ra[$o]."<br>";
            }
        echo
"</td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=rachek[".$i."] value='".$rt[$i]."'>";
      }

  if(
$r[$i] == 5) { echo"<tr><td>".$rrt[$i].$zv."</td><td><input type=text name=em[".$i."] value=''  style='width:100%'></td></tr>
  <input type=hidden name=emchek["
.$i."] value='".$rt[$i]."'>"; }

  }  

$er_ok=0;

for(
$e=0;$e<count($rt);$e++)
 {
  if(
$rt[$e] !="") { $er_ok++;}
 }

echo 
"<tr><td colspan=2 align=left><br>
<font color=red><small><sup>*</sup></small></font> Поля обязательные для заполнения&nbsp;&nbsp;&nbsp;<input type=submit value='Отправить' >&nbsp;<input type=reset value='Очистить'></td></tr>"
;
echo 
"</table>";
echo 
"<input type=hidden name=i value='".$i."'>";
echo 
"<input type=hidden name=h value='".$h."'>";
echo 
"<input type=hidden name=error value='".$er_ok."'>";
echo
"</form>";
?>

   
 
 автор: sim5   (14.08.2007 в 21:23)   письмо автору
 
   для: Ксения_954   (14.08.2007 в 21:17)
 

Если вы имеете ввиду о загрузке файлов на сервер, то добавьте в форму поле:
<input type="file" name="namefile">
а теге FORM добавьте - enctype="multipart/form-data", т.е. этот тег у вас должен выглядеть так:

<form action=send.php method=POST enctype="multipart/form-data">;

   
 
 автор: Ксения_954   (14.08.2007 в 23:41)   письмо автору
 
   для: sim5   (14.08.2007 в 21:23)
 

я изменила так:


<?
$action 
$_GET['action'];

$s file("filer/form.set");
$count count($s);
list(
$name,$type,$error,$sub,$before,$after,$email,$min)=explode("<<>>"$s[0]);

$sub =  str_replace("&#13;&#10;","\r\n",$sub);
$before str_replace('||','"',$before);
$after str_replace('||','"',$after);

$names_text $name;
$type_text =$type;
$zvezda_text=$error;
$sub_text =$sub;

$rrt explode("^^^"$names_text); 
$r explode("^^^"$type_text); 
$rt explode("^^^"$zvezda_text); 
$rrtt explode("^^^"$sub_text); 

if(
$names_text == "") { exit("no fields"); }

$rr count($rrt);

if(
$action == "") { echo "<h1>".$before."</h1>"; }
if(
$action == "ok") { echo "<h1><font color=red><b>".$after."</b></font></h1>"; }


echo 
"<table border=0 width=100% align=center class=form><tr><td width=20%></td><td></td></tr>";
[
b]<form action=send.php method=POST enctype="multipart/form-data">;[/b]
$n_in 0;
$n_ch 0;
$n_tx=0;
$n_ra =0;

for(
$i=0;$i<$rr;$i++)
  {
   if(
$rt[$i] !="") {$zv ="<font color=red><small><sup>*</sup></small></font>";}
   else { 
$zv ="";}
  if(
$r[$i] == 0) { echo"<tr><td>".$rrt[$i].$zv."</td><td><input type=text name=input[".$i."] value='' style='width:100%'></td></tr>
  <input type=hidden name=inchek["
.$i."] value='".$rt[$i]."'>"; }
  
  if(
$r[$i] == 1) { echo"<tr><td valign=top>".$rrt[$i].$zv."</td><td><textarea name=text[".$i."]  style='width:100%' rows=4></textarea></td></tr>
  <input type=hidden name=txchek["
.$i."] value='".$rt[$i]."'>"; }
  if(
$r[$i] == 2)
      {
        
$opt explode("\r\n"$rrtt[$i]); 
        
$count_opt count($opt);
        echo
"<tr><td>".$rrt[$i].$zv."</td><td><select name=select[".$i."]  style='width:100%'>";
        for(
$o=0;$o<$count_opt;$o++)
            {
               if(
$o == 0) {$ggg "selected";} 
               else {
$ggg="";}
               echo 
"<option value='".$opt[$o]."' ".$ggg.">".$opt[$o];
            }
        echo
"</select></td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=selchek[".$i."] value='".$rt[$i]."'>";
      }

  if(
$r[$i] == 3)
      {
        
$ch explode("\r\n"$rrtt[$i]); 
        
$count_ch count($ch);
        echo
"<tr><td valign=top>".$rrt[$i].$zv."</td><td>";
        for(
$h=0;$h<$count_ch;$h++)
            {
             echo 
"
                      <input type=checkbox name=chek"
.$n_ch."[".$h."] value='".$ch[$h]."'> ".$ch[$h]."<br>";
            }
        echo
"</td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=cg[".$n_ch."] value=".$h."><input type=hidden name=chchek[".$i."] value='".$rt[$i]."'>";
        
$n_ch++;
      }

  if(
$r[$i] == 4)
      {
        
$ra explode("\r\n"$rrtt[$i]); 
        
$count_ra count($ra);
        echo
"<tr><td valign=top>".$rrt[$i].$zv."</td><td>";
        for(
$o=0;$o<$count_ra;$o++)
            {
               if(
$o == 0) {$gggfh "checked";} 
               else {
$gggfh="";}
               echo 
"<input type=radio name=radio[".$i."] value='".$ra[$o]."' ".$gggfh.">".$ra[$o]."<br>";
            }
        echo
"</td></tr><tr><td colspan=2>&nbsp;</td></tr><input type=hidden name=rachek[".$i."] value='".$rt[$i]."'>";
      }

[
b]  if($r[$i] == 5) { echo"<tr><td>".$rrt[$i].$zv."</td><td><input type=file name=em[".$i."] value=''  style='width:100%'></td></tr>[/b]
  <input type=hidden name=emchek["
.$i."] value='".$rt[$i]."'>"; }

  }  

$er_ok=0;

for(
$e=0;$e<count($rt);$e++)
 {
  if(
$rt[$e] !="") { $er_ok++;}
 }

echo 
"<tr><td colspan=2 align=left><br>
<font color=red><small><sup>*</sup></small></font> Поля обязательные для заполнения&nbsp;&nbsp;&nbsp;<input type=submit value='Отправить' >&nbsp;<input type=reset value='Очистить'></td></tr>"
;
echo 
"</table>";
echo 
"<input type=hidden name=i value='".$i."'>";
echo 
"<input type=hidden name=h value='".$h."'>";
echo 
"<input type=hidden name=error value='".$er_ok."'>";
echo
"</form>";
?>



пишет ошибку
Parse error: parse error, unexpected '<' in d:\hst\estvse72-ru_575360dc\http\ind.php on line 31

   
 
 автор: Proger   (14.08.2007 в 23:46)   письмо автору
 
   для: Ксения_954   (14.08.2007 в 23:41)
 

Ну так прочитайте ошибку и исправте ;)

   
 
 автор: sim5   (14.08.2007 в 23:48)   письмо автору
 
   для: Ксения_954   (14.08.2007 в 23:41)
 

Это у вас в коде:

<form action=send.php method=POST enctype="multipart/form-data">;

Это так и записано у вас, или вы пытались выделить этот участок? Откуда там взялись теги BB-кода?

   
 
 автор: sim5   (14.08.2007 в 23:49)   письмо автору
 
   для: Ксения_954   (14.08.2007 в 23:41)
 

Это у вас в коде:

[ b ]<form action=send.php method=POST enctype="multipart/form-data">;[/b]

Это так и записано у вас, или вы пытались выделить этот участок? Откуда там взялись теги BB-кода?

PS. Кроме этого вы должны записать либо так:

<form action=send.php method=POST enctype=\"multipart/form-data\">";

либо так:

<form action=send.php method=POST enctype=multipart/form-data>";

Двойные кавычки внутри двойных надо экранировать, если вы их вставляете.

Точки с запятой и кавычек не должно быть после </tr> (строка выше).

   
 
 автор: Ксения_954   (16.08.2007 в 00:14)   письмо автору
 
   для: sim5   (14.08.2007 в 23:49)
 

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

   
 
 автор: Plahov   (15.08.2007 в 18:29)   письмо автору
 
   для: Ксения_954   (14.08.2007 в 21:17)
 

Этот скрипт - это конструктор создания формы обратной связи, для того чтобы он работал нормально вам надо не только в одном файле вносить изменения /ind.php , но и в отправителе /send.php , а также и в /admin/index.html. Для этого нужно будет добавить дополнительное свойство для конструктора ( отправка файла ). Его я запланировал внести, но только не сейчас (просто я не на родине сейчас, как приеду сразу сделаю).

   
 
 автор: Ксения_954   (16.08.2007 в 00:15)   письмо автору
 
   для: Plahov   (15.08.2007 в 18:29)
 

Было бы здорово. Ваш скрипт мне очень понравился, жаль только что отправки файла нет.

   
Rambler's Top100
вверх

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