Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

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

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

Купить рекламу на форуме - 42 тыс руб за месяц

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

Здравствуйте, делаю добавление в бд с помощью формы. Чтобы записи не добавлялись несколько раз при обновлении страницы прикрепил редирект на ту же страницу. Но он не работает.
Выглядит это так:
Форма:
Код:
<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, 22:50   #2
olegK<<
Пользователь
 
Аватар для olegK<<
 
Регистрация: 05.11.2017
Сообщений: 59
По умолчанию

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

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

Я нашел ошибку, но не могу ее справить. Ошибка следующая :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, 00:13   #5
Kef1r
Форумчанин
 
Регистрация: 13.05.2016
Сообщений: 111
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


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