За последние 24 часа нас посетили 17256 программистов и 1640 роботов. Сейчас ищут 1739 программистов ...

Глюк в форме

Тема в разделе "Прочее", создана пользователем DUCK, 23 ноя 2006.

  1. DUCK

    DUCK Активный пользователь

    С нами с:
    9 окт 2006
    Сообщения:
    55
    Симпатии:
    0
    Имеется страница с двумя фреймами. проблема в одном из них, когда в поле типа Text ввожу инфу какую, и нажимаю Enter то происходит толи обновление толи чтоещ, но не событие Submit. Привожу код:

    PHP:
    1. <html>
    2. <head>
    3. <meta http-equiv='Content-Type' content='text/html; charset=windows-1251'>
    4. <LINK REL=STYLESHEET TYPE='text/css' HREF='../css/Xstyle.css'>
    5.   <script LANGUAGE="JavaScript">
    6.     function res()
    7.     {
    8.      var res1, res2, res3;
    9.      res1 = form1.userfile.value;
    10.      if (form1.txt)
    11.      {
    12.        res2 = form1.txt.value;
    13.      } else res2 = "";
    14.      res3 = form1.flag.value;
    15.      priznOK = "true";
    16.      priznCancel = "false";
    17.      if (res3=="false") {res1=""; res2="";}
    18.      window.returnValue = [res1, res2];
    19.      window.close();
    20.     }
    21.     function canc()
    22.     {
    23.         res1 = "";
    24.         res2 = "";
    25.         priznOK = "false";
    26.         window.returnValue = [res1, res2];
    27.         window.close();
    28.     }
    29.     function unl()
    30.     {
    31.         param1=form1.userfile.value;
    32.         if (priznOK!="true")
    33.         if (form1.flag.value=="true")
    34.           {
    35.             window.open('http://buimain/toropkin/news/editor/upload4.php?prm1='+param1);
    36.           }
    37.     }
    38.   </script>
    39. </head>
    40. <BODY onload="document.body.focus();priznOK='false';" onunload="unl()">
    41. <?php
    42. //загружаем на сервер прикрепленные файлы
    43. include "../inc/funcs.php";
    44. $dest='';
    45. if ($userfile<>'none')
    46.   {if (is_uploaded_file($userfile))
    47.   {
    48.       // если есть русские буквы в названии файла заменяем их на латинские
    49.       $HTML_SPECIAL_CHARS = Array ('ё' => 'jo','Ё' => 'JO','ю' => 'u','а' => 'a','б' => 'b','ц' => 'c','д' => 'd','е' => 'e','ф' => 'f','г' => 'g','х' => 'h','и' => 'i', 'й' => 'i','к' => 'k','л' => 'l','м' => 'm','н' => 'n','о' => 'o','п' => 'p','я' => 'ya','р' => 'r','с' => 's','т' => 't','у' => 'u','ж' => 'g','в' => 'v','ь' => '!','ы' => 'y','з' => 'z','ш' => 'sh','э' => 'a','щ' => 'sch','ч' => 'ch','ъ' => '!','Ю' => 'U', 'А' => 'A','Б' => 'B','Ц' => 'C','Д' => 'D','Е' => 'E','Ф' => 'F','Г' => 'G','Х' => 'H','И' => 'I','Й' => 'I','К' => 'K','Л' => 'L','М' => 'M','Н' => 'N','О' => 'O','П' => 'P','Я' => 'YA', 'Р' => 'R', 'С' => 'S', 'Т' => 'T', 'У' => 'U', 'Ж' => 'G', 'В' => 'V', 'Ь' => '!', 'Ы' => 'Y', 'З' => 'Z', 'Ш' => 'SH', 'Э' => 'A', 'Щ' => 'SCH', 'Ч' => 'CH', 'Ъ' => '!', ' ' => '_');
    50.       foreach ( $HTML_SPECIAL_CHARS as $key=>$value  ){
    51.       $userfile_name = str_replace($key,$value,$userfile_name);}
    52.      //указываем куда и с каким именем будет копироваться файл
    53.      $dest = "../data/files/".$userfile_name;
    54.      //различные проверки
    55.      if (file_exists($dest))
    56.        {EMess('Файл с таким именем уже существует, переименуйте файл и попробуйте снова');
    57.        $flag="false";
    58.        Exx1(NULL);
    59.        }
    60.      else
    61.        {
    62.        //собственно закачка файла
    63.        if (move_uploaded_file($userfile, $dest))
    64.          {$flag="true";
    65.          }
    66.        else
    67.          { EMess('Ошибка сохранения файла');
    68.          unlink('../data/files/'.$userfile_name); //Удаляем успешно закачанные файлы
    69.          $flag="false";
    70.          Exx1(NULL);
    71.          }
    72.      }
    73.   }
    74.   else
    75.     {EMess('Ошибка закачки файла');
    76.     unlink('../data/files/'.$userfile_name); //Удаляем успешно закачанные файлы
    77.     $flag="false";
    78.     Exx1(NULL);
    79.     }
    80. }
    81. else {Mess('Прикрепленных файлов нет, или указанного файла не существует'); $flag="false";}
    82.  
    83. echo "<form name=\"form1\">";
    84. echo "<input type='hidden' name='userfile' value=".$userfile_name.">";
    85. echo "<input type='hidden' name='flag' value=".$flag.">";
    86. if ($priznselect=="false")
    87. {
    88.     echo "<table width=\"100%\" cellspacing=\"0\">";
    89.     echo "<tr id=\"box\">";
    90.     echo "<td>";
    91.     echo "Введите текст ссылки";
    92.     echo "</td>";
    93.     echo "<td>";
    94.     echo "<input name=\"txt\"  type=\"text\" size=\"75\">";
    95.     echo "</td>";
    96.     echo "</tr>";
    97.     echo "</table>";
    98. }
    99. echo "<table width=\"100%\" cellspacing=\"0\">";
    100. echo "<tr id=\"box\">";
    101. echo "<td align='left' width='75%'>";
    102. echo "</td>";
    103. echo "<td align='left' width='5%'>";
    104. echo "<input type='submit' name='ok' width='50' id=\"butt\" value=\"OK\" onClick=\"res()\">";
    105. echo "</td>";
    106. echo "<td align='left' width='20%'>";
    107. echo "<input type='button' name='cancel' width='50' id='butt' value='Отмена' onClick=\"canc();\">";
    108. echo "</td>";
    109. echo "</tr>";
    110. echo "</table>";
    111. ?>
    112. </form>
    113. </body>
    114. </html>
     
  2. мне кажется, что для отлова ошибки следует сократить этот код, удалив не относящиеся к отправке части, или выполнять разные этапы по отдельности.

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

    Anonymous Guest

    На кой?
    На кой?
    А ты его разве пытаешься обработать?
     
  4. avm

    avm Активный пользователь

    С нами с:
    21 сен 2006
    Сообщения:
    597
    Симпатии:
    0
    Адрес:
    Москва
    именно submit и происходит, но поскольку форме не сказано action="..." то запускается тоже самый скрипт.

    p.s. кстати я так и не понял что вы им хотели осуществлять и при чем тут "move_uploaded_file($userfile, $dest)" :lol: