Рефреш след добавяне ?

Teodotko

Registered
Код:
<div id="write" style="display: none;">

<?php
include('conf.php');
function filter($string) {
                $string = htmlspecialchars($string);
                $string = addslashes($string);
        return $string;
}
$_GET     = array_map("filter", $_GET);
$_POST    = array_map("filter", $_POST);
if(isSet($_POST['button'])) {
        $ot  = $_POST['user'];
        $izp = $_POST['izp'];
        $pesen = $_POST['pesen'];
        $query = mysql_query("INSERT INTO `pozdravi` (ot, id, izp, pesen) VALUES('$ot','NULL','$izp','$pesen')")or die(mysql_error());
        echo "Ready !<br><a href=\"index.php\">Go look it :)</a>";
} else {
        echo "
        <form method=\"POST\">
        Your name: <br /><input type=\"text\" MAXLENGTH=\"15\" name=\"user\">
       <br>
        Text (maxlength:100) <br /><textarea rows=\"2\" cols=\"20\" MAXLENGTH=\"100\" name=\"pesen\">Your msg here ...</textarea> <br>
        <input type=\"submit\" name=\"button\" value=\"SCREAM\">";
}
?>
<br /><br />


</div>

Как да рефрешна страницата след добавяне на инфо от тази форма ?
 
PHP:
<div id="write" style="display: none;">

<?php
include('conf.php');
function filter($string) {
                $string = htmlspecialchars($string);
                $string = addslashes($string);
        return $string;
}
$_GET     = array_map("filter", $_GET);
$_POST    = array_map("filter", $_POST);
if(isSet($_POST['button'])) {
        $ot  = $_POST['user'];
        $izp = $_POST['izp'];
        $pesen = $_POST['pesen'];
        $query = mysql_query("INSERT INTO `pozdravi` (ot, id, izp, pesen) VALUES('$ot','NULL','$izp','$pesen')")or die(mysql_error());
        echo "Ready !<br><a href=\"index.php\">Go look it :)</a>";
   header("location: your_file.php");
} else {
        echo "
        <form method=\"POST\">
        Your name: <br /><input type=\"text\" MAXLENGTH=\"15\" name=\"user\">
       <br>
        Text (maxlength:100) <br /><textarea rows=\"2\" cols=\"20\" MAXLENGTH=\"100\" name=\"pesen\">Your msg here ...</textarea> <br>
        <input type=\"submit\" name=\"button\" value=\"SCREAM\">";
}
?>
<br /><br />


</div>

На местото на header("location: your_file.php");

your_file.php напиши името на файла.

Другия вариант е с meta tag

HTML:
<meta http-equiv="refresh" content="5" />
 
Да не би проблема да е , че е вмъкнат файла ? Това ми е индекса :

Код:
<?php include("header.php"); ?>
     <?php include("shout/index.php"); ?>
        <?php include("shout/add.php"); ?>
 
<?php include("footer.php"); ?>
 
Проблема не е в това, че файла е вмъкнат, а в това, че кода ти е омешан - РНР и HTML на едно място. Единствения правилен начин за пренасочване в РНР е чрез header, но пред header не трябва да имаш никаква информация, която се изпраща към браузъра, например никакъв HTML код, а вероятно в header и index е пълно с HTML. Правилното решение е да си пренапишеш кода като отделиш РНР от HTML. Ако не го направиш, както ти каза nom3r1, вместо header(location.....) сложи:

HTML:
echo '<meta http-equiv="refresh" content="0" />';

Но това е възможно най-грешното решение, защото всъщност не е решение на проблема, въпреки, че ще работи.
 
Преди header не трябва да има никакво echo - в никой файл. Ако ще пренасочваш преди това не трябва никакъв изход да има. Най-вероятни ти излиза грешка или се записва в error_log нещо от типа на "Cannot modify header information - headers already sent".
 

Back
Горе