За последние 24 часа нас посетили 59006 программистов и 1771 робот. Сейчас ищут 919 программистов ...

Как правильно сверстать сайт на PHP ?

Тема в разделе "HTML и CSS", создана пользователем obivankenobi, 17 фев 2012.

  1. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Здравствуйте. Не могу сформулировать правильный запрос в google, поэтому пишу сюда.
    Необходимо сделать сайт с единым меню повсюду. Независимо от того, на какой бы странице я бы ни находился - меню и стиль должны быть одни. Есть обработчики на php, стили css, скрипты js,
    Так вот , как мне всю эту штуку соединить вместе и сделать так, чтобы каждый раз в php странице мне не приходилось бы писать кучу html кода. Буду рад получить ссылочку, где доступно будет разжевано.Спасибо.
     
  2. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
  3. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    )))) Я вот делал вот так, но исключительно интуитивно. Думал есть другой способ.
    Код (PHP):
    1. <html>
    2.  
    3. <head>
    4.   <title>справочник</title>
    5. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    6. <link rel="stylesheet" href="c:/web/www/eclipse/login/style/main.css" type="text/css">
    7. <link rel="shortcut icon" href="images/phone.ico" type="text/x-ico">
    8. </head>
    9.  
    10.  
    11. <body>
    12. <div class="header">
    13.  
    14. <?php include 'includes/header.inc';?>
    15. </div>
    16.  
    17. <div>
    18.  
    19. <table align="center" class="main">
    20.     <tr class="header">
    21.  
    22.         <td> <?php include 'includes/menu.inc';?>  </td>
    23.     </tr>
    24.  
    25.     <tr class="main">
    26.  
    27.         
    28.         <td colspan="100%"> <?php
    29.                                 // Открытие страницы приветствия. кнопка "главная" основного меню.
    30.                                 if (isset($content))echo $content;
    31.  
    32.                                 // Вывод всех записей. кнопка "справочник" основного меню.
    33.                                 if (isset($_POST['all'])) {require_once 'allnumbers.php'; view();}
    34.  
    35.                                 // Нахождение сотрудника по фамилии. кнопка "найти" основного меню.
    36.                                 if (isset($_POST['search'])) {require_once 'by_surname.php';search();}
    37.  
    38.                                 // Изменение данных сотрудника. кнопка "изменить" страницы справочник.
    39.                                 if (isset($_GET['edit'])) {require_once 'edit_profile.php';edit();}
    40.  
    41.                                 // Добавление нового сотрудника. кнопка "Добавить" страницы справочник.
    42.                                 if (isset($_POST['add'])) {require_once 'addworker.php';add();}
    43.  
    44.                                 // Добавление нового сотрудника. кнопка "Добавить" страницы справочник.
    45.                                 if (isset($_GET['adddata'])) {require_once 'addworker.php';add();}
    46.  
    47.                                 // Удаление сотрудника и  все данных о нем изо всех таблиц. кнопка "удалить профиль" страницы редактирование данных.
    48.                                 if (isset($_POST['delete'])) {require_once 'delete.php';del();}
    49.  
    50.                                 // Добавдение нового номера для сотрудника.
    51.                                 if (isset($_POST['addnumber'])) {require_once 'addnumber.php';addnumber();}
    52.  
    53.                                 // Обновление данных сотрудника.
    54.                                 if (isset($_GET['update'])) {require_once 'update.php';update();}
    55.  
    56.                                 // Изменение номера сотрудника
    57.                                 if (isset($_GET['edit_number'])) {require_once 'edit_number.php';edit_number();}
    58.  
    59.                                 // Обновление номера сотрудника
    60.                                 if (isset($_POST['update_number'])) {require_once 'update_number.php';update_number();}
    61.  
    62.                                 // Удаление номера сотрудника.
    63.                                 if (isset($_POST['delete_number'])) {require_once 'delete_number.php';delete_number();}
    64.  
    65.                                 // Изменение емайла сотрудника
    66.                                 if (isset($_GET['edit_email'])) {require_once 'edit_email.php'; edit_email();}
    67.  
    68.                                 // Обновление email сотрудника
    69.                                 if (isset($_GET['update_email'])) {require_once 'update_email.php';update_email();}
    70.  
    71.                                 // Удаление email сотрудника
    72.                                 if (isset($_GET['delete_email'])) {require_once 'delete_email.php';delete_email();}
    73.  
    74.  
    75.                                 // Добавдение нового email для сотрудника.
    76.                                 if (isset($_POST['addemail'])) {require_once 'addemail.php';addemail();}
    77.                                 ?>
    78.         </td>
    79.  
    80.     </tr>
    81.         
    82.     <tr class="footer">
    83.         <td colspan="100%"> <?php include 'includes/footer.inc';?></td>
    84.     </tr>
    85.  
    86. </table>
    87.  
    88. </div>
    89. </body>
    90.  
    91. </html>
     
  4. igordata

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

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

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    я вот и спрашиваю, как можно сделать красиво, чтобы мой код не вызывал подобных ассоциаций)))
    и можно развернутый ответ, почему жесть?
     
  6. yuri

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

    С нами с:
    16 янв 2012
    Сообщения:
    288
    Симпатии:
    2
    На мой взгляд include - совершенно приемлемый способ.

    В MVC фреймворках тоже инклуды точно так же используются. Другое дело что движок это дело компилит и в кеш кладет как надо, но сам инклуд - точно такой же как в примере выше :))))
     
  7. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    я вот с этого места решил дальше не читать)))
    а вот этот паравоз:
    ... заслуживает применения 1 ключа с множеством значений и проверкой switch:
    Код (PHP):
    1. $mode = isset($_POST['mode'])?$_POST['mode']:'default';
    2. switch($mode)
    3. {
    4. case 'addemail': ... .. .. . break;
    5. case 'addnumber': ... .. .. . break;
    6. ....
    7. ...
    8. ..
    9. default: die('bad mode'); break;
    10. } 
    Добавлено спустя 2 минуты 39 секунд:
    вы запутали меня. конечно $_GET['mode'] а пост-данные для немного другого надо использовать
     
  8. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    Почему?

    Насчет switch спасибо. Намного читабельность повышается.

    А про POST и GET скажу одно, - get я использовал,чтобы в адресной строке увидеть правильно ли ссылка формируется, да и вообще механизм понять, да так и не поменял обратно.
     
  9. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    а надо (ИМХО) именно GET
    всегда в браузере и в журналах апача мы будем видеть какой "режим" запрошенной страницы. еще в GET - доп.параметры типа идентификатора сущности, с которой мы работаем. а в POST только отправляемая форма. если что-то пошло не так - делаем var_dump($_POST) и читаем какие данные отправились в запросе зная какой режим у нас выбран и с чем мы должны работать. если увидели что сам массив правильный - вчитываемся и дебажим кусок кода относящийся к этому конкретному режиму работы, проверяя на всех этапах как и с чем он взаимодействует, как меняются данные и тд и тп. отладили - весь дебаг закомментировали/удалили и считаем скрипт рабочим.
     
  10. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    зачем вам это, ответьте пожалуйста?
     
  11. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    я пишу диплом. написал большинство скриптов. теперь хочу все это привести к общему знаменателю.
     
  12. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    делите на ноль ;)
     
  13. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    во-первых вам вобще не нужно после инклуда писать вызов функции. вы можете содержимое функции выволить в файл и при инклуде он исполнится.

    во-вторых почитайте про switch. он используется вместо десятка ифов.

    в-третьих, организуйте парсинг урла через $_SERVER['REQUEST_URI'] - вас за это будут уважать.

    на пятерку: избавиться вобще от свича и ифов, свалив все страницы в один каталог.
     
  14. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    но тогда будут запускаться сразу все мои скрипты. мне ведь нужно, чтобы они выполнялись по нажатию на кнопку. как быть в этом случае?
    про switch уже написали, спасибо, буду иметь в виду.

    этой функцией, наряду с basename() я буду узнавать имя страницы. а как потом это использовать?

    тут вроде попроще. подключить файл с функциями и делать вызов функций из этого файла, да?
     
  15. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    инклудишь файл и он выполняется. в чем беда?

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

    я в шоке нахрен. это диплом? а пять лет вы где были? или у вас инст говно и ходить в него не требовалось?
     
  16. obivankenobi

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

    С нами с:
    10 фев 2012
    Сообщения:
    14
    Симпатии:
    0
    главное, что я диплом сам пишу. а загвоздка как раз возникла в довольно простом вопросе, как это часто и бывает.спасибо всем откликнувшимся.
     
  17. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Дурдом... Уже на php верстают сайты :), велосипеды).

    Вам нужно в профи записываться по любому.
     
  18. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    в профисианалы ;)
     
  19. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Ну или даже туда :)