header (location...) nefunctional
Discutii despre script-uri si coduri PHP-MySQL, precum si lucru cu XML in PHP.
-
sterica
- Mesaje:285
header (location...) nefunctional
Salutare,
Am urmatorul cod:
Cod: Selectaţi tot
...
$sql = "insert...";
$result = $conn->query($sql);
header ('location: final.php');
//echo "<script>window.location = 'final.php';</script>";
In aceasta varianta de header, nu face trimiterea catre acea pagina, daca recurg la un artificiu js functioneaza.
Cod: Selectaţi tot
Eroare: Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\top.inc.php:2) in C:\xampp\htdocs\ev.php on line 340
Multumesc!
MarPlo
Mesaje:4343
Salut
Pentru ca functia header() (ca si session_start() si setcookie()) sa functioneze, inaintea de apelarea ei trebuie sa nu fie nici un cod care trimite date la browser.
Deci, inainte de utilizarea functiilor mentionate sa nu fie vreun "echo", sau cod html; nici macar vreun spatiu inainte de inceputul: "<?php".
sterica
Mesaje:285
Pentru a intelege mai bine si a ma verifica in acelasi timp, daca aleg una din variantele de mai jos risc sa am erori?
var.1
Cod: Selectaţi tot
<html>
<body>
<p>text text</p>
<?php header ('location:....'); ?>
<body>
</html>
var.2
Cod: Selectaţi tot
<html>
<body>
<?php
echo "<p>text text</p>";
header ('location:....'); ?>
<body>
</html>
var.3
Cod: Selectaţi tot
<html>
<body>
<p>text text</p>
<?php include 'file.php'; ?>
<body>
</html>
file.php
<?php
header ('location:....');
Multumesc!
MarPlo
Mesaje:4343
In mod general toate acele variante returneaza eroare.
Incearca sa adaugi
ob_clean(); inainte de
header('Locatio: ');.
Am testat acest exemplu cu PHP 7.1 si a functionat.
Cod: Selectaţi tot
<html>
<body>
<?php
echo '<p>text text</p>';
// clean the output buffer
ob_clean();
header ('Location: /');
exit;
?>
<body>
</html>
sterica
Mesaje:285
multumesc frumos pentru raspuns