<p>Адрес доставки: <input type="text" name="address" size="50" value="<?php echo $address; ?> "> <p><input type="submit" value="Оформить заказ"> <input type="reset" value="Очистить данные"> </form> </body> </html> <?php // filters param. from form ввода данных Юзера: START if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['name']) && !empty($_POST['name']) && isset($_POST['email']) && !empty($_POST['email']) && isset($_POST['phone']) && !empty($_POST['phone']) && isset($_POST['address']) && !empty($_POST['address'])) { $name = f_clearData($_POST['name'], 'string_forfile'); $email = f_clearData($_POST['email'], 'string_forfile'); $phone = f_clearData($_POST['phone'], 'string_forfile'); $address = f_clearData($_POST['address'], 'string_forfile'); $orderid = $basket['orderid']; // вынимаем из Массива-Корзины-Куки именно уникал.идентификатор Юзера $datetime = time(); // ставим в момент POST'а current TIMESTAMP. (Также можно с помощью $_SERVER['REQUEST_TIME']) $ip_user = $_SERVER['REMOTE_ADDR']; // считываем IP-adress Юзера $path = "{$name}|{$email}|{$phone}|{$address}|{$orderid}|{$datetime}|{$ip_user}\r\n"; //формир.строку из получен.данных для записи в файл orders.txt file_put_contents('orders_log/' . ORDERS_LOG, $path, FILE_APPEND); // открываем соед.с файлом и записываем в него сформированную строку с данными if (!f_resaveOrder($orderid, $datetime)) { echo "Ошибка приложения оформлениЯ заказа"; } else { echo $alert = "Ваш Заказ принят!"; echo <<<END
echo "<hr><a href='mailto:{$email}'>{$name}</a> От: {$datetime}"; //вывод поля name ссылкой, где направление ссылки есть e_mail этого пользователя echo "<p>" . $msg . "</p>"; // вывод поля msg,пропущенное через ф-ю nl2br - делает вывод из таб.БД именно так, как было введено в БД echo "<p align='right'><a href='{$_SERVER['REQUEST_URI']}&del={$id}'> Delete </a></p>"; //делаем ссылку удалить инфо выведенное до этого по id } } else { echo "Извлечение запроса из БД НЕ может быть осуществлено,- в таблице БД нет записей!"; } //иначе,когда и 1и2 условие Не прошли- вывести текст ошибки // Block: вывод Гостевой книги: END //Block: Delete User's Рost: START if (isset($_GET['del'])) { // если глоб.переменная такая послалась именно методом GET $del = f_clearData($_GET['del'], 'integer'); // то принимаем, отфильтровываем как число,целое,положительное if ($del) { // допол.проверка (если есть такой, но уже отфильтрованный параметр) $sql = "DELETE FROM msgs WHERE id={$del}"; // формируем запрос к таблице БД mysqli_query($link, $sql) or die(mysqli_error($link)); // исполняем запрос(действие) к таблице БД и ложим результат в $result mysqli_close($link); // закрываем соединение с БД header("Location: " . $_SERVER['SCRIPT_NAME'] . '?id=gbook'); // перезапрос страницы методом GET - НЕ ПРОДУМАН,через:'?id=gbook' - БРЕДДД-ПЕРЕДЕЛАТЬ!!!!! } } //Block: Delete User's Рost: END /////////////////////////////////////////////////////////////////////////////////////////////////////////////////
<?php header("Content-type:text/html; charset=utf-8"); // передаем заголовок с нужной кодировкой header("Cache-Control:no-store"); //запрет на кеширование страницы(т.е. НЕ КЭШИРОВАТЬ); если нужно вообще // посыл заголовка для формы-выбора "Куда отправимся?" в header.inc.php $url = strip_tags($_GET["url"]); if ($url) { header("Location: {$url}"); exit; } //////////////////////////////////////////////////////////////////////// $id = f_clearData($_GET['id'], 'string_to_lower'); // инициализируем $id из данных пришедших методом GET из меню выбора страниц сaйта(l_sidebar.inc.php <- data_menus.inc.php) ////////////////////////////////////////////////////////////////////////////////////////////////////////// // Config. paramameters for connecting and CONNECT to BD 'gbook': define('DB_HOST', 'localhost'); // наш хост localhost define('DB_LOGIN', 'root'); // Логин к БД define('DB_PASSWORD', ''); // Пароль к БД (тут у нас его нет,отсутствует) define('DB_NAME', 'gbook'); // Имя нашей БД $link = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_NAME) or die(mysqli_connect_error()); // connect to BD 'gbook' (in the mySQL) ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
} if (!empty($all_catalog)) { // если мы тут, значит в $all_catalog массив, если он Не пустой, то выводим все в заданном формате echo "Всего товаров (шт.) - " . mysqli_affected_rows($link) . "<br>"; // корректно ли работает эта ф-я ??? foreach ($all_catalog as $catalog) { // мет.GET будет уходить идентифик.(id) товара echo "<tr>\n\t\t\t\t<td> {$catalog['title']} </td>\n\t\t\t\t<td> {$catalog['author']} </td>\n\t\t\t\t<td> {$catalog['pubyear']} </td>\n\t\t\t\t<td> {$catalog['price']} </td>\n\t\t\t\t<td> <a href='{$_SERVER['SCRIPT_NAME']}?id={$catalog['id']}'> В корзину </a> </td>\n\t\t\t</tr>"; } } else { echo "В Каталоге БД нет товаров!"; } // Block: вывод Списка всех товаров из Каталога: END // Block: добавление товара из Каталога в КОРЗИНУ Юзеру(по $id): START if (isset($_GET['id'])) { $id = f_clearData($_GET['id'], 'integer'); } // принимаем,инициализ.,фильтруем пар.(id) - идентификатор товара из Каталога БД if ($id === '0') { header("Location: " . $_SERVER['SCRIPT_NAME']); exit; } elseif ($id) { $quantity = 1; // кол-во товара в КОРЗИНЕ Юзера со значением по умолчанию =1 f_addBasket($id, $quantity); // ДОБАВЛЕНИЕ ТОВАРА в КОРЗИНУ Юзера header("Location: " . $_SERVER['SCRIPT_NAME']); // перезапрашиваем обратно страницу catalog.php } // Block: добавление товара из Каталога в КОРЗИНУ Юзеру(по $id): END ?>
<?php if ($_SERVER['REQUEST_METHOD'] == "POST") { // была ли отправлена Форма или нет, если да,-то принимаем переданные переменные и фильтруем их $rows = f_clearData($_POST['rows'], 'integer'); $cols = f_clearData($_POST['cols'], 'integer'); $color = f_clearData($_POST['color'], 'string'); } ?> <!-- Input form START--> <form method="POST" name='form' action="<?php echo $_SERVER['REQUEST_URI']; ?> "> Задать кол-во строк: <input type="text" name="rows" value="<?php echo $rows; ?> "><br><br> <!-- value="....."- чтобы значения введенных данных пользователем не удалялись. Удалить,если не надо, чтобы так было --> Задать кол-во столбцов: <input type="text" name="cols" value="<?php echo $cols; ?> "><br><br> Задать цвет: <input type="text" name="color" value="<?php echo $color; ?> "><br><br> <input type="submit" value="CREATE !"> </form> <!-- Input form END-->
//include "..secure/login.php"; include_once "lib.inc.php"; // + библиотека функций include_once "config.inc.php"; //+ основной файл с конфигурационн.настройками ob_start(); // Стартуем буфферизацию контента // filters param. from form ввода данных Юзера и его сообщения: START if ($_SERVER['REQUEST_METHOD'] == "POST" && isset($_POST['title']) && !empty($_POST['title']) && isset($_POST['author']) && !empty($_POST['author']) && isset($_POST['pubyear']) && !empty($_POST['pubyear']) && isset($_POST['price']) && !empty($_POST['price']) && isset($_POST['price1']) && !empty($_POST['price1'])) { $title = f_clearData($_POST['title'], 'string_to_db_prepare'); $author = f_clearData($_POST['author'], 'string_to_db_prepare'); $pubyear = f_clearData($_POST['pubyear'], 'integer'); $price = f_clearData($_POST['price'], 'integer'); // если цена будет вбиваться в одно поле,то сдесь 2-м параметром передать float_notsign и в БД не забыть поставить параметр в соответст.поле "DOUBLE" и в mysqli_stmt_bind_param "d" $price1 = f_clearData($_POST['price1'], 'integer'); $price = $price . '.' . $price1; f_addCatalog($title, $author, $pubyear, $price); $alert = "Товар успешно добавлен в БД"; header("Refresh:2; {$_SERVER['REQUEST_URI']}"); } elseif ($_SERVER['REQUEST_METHOD'] !== "POST") { // если была отправлена форма c данными от Юзера методом POST $alert = " "; } elseif ($_SERVER['REQUEST_METHOD'] == "POST" && empty($title) or empty($author) or empty($pubyear) or empty($price)) { // если была отправлена форма c данными от Юзера методом POST $alert = "Вы заполнили не все имеющиеся поля Формы!"; } elseif (!f_addCatalog($title, $author, $pubyear, $price)) { $alert = "ERROR: добавления товара в БД!"; } ?> <html>
<textarea name='msg' id="msg" cols="51" rows="10" maxlength="100" title="Максимально 100 символов"></textarea> <br><br> <input type='submit' value='SEND'> <input type="reset" value="Clear"> </form> <br><hr> <?php // filters param. from form_question START if ($_SERVER['REQUEST_METHOD'] == "POST") { $name = f_clearData($_POST['name'], 'string_forfile'); // если отправлять будем в БД, то указать string_to_db $age = f_clearData($_POST['age'], 'integer'); $theme = f_clearData($_POST['theme'], 'string_forfile'); // если отправлять будем в БД, то указать string_to_db $msg = f_clearData($_POST['msg'], 'string_forfile'); // если отправлять будем в БД, то указать string_to_db } // filters param. from form_question END // print param. from form_question START $res_mail = ''; // инициализируем переменную для индикации успешности правильного заполнения формы и результата отправки письма (пока пустая) if ($_SERVER['REQUEST_METHOD'] !== "POST") { // если форма с данными не была отправлена, т.е.Юзер только зашел на новую страницу,-то ничего не выводить echo " "; $res_mail = false; } elseif (!$name or !$theme or !$msg) { // если эти переменные НЕ существуют, т.е.что-то не ввели в одно из этих полей, то выводим текст об этом echo "Вы НЕ заполнили одно или несколько текстовых полей формы !"; $res_mail = false; } elseif (!empty($name) && !empty($theme) && !empty($msg) && $age == false) {
<?php ob_start(); // Стартуем буфферизацию контента include_once "lib.inc.php"; // + библиотека функций include_once "config.inc.php"; //+ основной файл с конфигурационн.настройками if (isset($_GET['logout'])) { // если передан мет.GET ($logout)- т.е.если нажали ссылку "Завершить сеанс" $logout = f_clearData($_GET['logout'], 'string_to_lower'); // принимаем ($logout), фильтруем f_logOut(); // вызываем ф-ю,которая перебросит снова на авторизаци. страницы } ?> <!DOCTYPE html> <html> <head> <title>АДМИНКА</title> <!-- в зависимости от того, как отработает block print $title сверху файла --> <meta http-equiv="content-type" <meta name="viewport" content="width=device-width, initial-scale=1.0"> <link rel="stylesheet" type="text/css" href="includes/style.css" /> </head> <body> <h1>Администрирование магазина</h1> <h3>Доступные действия:</h3> <ul> <li><a href='add_cat.php'>Добавление товара в каталог</a></li> <li><a href='orders_view.php'>Просмотр готовых заказов</a></li> <li><a href='create_user.php'>Добавить SuperUser</a></li>
echo "</tr>"; // строка шапки таблицы: end echo "</table>"; // таблица отрисовка: end } } // BLOCK: вывода данных в браузер из файла path.log в папке(log): END /* _____________если надо вывод сделать попроще,- не таблицей, а просто списком нумерованным,и чтобы выводилось ВСЕ без условий каких-то, то: if(file_exists('log/'.PATH_LOG)) { //если существует такой файл(Имя файла зашита в константу PATH_LOG (см.index.php) ) в папке log, то: $log_arr= file('log/'.PATH_LOG); // читаем сод.этого файла в массив построчно(ф-ей file) и кладем в таком виде в $log_arr if(is_array($log_arr)) { //делаем еще одну проверку, теперь уже на предмет массив ли зашел в $log_arr. Если да, то выводим в виде и в цикле: echo "<ol>"; foreach ($log_arr as $value_line) { list($dt,$page_on,$ref)= explode('||', $value_line); // разбиваем строку по метке '||', которую мы определяли как разделитель для строки данных в $path (см.log.inc.php) и которая сейчас у нас сидит в $log_arr, а потом присваиваем полученное еще и ф-ии list(),которая присваивает разбитую(по метке '||')строку указанным 3-м переменным, с которыми теперь можно работать отдельно с каждой $dt= date('d-m-Y H:i:s',$dt); echo "<li> $dt: $ref => $page_on </li>"; } echo "</ol>"; } }*/ ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // BLOCK: удаления файла path.log в папке[log] после нажатия кнопки формы на этой же странице: START if ($_SERVER['REQUEST_METHOD'] == "POST") { $delete = f_clearData($_POST['delete'], 'string'); // передается из формы-КНОПКИ УДАЛЕНИЯ скрытым(hidden) типом unlink('log/' . PATH_LOG); header("Location: " . $_SERVER['REQUEST_URI']); // перезапрос страницы методом GET } // BLOCK: удаления файла path.log в папке(log) после нажатия кнопки формы на этой же странице: END