Headers

Signaler
Messages postés
37
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
17 février 2012
-
Messages postés
37
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
17 février 2012
-
Mon script php met Warning: Cannot modify header information - headers already sent by et je veux faire un setcookie

------Script------
<?php #Script 3.4 - index.php
$page_title = 'Codes Produits';
include ('includes/headercode.html');



if (isset($_POST['submitted'])) {

if(isset($_POST['code'])) $code=$_POST['code'];
else $code="";



if(empty($code))
{
echo "<warn> Vous avez oublier de remplire le champ code.</warn>";
}

if(isset($_POST) && !empty($_POST['code']))
{
//Connexion
require_once("fonctions/sqlconnect.php");
$_POST = array_map('mysql_real_escape_string', $_POST);
$code = $_POST['code'];


$result = mysql_query("SELECT * FROM support_codes WHERE code='$code'");

if($row = mysql_fetch_array($result))
{
setcookie("code", MD5("code"), time()+3600);
$url=$row['support_redirect'];
echo "<ok>Votre code à bien été identifier</ok>";
echo '<META http-equiv="refresh" content="3; URL='.$url.'">';
echo '<center></center>';
}
else
{
echo "<warn>Ce code n'a pas été identifier veuillez réesayer</warn>";
}
}
}
?>
----/Fin du script----

4 réponses

Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
18
bonsoir

tu peux pas faire une redirection et un affichage
par echo

echo "<ok>Votre code à bien été identifier</ok>";
echo '<META http-equiv="refresh" content="3; URL='.$url.'">';
echo '<center><img src="images/chargement.gif" border="0"

a++
Messages postés
2483
Date d'inscription
jeudi 30 novembre 2006
Statut
Membre
Dernière intervention
14 janvier 2011
18
Salut,

Cod57, t'as répondu à côté. Désolé...

Quand on place un cookie sur le navigateur du visiteur, PHP le fait avec les entêtes HTTP. Et il n'est plus possible d'envoyer des entêtes HTTP une fois qu'on a affiché du texte.
En gros, les cookies se placent avant les echo.

C'est pas une histoire de redirection... M'enfin faut dire aussi, si les membres n'avaient pas cette foutue habitude de ne copier que la moitié des messages d'erreurs (et d'oublier la moitié la plus importante !!), ce serait plus facile de comprendre de quoi il s'agit...

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
Messages postés
1654
Date d'inscription
dimanche 7 septembre 2008
Statut
Membre
Dernière intervention
11 septembre 2013
18
bonjour
@neigedhiver
merci pour ton explication (je note)
bne semaine à tous
a++
Messages postés
37
Date d'inscription
mardi 6 avril 2010
Statut
Membre
Dernière intervention
17 février 2012

C'est bon j'ai trouver comment me passer de cette fichus erreur header. Voila comment j'ai proceder .
<?php
if (isset($_COOKIE['code']) && !empty($_COOKIE['code']) && $_COOKIE['code'] = = MD5("xxx"))
{
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=MPTCSchool.php">';
}

if (isset($_POST['submitted'])) {

if(isset($_POST['code'])) $code=$_POST['code'];   
else      $code="";


if(isset($_POST) && !empty($_POST['code']))
{
//Connexion
require_once("fonctions/connection.php");

$_POST = array_map('mysql_real_escape_string', $_POST);
$code = $_POST['code'];


$result = mysql_query("SELECT * FROM support_codes WHERE code='$code'");

if($row = mysql_fetch_array($result))
  {
  if (!headers_sent()) {
  setcookie("code", MD5("$code"), time()+3600);
  $url=$row['support_redirect'];
  include ('includes/headercode.html');
  echo "<ok>Votre code à bien été identifier</ok>";
  echo '<META http-equiv="refresh" content="3; URL='.$url.'">';
  echo '<center></center>';
  }
  }
else
{
include ('includes/headercode.html');
echo "<warn>Ce code n'a pas été identifier veuillez réesayer</warn>";

}
}
if(empty($code))
{
include ('includes/headercode.html');
echo "<warn>Vous avez oublier de remplire le champ code</warn>";
}
}else
{
include ('includes/headercode.html');}

?>


<!-- CONTENT -->

Bienvenue


 Votre code produit ou code support, est celui que l'on vous a fournit lors de l'achat ou du téléchargement d'un des produits 





<form action ='' method=post autocomplete="off">
<FIELDSET>

<LEGEND ACCESSKEY=C>Insérer votre code produits ici</LEGEND>
  Votre code Produit
,  
,

----

 
,

----

,

</center></form>
</FIELDSET>

<!-- END CONTENT -->
<?php
include ('includes/footercode.html')
?>


J'ai juste mi le set cookie en premier juste après les verifications he oui parceke quand l'utilisateur est conecter il seras automatiquement rediriger mais par contre si il n'es pas connecter, php se passe des premier instrction a savoir
<?php
if (isset($_COOKIE['code']) && !empty($_COOKIE['code']) && $_COOKIE['code'] == MD5("teste"))
{
echo '<META HTTP-EQUIV=Refresh CONTENT="0; URL=MPTCSchool.php">';
}

if (isset($_POST['submitted'])) {

if(isset($_POST['code'])) $code=$_POST['code'];   
else      $code="";

et ensuite passe au set cookie qui bien sure crypte le code en MD5 et donc aucun header nest encore envoyer

Yeppeeeeeeee
c'est ki le rois ???? lol merci a tous quameme si vous voulez securiser encor plus le script merci a vous