За последние 24 часа нас посетили 19054 программиста и 1618 роботов. Сейчас ищут 893 программиста ...

Проблема с перезагрузкой страницы

Тема в разделе "PHP для новичков", создана пользователем sergus, 25 авг 2010.

  1. sergus

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

    С нами с:
    25 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    Здравствуйте!
    Есть форма ввода логина и пароля, вызываемая через аякс при нажатии на "Вход".
    После заполнения формы и отправки (при удачном входе) должна произойти перезагрузка индексной страницы и вывести соответствующее меню.
    Непонятно, работает всё как надо только в Опере, в ИЕ, Хроме, ФФ не работает. Подскажите, как исправить?
    Вот коды формы отправки и обработчика соответственно:

    Код (Text):
    1. <script type="text/javascript">
    2. $(document).ready(function(){
    3.   var options = {
    4.    target: "#output2",
    5.     beforeSubmit: showRequest,  
    6.     success: showResponse,
    7.     timeout: 3000
    8.   };
    9.   $('#form_intr').submit(function() {
    10.     $(this).ajaxSubmit(options);
    11.     return false;
    12.   });
    13. });
    14. function showRequest(formData, jqForm, options) {
    15.     var queryString = $.param(formData);
    16.     $('.ppp').show();
    17.     var queryString = $.param(formData);
    18.     return true;
    19. }
    20.  
    21. function showResponse(responseText, statusText)  {
    22.     $('img.ppp').hide();
    23.     $('#form_intr').hide();
    24. }
    25. </script>
    26. <table width="115" border="0" cellspacing="0" cellpadding="0">
    27.         <tr>
    28.           <td width='18' align="center"><img style='display: none' class='ppp' src='../blog/images/ajaxloader.gif'></td>
    29.           <td align="center" style='padding:10px 0 15px 0;'><h1>Вход</h1></td>
    30.         </tr>
    31.       </table>  
    32. <form id='form_intr' action='vhod.php' method='post'>
    33. <input name='master_log' type='text' size='15' maxlength='15' value='Имя'
    34. onfocus="if(this.value=='Имя')this.value='';"
    35. onblur="if(this.value=='')this.value='Имя';">
    36. <input name='master_pass' type='password' size='15' maxlength='15' value='Пароль'
    37. onfocus="if(this.value=='Пароль')this.value='';"
    38. onblur="if(this.value=='')this.value='Пароль';">
    39. <select name='in'>
    40.     <option value='1'>Владелец</option>
    41.     <option value='2'>Мастер</option>
    42. </select>
    43. <input  id='submit' type='submit' name='submit' value='Войти'>
    44. </form>
    Файл vhod.php:

    PHP:
    1. <?php
    2. if (isset($_POST['in'])) { $in=$_POST['in']; if ($in =='') { unset($in);} }
    3.  
    4. if (isset($_POST['master_log'])) { $master_log = $_POST['master_log']; if ($master_log == '') { unset($master_log);} }
    5.  if (isset($_POST['master_pass'])) { $master_pass=$_POST['master_pass']; if ($master_pass =='') { unset($master_pass);} }
    6.  
    7. if (empty($master_log) or empty($master_pass)) {
    8. exit ("<span style='color:red'><strong>Вы ввели не всю информацию, вернитесь назад и заполните все поля!</strong></span>"); }
    9.  
    10. $master_log = stripslashes($master_log);
    11. $master_log = htmlspecialchars($master_log);
    12.  
    13. $master_pass = stripslashes($master_pass);
    14. $master_pass = htmlspecialchars($master_pass);
    15.  
    16. $master_log = trim($master_log);
    17. $master_pass = trim($master_pass);
    18. include ("bd.php");
    19.  
    20. $master_pass = md5($master_pass);
    21. $master_pass = strrev($master_pass);
    22. $master_pass = $master_pass."b3p6f";
    23.  
    24. $result = mysql_query("SELECT * FROM table WHERE master_log='$master_log' AND master_pass='$master_pass' AND activation='1'",$db);
    25. $myrow = mysql_fetch_array($result);
    26. if (empty($myrow['id']))
    27. {
    28.  
    29. $select = mysql_query ("SELECT ip FROM error WHERE ip='$ip'");
    30. $tmp = mysql_fetch_row ($select);
    31. if ($ip == $tmp[0]) {
    32.  
    33. $result52 = mysql_query("SELECT col FROM error WHERE ip='$ip'",$db);
    34. $myrow52 = mysql_fetch_array($result52);
    35.  
    36. $col = $myrow52[0] + 1;mysql_query ("UPDATE error SET col=$col,date=NOW() WHERE ip='$ip'");
    37. }
    38.  
    39. else {
    40. mysql_query ("INSERT INTO error (ip,date,col) VALUES ('$ip',NOW(),'1')");
    41. }
    42.  
    43. exit ("<span style='color:red'><strong>Извините, введенный вами логин или пароль неверный</strong></span>");
    44.  
    45. }
    46. else {
    47.  
    48.           $_SESSION['master_pass']=$myrow['master_pass'];
    49.           $_SESSION['master_log']=$myrow['master_log'];
    50.           $_SESSION['id']=$myrow['id'];
    51.           $_SESSION['in']=$in;
    52.  
    53.  
    54. echo("<meta http-equiv=\"refresh\" content=\"0;url=" . $_SERVER['HTTP_REFERER'] . "\">");
    55.  
    56. ?>
     
  2. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    А если вместо
    Код (Text):
    1.  echo("<meta http-equiv=\"refresh\" content=\"0;url=" . $_SERVER['HTTP_REFERER'] . "\">");
    Попробовать
    Код (Text):
    1.  echo "<script>document.location.href='" . $_SERVER['HTTP_REFERER'] . "';</script>";
    Или
    Код (Text):
    1.  header("location:" . $_SERVER['HTTP_REFERER']);
     
  3. Ensiferum

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

    С нами с:
    11 июл 2010
    Сообщения:
    1.292
    Симпатии:
    0
    Адрес:
    из секты поклонников Нео
    С header прокатит, если выше никаких выводов текста не было
     
  4. sergus

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

    С нами с:
    25 авг 2010
    Сообщения:
    15
    Симпатии:
    0
    echo "<script>document.location.href='" . $_SERVER['HTTP_REFERER'] . "';</script>";
    Так прокатило!
    Спасибо огромное!