Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Помогите пожалуйста с перезапросом страницы методом GET [2]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (3): « 1 [2] 3 »   

> Описание: Пишу лабараторную работу №8 второго курса php Борисова 2015 Создание гостевой книги. Попал в засаду с перезапросом страницы методом GET
Строитель Модератор
Отправлено: 21 Мая, 2017 - 23:21:48
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик, код индекса сюда опубликуйте, плиз.
 
 Top
новый ученик
Отправлено: 21 Мая, 2017 - 23:26:12
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




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

Это index.php
<?
require_once 'inc/cookie.inc.php';
require_once 'inc/headers.inc.php';
// Имя файла журнала
//define('PATH_LOG', 'path.log');
const PATH_LOG = "path.log" ;
require_once 'inc/log.inc.php';
?>
<!DOCTYPE html>
<html>
<head>
<title><?= $title?></title>
<meta charset="utf-8" />
<link rel="stylesheet" type="text/css" href="inc/style.css" />
</head>
<body>

<div id="header">
<!-- Верхняя часть страницы -->
<img src="logo.gif" width="187" height="29" alt="Наш логотип" class="logo" />
<span class="slogan">обо всём сразу</span>
<!-- Верхняя часть страницы -->
</div>

<div id="content">
<!-- Заголовок -->
<h1><?= $header?></h1>
<blockquote>
<?php
if(1 === $visitCounter){
echo "Спасибо, что зашли на огонек";
}else{echo "Вы зашли к нам $visitCounter-й раз.<br /> Последнее посещение: $lastVisit";}
?>

</blockquote>
<!-- Заголовок -->
<!-- Область основного контента -->
<?php
require_once 'inc/routing.inc.php';
?>
<!-- Область основного контента -->
</div>
<div id="nav">
<!-- Навигация -->
<h2>Навигация по сайту</h2>
<ul>
<li><a href='index.php'>Домой</a></li>
<li><a href='index.php?id=contact'>Контакты</a></li>
<li><a href='index.php?id=about'>О нас</a></li>
<li><a href='index.php?id=info'>Информация</a></li>
<li><a href='test/index.php'>Он-лайн тест</a></li>
<li><a href='index.php?id=gbook'>Гостевая книга</a></li>
<li><a href='eshop/catalog.php'>Магазин</a></li>
<li><a href='index.php?id=log'>Журнал посещений</a></li>
</ul>
<!-- Навигация -->
</div>
<div id="footer">
<!-- Нижняя часть страницы -->
&copy; Супер-мега сайт, 2000 &ndash; <?= date('Y')?>
<!-- Нижняя часть страницы -->
</div>
</body>
</html>
 
 Top
Строитель Модератор
Отправлено: 21 Мая, 2017 - 23:28:44
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик, что-то я не вижу в вашем индексе подключения файла gbook.inc.php
 
 Top
новый ученик
Отправлено: 21 Мая, 2017 - 23:31:31
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик, что-то я не вижу в вашем индексе подключения файла gbook.inc.php

Он вот здесь require_once 'inc/routing.inc.php'; а это его код
<?php
switch($id){
case 'contact': include 'inc/contact.inc.php'; break;
case 'about': include 'inc/about.inc.php'; break;
case 'info': include 'inc/info.inc.php'; break;
case 'log': include 'inc/view-log.inc.php'; break;
case 'gbook': include 'inc/gbook.inc.php'; break;
default: include 'inc/index.inc.php';
}
 
 Top
Строитель Модератор
Отправлено: 21 Мая, 2017 - 23:31:57
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




Так как у вас там подключается не один файл в индексе, то все я просматривать не имею желания. Поэтому попробуйте использовать этот вариант для индекса
Спойлер (Отобразить)
 
 Top
новый ученик
Отправлено: 21 Мая, 2017 - 23:40:39
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
Так как у вас там подключается не один файл в индексе, то все я просматривать не имею желания. Поэтому попробуйте использовать этот вариант для индекса
Спойлер (Отобразить)

Спасибо!!!! Запись добавляется. Только после отправки снова переход на index.php. А как сделать чтоб после отправки формы страница оставалась гостевой а не index.php?
 
 Top
Строитель Модератор
Отправлено: 21 Мая, 2017 - 23:46:34
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик пишет:
как сделать чтоб после отправки формы страница оставалась гостевой
Вероятно прописать в строке header("Location: " . $_SERVER["PHP_SELF"]); вместо $_SERVER["PHP_SELF"] имя директории и файла с кодом гостевой. Вроде бы так: inc/routing.inc.php

А всё вместе, если адрес верен, будет иметь такой вид:
 
 Top
новый ученик
Отправлено: 21 Мая, 2017 - 23:59:06
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик пишет:
как сделать чтоб после отправки формы страница оставалась гостевой
Вероятно прописать в строке header("Location: " . $_SERVER["PHP_SELF"]); вместо $_SERVER["PHP_SELF"] имя директории и файла с кодом гостевой. Вроде бы так: inc/routing.inc.php

А всё вместе, если адрес верен, будет иметь такой вид:

Спасибо!!!! Написал вот так header("Location: index.php?id=gbook"); exit; и всё заработало. Теперь последний вопрос немножко не по теме. Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию??? Очень хочется Правильно поблагодарить за помощь!
 
 Top
Строитель Модератор
Отправлено: 22 Мая, 2017 - 00:01:49
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик пишет:
Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию?
Потому что эта возможность станет доступна после публикации вами 50-и постов ))
 
 Top
новый ученик
Отправлено: 22 Мая, 2017 - 00:07:50
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик пишет:
Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию?
Потому что эта возможность станет доступна после публикации вами 50-и постов ))

Понял. Всё равно Огромное Спасибо за Помощь!!!! Следующая тема не за горами. Я пока не понимаю как в этой гостевой сделать удаление записи.... Буду завтра голову ломать. А если не додумаюсь снова буду Умных Знающих людей спрашивать...
 
 Top
Строитель Модератор
Отправлено: 22 Мая, 2017 - 00:15:36
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик пишет:
Строитель пишет:
новый ученик пишет:
Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию?
Потому что эта возможность станет доступна после публикации вами 50-и постов ))

Понял. Всё равно Огромное Спасибо за Помощь!!!! Следующая тема не за горами. Я пока не понимаю как в этой гостевой сделать удаление записи.... Буду завтра голову ломать. А если не додумаюсь снова буду Умных Знающих людей спрашивать...
Да не за что Закатив глазки На счёт удаления - опишу принцип, а реализацию уже будете допиливать самостоятельно:

1. Выбираете из базы id-данных, которые подлежат удалению
2. Подставляете в цикле эти id'шники в html-тег ссылки, например так:

<a href="delet.php?delet='. $row['id'] .'">'. $row['name'] .'</a>

3. В файле delet.php (или в одном из ваших файлов) проверяете наличие $_GET['delet'] и если она не пуста, то передаёте эти id'шники в sql-запрос на удаление записей
 
 Top
новый ученик
Отправлено: 22 Мая, 2017 - 11:15:03
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик пишет:
Строитель пишет:
новый ученик пишет:
Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию?
Потому что эта возможность станет доступна после публикации вами 50-и постов ))

Понял. Всё равно Огромное Спасибо за Помощь!!!! Следующая тема не за горами. Я пока не понимаю как в этой гостевой сделать удаление записи.... Буду завтра голову ломать. А если не додумаюсь снова буду Умных Знающих людей спрашивать...
Да не за что Закатив глазки На счёт удаления - опишу принцип, а реализацию уже будете допиливать самостоятельно:

1. Выбираете из базы id-данных, которые подлежат удалению
2. Подставляете в цикле эти id'шники в html-тег ссылки, например так:

<a href="delet.php?delet='. $row['id'] .'">'. $row['name'] .'</a>

3. В файле delet.php (или в одном из ваших файлов) проверяете наличие $_GET['delet'] и если она не пуста, то передаёте эти id'шники в sql-запрос на удаление записей

Огромное Спасибо за подсказки. Я сделал чуть иначе. Так как было по условиям задания лабораторной работы без дополнительных файлов. Борисов сам сформировал ссылку на удаление записи. Ещё раз Спасибо за помощь! Теперь я знаю где и как правильно включить буферизацию.

(Отредактировано автором: 22 Мая, 2017 - 17:30:48)

 
 Top
новый ученик
Отправлено: 22 Мая, 2017 - 17:54:58
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик пишет:
Строитель пишет:
новый ученик пишет:
Почему когда я нажимаю вам Спасибо! Мне говорят что у меня не достаточно записей чтоб осуществить эту операцию?
Потому что эта возможность станет доступна после публикации вами 50-и постов ))

Понял. Всё равно Огромное Спасибо за Помощь!!!! Следующая тема не за горами. Я пока не понимаю как в этой гостевой сделать удаление записи.... Буду завтра голову ломать. А если не додумаюсь снова буду Умных Знающих людей спрашивать...
Да не за что Закатив глазки На счёт удаления - опишу принцип, а реализацию уже будете допиливать самостоятельно:

1. Выбираете из базы id-данных, которые подлежат удалению
2. Подставляете в цикле эти id'шники в html-тег ссылки, например так:

<a href="delet.php?delet='. $row['id'] .'">'. $row['name'] .'</a>

3. В файле delet.php (или в одном из ваших файлов) проверяете наличие $_GET['delet'] и если она не пуста, то передаёте эти id'шники в sql-запрос на удаление записей

Простите Уважаемый, что снова к вам! Поторопился заявлять что всё работает... Сам нашёл несколько ошибок в работе. Например не заэкранировал строку запроса на дабавление новой записи. С которой возникла проблема. После экранирование строки запись перестала добавляться. Никакой ошибки не выдаёт просто запись не добавляет. Я так понимаю что эта функция с чем-то ссорится а с чем не пойму. Если экранирование убрать то всё вполне работает.
/* Сохранение записи в БД */
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if (isset($_POST['name'], $_POST['email'], $_POST['msg'])) {//Проверяем отправлена ли форма
$name = trim(strip_tags($_POST['name']));// Принимаем и фильтруем данные
$email = trim(strip_tags($_POST['email']));
$msg = trim(strip_tags($_POST['msg']));

$sql = mysqli_real_escape_string($link,"INSERT INTO msgs ( name, email, msg) VALUES ('$name', '$email', '$msg')");//Запрос на добавление новой записи
$res = mysqli_query($link, $sql);// Отправляем запрос на добавление новой записи
if( !$res)//В случае ошибки выводим сообщение о ней в браузер
echo mysqli_error($link);
}
header("Location: index.php?id=gbook");//посылаем заголовок на перезапрос страницы методом GET
exit;
}
/* Сохранение записи в БД */
 
 Top
Строитель Модератор
Отправлено: 22 Мая, 2017 - 18:42:19
Post Id



Участник


Покинул форум
Сообщений всего: 1580
Дата рег-ции: Февр. 2014  
Откуда: Украина


Помог: 73 раз(а)




новый ученик, у вас не правильно. Попробуйте так
Спойлер (Отобразить)
 
 Top
новый ученик
Отправлено: 22 Мая, 2017 - 19:17:51
Post Id


Новичок


Покинул форум
Сообщений всего: 21
Дата рег-ции: Май 2017  


Помог: 0 раз(а)




Строитель пишет:
новый ученик, у вас не правильно. Попробуйте так
Спойлер (Отобразить)

Спасибо!!!! Вот теперь всё действительно работает. Сам я до этого не скоро бы додумался... Я правильно понял что mysqli_real_escape_string только по одной переменной может экранировать? Борисов ничего об этом не говорит в уроке. Когда буду полностью уверен что все косяки нашёл и убрал залью сюда весь код страницы.

(Отредактировано автором: 22 Мая, 2017 - 19:23:26)

 
 Top
Страниц (3): « 1 [2] 3 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB