Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Скриптовые языки программирования > PHP
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 16.11.2017, 20:31   #1
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию Не работает редирект

Здравствуйте, делаю добавление в бд с помощью формы. Чтобы записи не добавлялись несколько раз при обновлении страницы прикрепил редирект на ту же страницу. Но он не работает.
Выглядит это так:
Форма:
Код:

<div class="AddSlave">
    
    <form method="post" action="add.php" class="slaveAddform">
        <p><span>Добавить оборудование</span></p>
        <input type="text" name="MainID_Ref" placeholder="MainID_Ref">
        <input type="text" name="ParentType" placeholder="ParentType">
        <input type="text" name="ObjectType" placeholder="ObjectType">
        <input type="text" name="Name" placeholder="Name">
        <input type="text" name="TName" placeholder="TName">
        <input type="text" name="SKod" placeholder="SKod">
        <input type="text" name="FTPFileName" placeholder="FTPFileName">
        <input type="text" name="OldSKod" placeholder="OldSKod">
        <input type="text" name="TypeDBObject" placeholder="TypeDBObject">
        <input type="hidden" name="DateChange" value="<?php echo date ("Y-m-d H:i:s")?>">
        <input type="text" name="ToDelete" placeholder="ToDelete">
        <input type="text" name="WasChange" placeholder="WasChange">
        <input type="text" name="InducedVoltage" placeholder="InducedVoltage">
        <input type="text" name="SMList" placeholder="SMList">
        <br/>
        <br/>
        <input class="btn" type="submit" name="addSlave" value="Добавить">
</form>
 
 
</div>

Добавление и редирект:
Код:

<?php
 
if(isset($_SESSION['new_slave']))
{
    echo "<p class='success'>Новое оборудование было добавлено!</p>";
    unset($_SESSION['new_slave']);
}
if(isset($_POST['addSlave']))
{
 
    $MainID_Ref_Slave=$_POST['MainID_Ref'];
    $ParentType_Slave=$_POST['ParentType'];
    $ObjectType_Slave=$_POST['ObjectType'];
    $Name_Slave=$_POST['Name'];
    $TName_Slave=$_POST['TName'];
    $SKod_Slave=$_POST['SKod'];
    $FTPFileName=$_POST['FTPFileName'];
    $OldSKod_Slave=$_POST['OldSKod'];
    $TypeDBObject_Slave=$_POST['TypeDBObject'];
    $DateChange_Slave=$_POST['DateChange'];
    $ToDelete_Slave=$_POST['ToDelete'];
    $WasChange_Slave=$_POST['WasChange'];
    $InducedVoltage_Slave=$_POST['InducedVoltage'];
    $SMList=$_POST['SMList'];
 
 
 
    $sql="INSERT INTO dbobjectslave (MainID_Ref,ParentType,ObjectType,Name,
    TName,SKod,FTPFileName,OldSKod,TypeDBObject,DateChange,ToDelete,WasChange,
    InducedVoltage,SMList) VALUES (
    '$MainID_Ref_Slave','$ParentType_Slave','$ObjectType_Slave','$Name_Slave',
    '$TName_Slave','$SKod_Slave','$FTPFileName','$OldSKod_Slave',
    '$TypeDBObject_Slave','$DateChange_Slave','$ToDelete_Slave','$WasChange_Slave','$InducedVoltage_Slave',
    '$SMList')";
 
 
if($db->exec($sql)){ 
    $_SESSION['new_slave'] = ' ';
    @header("Location: ". $_SERVER["REQUEST_URI"]);
    exit;
}
    
}
   
?>

Нужна помощь.
Кстати, перед этим находится полностью аналогичное добавление в еще 2 таблицы и с ними редирект работает нормально, а вот с этой беда.
P.S. если нужно могу скинуть полный код, просто он громоздкий, поэтому не стал.
Kef1r вне форума   Ответить с цитированием
Старый 16.11.2017, 23:50   #2
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Адрес: Кропивницкий
Сообщений: 24
Репутация: 10

skype: wheeldraff
По умолчанию

Замените isset на !empty
olegK<< вне форума   Ответить с цитированием
Старый 16.11.2017, 23:56   #3
Andkorol
Профессионал
 
Регистрация: 31.05.2010
Сообщений: 3,174
Репутация: 986
По умолчанию

Как найти ошибку в своем коде?
Andkorol вне форума   Ответить с цитированием
Старый 19.11.2017, 01:01   #4
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Я нашел ошибку, но не могу ее справить. Ошибка следующая :Cannot modify header information - headers already sent by output started at add.php:168 in add.php on line 227
Погуглил про нее, раскоментил в php.ini output_buffering = 4096
А также пробовал кодировку UTF 8 без BOM
И ничего не помогло, хелп...
Kef1r вне форума   Ответить с цитированием
Старый 19.11.2017, 01:13   #5
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 95
Репутация: 10
По умолчанию

Решил, добавлением ob_start(); в самом начале
Kef1r вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Редирект intelxss PHP 9 02.04.2017 23:46
Нужно создать редирект сайта случайным образом, Случайный редирект на 1 из 3 сайтов Sanchez007 JavaScript, Ajax 1 24.11.2014 09:26
Редирект всех запросов на один скрипт не работает на сервере хостера. Goblin PHP 3 12.01.2012 23:07
Редирект 4ok JavaScript, Ajax 2 26.07.2011 15:47




01:05.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


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

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru