Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> запрет отправки запроса при обновлении страницы..
ewerost  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




<?php
//подключаем авторизацию
include ('avt.php');

//загружаем конфиг
include ('config/config2.php');

//подключаем функции
include ('include.php');

//авторизация проверка
if ($avt != 'OK') {
exit ();
}

$num = mysql_real_escape_string(substr($_REQUEST['num'], 0, 1024));
$num = intval($num);
$text = mysql_real_escape_string(nl2br(substr($_POST['text'], 0, 102400)));


if ($text != '' && $num != '') {
send_mail($adminmail, "Новый ответ в тикете", "Был добавлен <a href='/adminbill/tiketsv.php?num={$num}'>новый ответ</a> в тикете #{$num}");
$today = date("Y-m-d H:i:s");
$querytim = "SELECT MAX(`nump`) FROM `tikets` WHERE `user` = '" . $ID . "' AND `num`='" . $num . "'";
mysql_query('SET NAMES utf8');
$querytim = MYSQL_QUERY($querytim);


if (!$querytim) {
$error = 'Ошибка инсерта тикета<br />';
include ('templ/home.html');
}
$nump = mysql_result($querytim, 0);
$nump += 1;
$qt = "insert into `tikets` (`num`, `user`, `username`, `text`, `date`, `nump`)
VALUES ('
$num', '$ID', '$login', '$text', '$today', '$nump')";
mysql_query('SET NAMES utf8');
$resultPqt = MYSQL_QUERY($qt);


if ($resultPqt) {
$errorti .= 'сохранено!';
$qn1 = "UPDATE `tikets`
SET `status`='new_u'
WHERE `num` = '"
. $num . "' AND `user` = '" . $ID . "' AND `nump` = '0' AND `status` != 'new_u'
Limit 1"
;
mysql_query('SET NAMES utf8');
$qn1 = MYSQL_QUERY($qn1);
if (!$qn1) {
$error .= 'Ошибка обновления тикета<br />';
include ('templ/home.html');
}
}



else {
$error .= 'Ошибка инсерта тикета<br />';
include ('templ/home.html');
}
}




if ($num != '') {
$queryti = "SELECT `text`, `date`, `nump`, `username`, `reqname`
FROM `tikets`
WHERE `user` = '"
. $ID . "' AND `num`='" . $num . "'
ORDER BY `nump` ASC"
;
mysql_query('SET NAMES utf8');
$resultti = MYSQL_QUERY($queryti);
if (!$resultti) {
$error = 'Ошибка выполнения запроса тикета<br />';
include ('templ/home.html');
}

$Dlti = mysql_num_rows($resultti);
include ('templ/home.html');
include ('templ/tiketsv.html');
if ($Dlti != '0') {
$qn = "UPDATE `tikets`
SET `status`='ok'
WHERE `num` = '"
. $num . "' AND `user` = '" . $ID . "' AND `nump` = '0' AND `status` != 'new_u'
Limit 1"
;
mysql_query('SET NAMES utf8');
$qn = MYSQL_QUERY($qn);
if (!$qn) {
$error .= 'Ошибка обновления тикета<br />';
include ('templ/home.html');
}
}
}

?>


и сам файл html

<div class="contentblockall">
<div
class="contentblock">
<div
class="contentblockblock">
<div
class="contentblocktableblock">
<div
class="contentblocktable">
<div
class="contentblocktablebgtitle">
<div
class="contentblocktabletitle">
<h1>
Тикеты</h1>
</div>
</div>
<div
class="contentblocktablebgcontblock">
<div
class="contentblocktablebgcont">
<table
width="100%">
<tr>
<td>

<?php
echo $errorti; ?>
<?php

while ($row = mysql_fetch_array($resultti)) {
if ($row['nump'] == '0') {
echo '<div class="tiktitlebox">
<div class="tiktitleboxcont">
<b><tit2>'
. nl2br($row['text']) . '<tit2></b>
<dat2>'
. $row['date'] . '</dat2>
<br></div></div>'
;
}
else {
echo '
<div class="tikmessagetitle">
<div class="tikmessagetitlecont">
<use>'
. $row['username'] . '</use>
<adm>'
. $row['reqname'] . '</adm>
<dat>'
. $row['date'] . '</dat>
</div></div>
<div class="tikmessagetext">
<div class="tikmessagetextcont">
'
. nl2br($row['text']) . '
</div></div>
'
;
}
}

?>
<br>
<table>
<form
method="POST" class="application" accept-charset="UTF-8" action="tiketsv.php">
<tr>
<td> <textarea
class="validate" name="text" rows="5" cols="80"></textarea></td>
</tr>
<tr>
<td>
<input
type="hidden" name="num" value="<?=$num ?>" />
<input
type="submit" class="fbutton2" value="Отправить сообщение" />
</td>
</tr>
</form>
</td>
</tr>
</table>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<?php
include ("footer.php");?>


Если пользователь отправляет тикет а потом нажимает кнопку обновить страницу, тикет дублируется, подскажите рабочий код чтобы это исправить..у меня только 2 этих файла..готов отблагодарить материально!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Kusss  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1355
Пользователь №: 28976
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 77




перезагружай страницу после обработчика через header.
почему ана обновляет 2 раз ? Потому что есть данные из формы.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




подскажите как это правильно сделать в коде? я не профессионал..
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22691
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 599




ewerost
А как делать переадресацию на PHP через функцию header ?


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




header("Location: http://www.example.com/");
я не знаю куда его вставить правильно чтобы работало
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14968
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




Цитата (ewerost @ 15.11.2015 - 10:04)
header("Location: http://www.example.com/");
я не знаю куда его вставить правильно чтобы работало

Ставишь в том месте, где завершена обработка данных (без ошибок).
Логика така. Ты завершил обработку, всё сохранил. header('Location....') позволяет перейти на нужную страницу, "забыв" про ГЕТ/ПОСТ данные. Теперь даже если юзер нажмет F5, то данных для повторной отправки нет.
Также ты можешь использовать header('Refresh: ...'), чтобы переход делался не мгновенно, а через несколько секунд. За это время ты можешь показать юзеру какое-нибудь сообщение (точнее, целую страницу) об успешности принятия данных от него. Так сделано, например, на этом форуме smile.gif Refresh работает аналогично Location, но только делает переход не сразу, а через некоторое время.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




я это все прекрасно понял, я вставлял его и в начале и где по моему мнению кончается принятие данных и в конце, проблема в том что хтмл файл подключается инклудом в пхп файле и когда я вставляю хедер мне опера пишет что страница содержит бесконечные перенаправления
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5492
Пользователь №: 35718
На форуме: 4 года, 15 дней
Карма: 167




ewerost, грязный у вас код.
mysql_query('SET NAMES utf8'); - достаточно написать один раз при соединении с бд, а не перед каждым запросом

$num = mysql_real_escape_string(substr($_REQUEST['num'], 0, 1024));
$num = intval($num);

заменить на
$num = intval(substr($_REQUEST['num'], 0, 1024));

ну и обработчик с забубённой логикой, поэтому и не знаете куда перенаправление присунуть
на сколько я разумею, письмо должно отправляться уже после всех проверок и манипуляций с БД, и по логике как раз перенаправление должно быть после отправки письма


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




я вкурсе что код грязный, но он не мой..достался от программиста..кто нибудь может подсказать что подправить в текущем чтобы работало?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14968
Пользователь №: 4190
На форуме: 8 лет, 9 месяцев, 28 дней
Карма: 443




Цитата (ewerost @ 15.11.2015 - 11:43)
мне опера пишет что страница содержит бесконечные перенаправления

Ну так ты код-то покажи, где именно и что ты вставил! Я предполагаю, что ты не так сделал, но без кода не могу ничего утверждать.


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




код выше, в теме..самый первый пост
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




<?php
//подключаем авторизацию
include ('avt.php');

//загружаем конфиг
include ('config/config2.php');

//подключаем функции
include ('include.php');

//авторизация проверка
if ($avt != 'OK') {
exit ();
}

$num = intval(substr($_REQUEST['num'], 0, 1024));
$text = mysql_real_escape_string(nl2br(substr($_POST['text'], 0, 102400)));
$urls = "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];

if ($text != '' && $num != '') {
send_mail($adminmail, "Новый ответ в тикете", "Был добавлен <a href='/adminbill/tiketsv.php?num={$num}'>новый ответ</a> в тикете #{$num}");
$today = date("Y-m-d H:i:s");
$querytim = "SELECT MAX(`nump`) FROM `tikets` WHERE `user` = '" . $ID . "' AND `num`='" . $num . "'";
mysql_query('SET NAMES utf8');
$querytim = MYSQL_QUERY($querytim);


if (!$querytim) {
$error = 'Ошибка инсерта тикета<br />';
include ('templ/home.html');
}
$nump = mysql_result($querytim, 0);
$nump += 1;
$qt = "insert into `tikets` (`num`, `user`, `username`, `text`, `date`, `nump`)
VALUES ('
$num', '$ID', '$login', '$text', '$today', '$nump')";

$resultPqt = MYSQL_QUERY($qt);


if ($resultPqt) {
$errorti .= "сохранено!";
$qn1 = "UPDATE `tikets`
SET `status`='new_u'
WHERE `num` = '"
. $num . "' AND `user` = '" . $ID . "' AND `nump` = '0' AND `status` != 'new_u'
Limit 1"
;
$qn1 = MYSQL_QUERY($qn1);
header("Location: $urls");
if (!$qn1) {
$error .= 'Ошибка обновления тикета<br />';
include ('templ/home.html');
}
}



else {
$error .= 'Ошибка инсерта тикета<br />';
include ('templ/home.html');
}
}




if ($num != '') {
$queryti = "SELECT `text`, `date`, `nump`, `username`, `reqname`
FROM `tikets`
WHERE `user` = '"
. $ID . "' AND `num`='" . $num . "'
ORDER BY `nump` ASC"
;

$resultti = MYSQL_QUERY($queryti);
if (!$resultti) {
$error = 'Ошибка выполнения запроса тикета<br />';
include ('templ/home.html');
}

$Dlti = mysql_num_rows($resultti);
include ('templ/home.html');
include ('templ/tiketsv.html');
if ($Dlti != '0') {
$qn = "UPDATE `tikets`
SET `status`='ok'
WHERE `num` = '"
. $num . "' AND `user` = '" . $ID . "' AND `nump` = '0' AND `status` != 'new_u'
Limit 1"
;

$qn = MYSQL_QUERY($qn);
if (!$qn) {
$error .= 'Ошибка обновления тикета<br />';
include ('templ/home.html');
}
}
}

?>
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




вот как я пробую..вижу просто пустой экран после отправки сообщения
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
inpost  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Помагите Здесь живу!!!
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 22691
Пользователь №: 20039
На форуме: 6 лет, 11 месяцев, 27 дней
Карма: 599




ewerost
Пропиши
error_reporting(-1);
ini_set('display_errors',1);

Это позволит вывести на экран ошибки, которые ТЫ должен будешь подправить, а не мы.

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


--------------------
Обучаю веб-программированию качественно и не дорого: http://school-php.com
Фрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
ewerost  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 20
Пользователь №: 41984
На форуме: 1 год, 1 месяц, 16 дней
Карма:




понятно
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса