За последние 24 часа нас посетили 63086 программистов и 1741 робот. Сейчас ищут 914 программистов ...

Много exit, как включить include

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

  1. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    PHP:
    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    2. <html>
    3. <head>
    4. </head>
    5.  
    6. <body>
    7. <table width="1000" height="810" border="0" align="center" cellpadding="0" cellspacing="0" class="tabl_fon">
    8.   <?php  include("php/top.php"); ?>
    9.   <tr>
    10. <?php  include("php/left.php"); ?>
    11.     <td class="procent_mal">&nbsp;</td>
    12.     <td class="procent_bol" align="center" valign="top"><table width="100%" border="0" cellpadding="0" cellspacing="0" class="tabl_otstup_centr">
    13.       <tr>
    14. ..............          </tr>
    15.           <tr>
    16.             <td colspan="4" align="center" valign="top">
    17.            
    18.             <?php
    19.  
    20. if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} }
    21. ............{
    22. exit ("<p>Вы ввели не всю информацию, вернитесь назад и заполните все поля!<p/>");
    23. }
    24. if (!preg_match("/[0-9a-z_]+@[0-9a-z_^\.]+\.[a-z]{2,3}/i", $email))
    25. {exit ("Неверно введен е-mail!");}
    26.  
    27.  
    28. function generate_code()
    29. {
    30. ..........}
    31.  
    32. function chec_code($code) //проверяем код
    33. {    $code = trim($code);//удаляем пробелы
    34. else
    35. {
    36.     return FALSE;
    37. }
    38. }
    39. if (!chec_code($_POST['code']))
    40. {
    41. exit ("<p>Вы ввели неверно код с картинки.</p>");
    42. }
    43. if (strlen($login) < 3 or strlen($login) > 15) {
    44. exit ("<p>Логин должен состоять не менее чем из 3 символов и не более чем из 15.</p>"); //останавливаем выполнение сценариев
    45. }
    46. if (strlen($password) < 3 or strlen($password) > 15) {
    47. exit ("<p>Пароль должен состоять не менее чем из 3 символов и не более чем из 15.</p>"); //останавливаем выполнение сценариев
    48. }
    49. if (empty($_FILES['fupload']['name']))
    50. {
    51. $avatar = "avatars/net-avatara.jpg";
    52. }
    53. else
    54. {
    55. }
    56. else
    57.          {
    58. exit ("<p>Аватар должен быть в формате <strong>JPG,GIF или PNG</strong></p>");
    59.          }
    60. }
    61. $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
    62. $myrow = mysql_fetch_array($result);
    63. if (!empty($myrow['id'])) {
    64. exit ("<p>Извините, введённый вами логин уже зарегистрирован. Введите другой логин.</p>");
    65. }
    66. $result2 = mysql_query ("INSERT INTO users (login,password,avatar,email,date) VALUES('$login','$password','$avatar','$email',NOW())");
    67. if ($result2=='TRUE')
    68. {
    69. $result3 = mysql_query ("SELECT id FROM users WHERE login='$login'",$db);
    70. echo "<p>Вам на E-mail выслано письмо с cсылкой, для подтверждения регистрации. Внимание! Ссылка действительна 1 час. <a href='index.php'>Главная страница</a></p>";
    71. }
    72. else {
    73. exit ("<p>Ошибка! Вы не зарегистрированы.</p>");
    74.      }
    75. ?>
    76.             </td>
    77.           </tr>
    78.         </table></td>
    79.       </tr>
    80.     </table></td>
    81.     <td class="procent_mal">&nbsp;</td>
    82.     <?php  include("php/right.php"); ?>
    83.   </tr>
    84.     <?php  include("php/footer.php"); ?>
    85. </table>
    86. </body>
    87. </html>
    88.  
    Проблема в следующем. Если срабатывает условие и выполняется команда exit, то include, которые ниже этой команды не включаются, а как сделать так чтоб они включались??
    Часть кода убрано чтобы незагромождать
     
  2. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    сделай вместо
    PHP:
    1. exit ("<p>Ошибка! Вы не зарегистрированы.</p>");
    просто
    PHP:
    1. echo ("<p>Ошибка! Вы не зарегистрированы.</p>");
     
  3. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Если так сделать, то он сразу все выведет
    Ошибка! Вы не зарегистрированы
    Неверно введен е-mail

    Условий то много!
     
  4. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    вынеси тогда в функцию этот хвост

    PHP:
    1. function tile($with_err = null) {
    2.   if (null !== $with_err) echo ($with_err);
    3. ?>
    4.              </td>
    5.            </tr>
    6.          </table></td>
    7.        </tr>
    8.      </table></td>
    9.      <td class="procent_mal"> </td>
    10.      <?php  include("php/right.php"); ?>
    11.    </tr>
    12.      <?php  include("php/footer.php"); ?>
    13.  </table>
    14.  </body>
    15.  </html><?php
    16. }
    exit меняем на tile, и в конце вызываем опять tile без параметра.
     
  5. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Это как?
    Вот сделал так:
    PHP:
    1. function tile($with_err = null) {
    2.    if (null !== $with_err) echo ($with_err);
    3.  ?>
    4.            
    5.             </td>
    6.           </tr>
    7.         </table></td>
    8.       </tr>
    9.     </table></td>
    10.     <td class="procent_mal">&nbsp;</td>
    11.    
    12.    
    13.     <?php  include("php/right.php"); ?>
    14.  
    15.    
    16.   </tr>
    17.   <tr>
    18.     <td>&nbsp;</td>
    19.     <td>&nbsp;</td>
    20.     <td>&nbsp;</td>
    21.     <td>&nbsp;</td>
    22.     <td>&nbsp;</td>
    23.   </tr>
    24.    
    25.     <?php  include("php/footer.php"); ?>
    26.  
    27. </table>
    28. </body>
    29. </html>
    30. <?php
    31.  }?>
    32.  
    Он мен первый title вывел нормально, но в конце страницы продублировал
    PHP:
    1. <?php  include("php/right.php"); ?>
    2.     <?php  include("php/footer.php"); ?>
    столько раз сколько встречается title на странице
     
  6. engager

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

    С нами с:
    21 янв 2009
    Сообщения:
    1.106
    Симпатии:
    1
    в конце функции tile нужно конечно же сделать вызов exit();
    тогда не будет дублироваться.
     
  7. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    Спасибо огромное. Все получилось. Уже месяц мучаюсь с этим))
     
  8. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    нужно выставлять флаги для каждого случая, отрисовывать опять ту же форму с уже введенными данными, чтобы не гонять посетителя по второму кругу, и допустим выделять их красной рамочкой. Вот и все =)

    Т.е. сначала проверяешь необходимое. При возникновении ошибочного ввода выставляешь переменные типа $phone_error=true. А уже после того, как все проверено, выводишь сообщения вверху красненьким, чтобы посетитель знал, что именно не так. А после - отрисовка элементов ввода, и вокруг каждой рисуешь рамочку. Нет флага - нет красной рамочки.

    Это как вариант.
     
  9. greenzlat

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

    С нами с:
    27 апр 2008
    Сообщения:
    255
    Симпатии:
    0
    igordata
    Не совсем понял как это осуществить. Примерчик не подкинешь??
     
  10. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    опять поповщина. смените учебник.
     
  11. lexa

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

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Mr.M.I.T., у кого-то мальчики кровавые в глазах. Везде ему Попов мерещится. Или ты скачал курсы и внимательно ознакомился для выявления адептов? :)
     
  12. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    lexa
    думай что хочешь. это попов
     
  13. Luge

    Luge Старожил

    С нами с:
    2 фев 2007
    Сообщения:
    4.680
    Симпатии:
    1
    Адрес:
    Минск
    а вдруг Курепин? ;)
     
  14. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    сиськи не похожи