Php problème de header
Résolu
isa--
Messages postés
83
Statut
Membre
-
isa-- Messages postés 83 Statut Membre -
isa-- Messages postés 83 Statut Membre -
Bonjour à tous,
Voila des heures que je m'arrache les cheveux avec un pb de header tout bête sans doute.
Je pense que j'ai des peaux de saucisson devant les yeux pour ne pas le voir...
Message d'erreur classique : "Header may not contain more than a single header, new line detected in C..."
Pas moyen de trouver qu'est ce qui traîne et qui gêne...
J'ai besoin d'aide svp !
Merci d'avance...
Voici mon code : (plutôt simple)
Voila des heures que je m'arrache les cheveux avec un pb de header tout bête sans doute.
Je pense que j'ai des peaux de saucisson devant les yeux pour ne pas le voir...
Message d'erreur classique : "Header may not contain more than a single header, new line detected in C..."
Pas moyen de trouver qu'est ce qui traîne et qui gêne...
J'ai besoin d'aide svp !
Merci d'avance...
Voici mon code : (plutôt simple)
<?php
$c=$_POST['c'];
$ID=$_POST['ID'];
$conn = mysqli_connect('localhost', 'root', '', 'poitoo');
$req = "UPDATE `frais` SET `paye` = 'Y' WHERE `frais`.`ID` = $ID";
$res = $conn->query($req);
mysqli_close($conn);
header('Location: ./payer.php?c='.$c);
?>
5 réponses
-
Salut,
Le problème semble venir du fait que ta variable $c contient un saut de ligne, or comme l'indique le message d'erreur, l'entête ne devrait pas contenir plusieurs ligne.
Essaye simplement de supprimer les sauts de ligne de ta variables $c avant d'effectuer la redirection :$c = preg_replace("/\r|\n/", "", $c); header('Location: ./payer.php?c='.$c);
Bonne journée, -
-
Pas de html, c'est juste un fichier en php (entrée dans une base puis redirection
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonsoir, et si tu faisecho 'Location: ./payer.php?c='.$c;
cela donne quoi? -
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Bonjour,
Pour commencer... active l'affichage des erreurs PHP.
Ensuite, fais une connexion à ta bdd correctement ... (c'est à dire en gérant les éventuelles erreurs.)
Ne mélange pas non plus le style OBJET et le style procédural comme tu l'as fait !!
Puis récupère PROPREMENT les variables AVANT de les utiliser
Ensuite.. gère les éventuelles erreurs dans ta requête
Et pour finir ... toujours mettre un EXIT après une redirection.
Bref...comme ceci:<?php //Activation des erreurs PHP error_reporting(E_ALL); ini_set('display-errors','on'); //connexion propre à la bdd : $conn= @new mysqli('localhost', 'root', '', 'poitoo'); if ($conn->connect_errno) { die('Erreur de connexion : ' . $conn->connect_errno); } //récupération PROPRE des variables AVANT de les utiliser $c = !empty($_POST['c']) ? $_POST['c'] : NULL; $ID = !empty($_POST['ID ']) ? $_POST['ID '] : NULL; //requete if($c && $ID){ $req = "UPDATE `frais` SET `paye` = 'Y' WHERE ID = '$ID'"; if(!$conn->query($req)){ printf("Message d'erreur : %s\n", $conn->error); }else{ $conn->close(); header('Location: ./payer.php?c='.$c); exit(); } } ?>
-
Bonjour,
Merci de ta réponse.
J'ai testé ton code.
A part une erreur à la ligne 17 ( espace après ID), ça passe bien, mais toujours le même message d'erreur :
Warning: Header may not contain more than a single header, new line detected in C:\Users\.........\paiement.php on line 27
Une autre idée ?- Merci de te pencher sur mon problème !
Voici la totalité de mon code : ( ou plutôt le tien !)
<?php
//Activation des erreurs PHP
error_reporting(E_ALL);
ini_set('display-errors','on');
//connexion propre à la bdd :
$conn= @new mysqli('localhost', 'root', '', 'poitoo');
if ($conn->connect_errno) {
die('Erreur de connexion : ' . $conn->connect_errno);
}
//récupération PROPRE des variables AVANT de les utiliser
$c = !empty($_POST['c']) ? $_POST['c'] : NULL;
$ID = !empty($_POST['ID']) ? $_POST['ID'] : NULL;
//requete
if($c && $ID){
$req = "UPDATE `frais` SET `paye` = 'Y' WHERE ID = '$ID'";
if(!$conn->query($req)){
printf("Message d'erreur : %s\n", $conn->error);
}else{
$conn->close();
header('Location: ./payer.php?c='.$c);
exit();
}
}
-