ФорумПрограммированиеPHP для идиотов → Вывод результата php скрипта в теле html.

Вывод результата php скрипта в теле html.

  • m0rt

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 5 сентября 2012 г. 17:44

    Начну с того, что я только начал изучать php, посему не судите строго ;)

    Итак, суть проблемы, подскажите пожалуйста как выводить правильно php через html (то, что мешать хтмл и пхп не желательно, я в курсе, это всего лишь для закрепления знаний, а не для какого-то реального сайта). Теперь объясняю детали, есть index.html, мне необходимо произвести авторизацию пользователя не выходя за пределы этого index.html.

    Код index.php

    <html>
    <body>

    <div style="margin:0; width:600px; height:600px; background-color:#999">

    <?php
    include "auth.php";
    ?>

    </div>

    </body>
    </html>

    Т.е. тут все просто, я банально делаю вывод auth.php в блоке.

    Вот мой auth.php

    <?php

    if (!isset ($_POST['login'])) //Если не передан параметр "логин" то..
    {
    echo file_get_contents('login-form.html'); //..то выводим форму для ввода "логина"
    }
    else //Если передан "логин" то..
    {
    include "config.php"; //Подключаемся к MySQL..
    mysql_select_db($DB); //Выбираем Базу данных..

    $login = ($_POST['login']); //Берем логин из формы авторизации
    $password = ($_POST['password']); //Берем пароль от туда же

    //В переменную заносим текст запроса в БД (Выбираем столбец "id" в таблице "users",
    //при условии если логин и пароль из столбцов "login" и "password" будут совпадать с переданными из формы
    $query = "SELECT `id`
    FROM `users`
    WHERE `login`='{$login}' AND `password`='{$password}'
    LIMIT 1";

    $sql = mysql_query($query) or die(mysql_error()); //Передаем наш запрос БД и заносим ответ в переменную.

    if (mysql_num_rows($sql) == 1) //Если количество строк в ответе нашей БД будет = 1, то..
    {
    echo file_get_contents('admin-menu.html'); //Выводим панель/приветствие.
    }
    else
    {
    die('Такой логин с паролем не найдены в базе данных. И даём ссылку на повторную авторизацию.'); //Если строк >1, то неверные данные.
    }
    }

    ?>

    Сорри за коментарии к коду, делал для себя.. Сразу скажу, что скрипт авторизации полностью рабочий. Скрипт старался максимально упростить, для будущей работы над ошибками.

    Что в итоге я имею. В моем index.html в блоке выводиться форма авторизации (login-form.html), затем при выводе данных сообщения (либо об успешной авторизации(подключение admin-menu.html) либо об ошибке логина/пароля) выводятся уже вне index.html.

    ЗЫ Надеюсь нормально смог объяснить проблему.
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 5 сентября 2012 г. 18:19, спустя 35 минут 10 секунд

    не понял что значит "выводятся уже вне index.html". наверное все-таки index.php ? и как это вне его?

    кстати die(блаблабла) в твоем случае рвет разметку, т.к. теги уже не закрываются после него
    ιιlllιlllι унц-унц
  • m0rt

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 5 сентября 2012 г. 18:28, спустя 8 минут 42 секунды

    Вне index.html - имею в виду, что вывод сообщения идет не в блоке index.html, а в index.php. А мне необходимо чтоб весь вывод php скриптов шел в этом самом блоке в index.html (Т.е. форма авторизации, ошибка логина и пароля, и admin-menu.html, выводилось в блоке).

    Как закрыть теги после die(блаблабла)? Не понял ошибки..
  • artoodetoo

    Сообщения: 5147 Репутация: N Группа: в ухо

    Spritz 5 сентября 2012 г. 18:38, спустя 9 минут 56 секунд

    1. Еще раз — где твой index.html? его нет

    2. Никак. die значит умереть прямо сейчас, или die или теги. выбор за тобой
    ιιlllιlllι унц-унц
  • m0rt

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 5 сентября 2012 г. 18:48, спустя 10 минут 23 секунды

    Опечатку сделал, первый код это и есть index.html.

    Не могу найти где тут редактировать сообщение..
  • m0rt

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 5 сентября 2012 г. 19:00, спустя 12 минут 8 секунд

    index.php - не существует, я имел в виду

    Вне index.html - имею в виду, что вывод сообщения идет не в блоке index.html, а в auth.php. А мне необходимо чтоб весь вывод php скриптов шел в этом самом блоке в index.html (Т.е. форма авторизации, ошибка логина и пароля, и admin-menu.html, выводилось в блоке).
  • m0rt

    Сообщения: 5 Репутация: N Группа: Кто попало

    Spritz 5 сентября 2012 г. 19:08, спустя 7 минут 44 секунды

    Вот непонятный момент в auth.php:
    echo file_get_contents('login-form.html'); - Выводит нормально в блоке.
    echo file_get_contents('admin-menu.html'); - Выводит на auth.php, вместо index.html

    Почему такое происходит?

Пожалуйста, авторизуйтесь, чтобы написать комментарий!