如何停止重新提交php

如何停止重新提交php,php,forms,redirect,post,Php,Forms,Redirect,Post,我尝试使用header('location:login.php');但它不工作,甚至不习惯重定向页面。有什么想法吗? 我还尝试使用JavaScript删除输入,但重新提交不会停止。 无论放在哪里,都会放上标题('location:login.php');这是行不通的 if(isset($_POST['vrsta_predmeta']) AND !empty($_POST['vrsta_predmeta']) AND isset($_POST['res_text']) AND isse

我尝试使用header('location:login.php');但它不工作,甚至不习惯重定向页面。有什么想法吗? 我还尝试使用JavaScript删除输入,但重新提交不会停止。 无论放在哪里,都会放上标题('location:login.php');这是行不通的

if(isset($_POST['vrsta_predmeta']) AND !empty($_POST['vrsta_predmeta']) AND 

    isset($_POST['res_text']) AND isset($_POST['glavni_dug']) AND isset($_POST['res']) AND isset($_POST['zaklj']) AND isset($_POST['povjerilac']) AND isset($_POST['duznik']) AND isset($_POST['predmet_zaveden'])){


    $racunob =  trim($_POST['rac']);
    $obrazlozenje = trim($_POST['obr']);     
    $ob_text = trim($_POST['res_ob']);  
    $res_text = trim($_POST['res_text']);
    $vrsta_pre = trim($_POST['vrsta_predmeta']);
    $izvrsenje = trim(strtolower($_POST['res']));
    $obrazac = trim($_POST['zaklj']);
    $povjerilac = $_POST['povjerilac'];
    $duznik = $_POST['duznik'];
    $datum= trim($_POST['predmet_zaveden']);
     foreach($povjerilac as $key){
     $lica = $db -> prepare("INSERT INTO p_lica(povjerilac, doc_br, dokument_vlasnik) VALUES('$key', '$dok_broj', '$ses_val')");



    }       


    foreach($duznik as $key1){
     $lica1 = $db -> prepare("INSERT INTO d_lica(duznik,doc_br, dokument_vlasnik) VALUES('$key1', '$dok_broj', '$ses_val')");


    }

    $insert_dok = $db -> prepare("INSERT INTO document_tbl(dokument_vlasnik,dokument_broj,vrsta_dokumenta,zakljucak, resenje_izvrsenja,datum,resenje_text,obrazlozenje,obtext,racunob) VALUES('$ses_val','$dok_broj', '$vrsta_pre','$obrazac','$izvrsenje','$datum','$res_text','$obrazlozenje','$ob_text','$racunob')");
    if($lica -> execute() AND $insert_dok -> execute() AND $lica1 -> execute()){


       $lica -> close();
       $lica1 -> close();
       $insert_dok -> close();


      echo '<script>new Messi(\'Dokument uspjesno dodat.\', {title: \'Obavjestenje\', titleClass: \'success\', buttons: [{id: 0, label: \'Close\', val: \'X\'}]});</script>';
    header('location:login.php');
      }else{
       echo '<script>new Messi(\'Dokument uspjesno dodat.\', {title: \'Obavjestenje\', titleClass: \'anim warning\', buttons: [{id: 0, label: \'Close\', val: \'X\'}]});</script>'; 
    }

}
if(设置($\u POST['vrsta\u predmeta'])和!空($\u POST['vrsta\u predmeta'])和
isset($POST['res'u text'])和isset($POST['glavni'u dug'])以及isset($POST['res'])和isset($POST['zaklj'])和isset($POST['duznik'])和isset($POST['premet zaveden')){
$racunbo=修剪($_POST['rac']);
$obrazlozenje=修剪($_POST['obr']);
$ob_text=trim($_POST['res_ob']);
$res_text=trim($_POST['res_text']);
$vrsta_pre=修剪($_POST['vrsta_predmeta']);
$izvrsenje=trim(strtolower($_POST['res']);
$obrazac=修剪($_POST['zaklj']);
$povjerilac=$_POST['povjerilac'];
$duznik=$_POST['duznik'];
$datum=修剪($_POST['predmet_zaveden']);
foreach($povjerilac作为$key){
$lica=$db->prepare(“插入p_lica(povjerilac、doc_br、dokument_vlasnik)值(“$key”、“$dok_broj”、“$ses_val”);
}       
foreach($duznik作为$key1){
$lica1=$db->prepare(“插入到d_lica(duznik、doc_br、dokument_vlasnik)值中(“$key1”、“$dok_broj”、“$ses_val”);
}
$insert_-dok=$db->prepare(“插入到文件中(dokument_-vlasnik,dokument_-broj,vrsta_-dokumenta,zakljucak,resenje_-izvrsenja,datum,resenje_-text,obrazlozenje,obtext,racunbo)”值(“$ses_-val”“,$dok_-broj”“,$vrsta-pre”“,$obrazac”“,$izvrsenje”“,$datum”“,$res-text”“,$res",$obrazlozenje”“,$text”“);
如果($lica->execute()和$insert\u dok->execute()和$lica1->execute()){
$lica->close();
$lica1->close();
$insert_dok->close();
回音“新梅西(\'Dokument uspjesno dodat.\”,{标题:\'Obavjestenje\',标题类:\'success\',按钮:[{id:0,标签:\'Close\',val:\'X\}});
标题('location:login.php');
}否则{
回音“新梅西(\'Dokument uspjesno dodat.\”,{标题:\'Obavjestenje\',标题类:\'anim warning\',按钮:[{id:0,标签:\'Close\',val:\'X\}]);
}
}

输出内容后无法重定向。因为您输出了JavaScript,所以需要将重定向更改为由JavaScript完成

echo '<script>new Messi(\'Dokument uspjesno dodat.\', {title: \'Obavjestenje\', titleClass: \'success\', buttons: [{id: 0, label: \'Close\', val: \'X\'}]});</script>';
header('location:login.php');
//^^^ This won't work.
// Try this instead. Redirects five seconds after the page is loaded.
echo 'window.setTimeout(function() {window.location = "login.php"}, 5000);';

如果不绑定单个参数,为什么要使用准备好的语句?一半的代码是完全不必要的。您是否正在学习PHP,或者这应该是生产代码?它应该是生产代码。什么部分是不必要的?我将发布一个答案,以解决代码本身,因为它应该是生产。这是不安全的,而且容易发生SQL注入。同时,我建议接受约翰·康德的答案,因为这是一个正确的答案,它是不可注射的。我应该在start:ob_start(),这是正确的答案。好吧,如果你说不是,我想没关系。祝你好运(省去我大量打字)。此外,添加ob_start()不是正确答案。可悲的是,代码和“解决方案”都大错特错,我建议您以正确的方式进行修复。这段代码投入生产是错误的。
header('Location: /login.php', true, 303);
exit;