Headers

ghighidu63 Messages postés 37 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 17 février 2012 - 26 déc. 2010 à 16:58
ghighidu63 Messages postés 37 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 17 février 2012 - 29 déc. 2010 à 15:08
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

cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
26 déc. 2010 à 17:52
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++
0
neigedhiver Messages postés 2480 Date d'inscription jeudi 30 novembre 2006 Statut Membre Dernière intervention 14 janvier 2011 19
27 déc. 2010 à 04:52
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à ;)
0
cod57 Messages postés 1653 Date d'inscription dimanche 7 septembre 2008 Statut Membre Dernière intervention 11 septembre 2013 19
27 déc. 2010 à 09:31
bonjour
@neigedhiver
merci pour ton explication (je note)
bne semaine à tous
a++
0
ghighidu63 Messages postés 37 Date d'inscription mardi 6 avril 2010 Statut Membre Dernière intervention 17 février 2012
29 déc. 2010 à 15:08
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
0
Rejoignez-nous