Warning: Cannot modify header information - headers already sent in C:\xampp\htd

Résolu
btissam -  
 btissam1998 -
Bonjour, aidez moi

<?php
ob_start();
session_start();
require_once('connexion.php');
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
if(isset($_POST['login'])){
$username=$_POST['username'];
$motpasse=$_POST['motpasse'];
if($username&&$motpasse){
$query="SELECT*from user where username='$username' AND motpasse='$motpasse'";
$query_run=mysqli_query($conn,$query);
$rep = mysqli_fetch_assoc($query_run);
if($rep!=''){
$_SESSION['id_user'] = $rep['id_user'];}
$row=mysqli_num_rows($query_run);
if($row==1){
flush();
header('Location: index(1).php');
exit();

//echo"<script type='text/javascript'>location.href='index(1).php';</script>";

//die('should have redirected by now');
}else{
echo "username ou password incorrect";
}
}else{
echo "veuillez saisir tous les champs";
}
}
?>

Configuration: Windows / Chrome 89.0.4389.82

4 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

Pour commencer, lorsque tu postes du code sur le forum tu dois utiliser les BALISES DE CODE.
Explications (à lire entièrement !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code

Ensuite, merci d'appliquer les r conseils donnés ici : https://forums.commentcamarche.net/forum/affich-37584947-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Enfin, l'extension mysql_* est obsolète...
Désormais tu dois passer à PDO ( ma préférence... ) ou mysqli https://www.commentcamarche.net/faq/43261-php-l-extension-mysql-est-obsolete#top


0
btissam1998
 
On peut utiliser le pdo et procedural dans même projet ?
0
btissam1998
 
J'ai travaillé avec pdo toujours reste le même promblème
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > btissam1998
 
Bah, il faudrait nous montrer ton code en PDO...
0
btissam1998
 
j'ai trouvé le problème dans securityuser.php lorsque je l'enlève le header fonctionne mais j'ai besoin de la securité

<?php
session_start();
require_once('connexion.php');
if (!$_SESSION['username']) {

header('Location: login(1).php');
}
?>
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
peux-tu partager le message d'erreur complet?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je t'ai expliqué que tu devais utiliser les balises de code pour poster ton code sur le forum....

Concernant ton souci, toutes les instructions PHP header. Doivent se situer avant tout affichage HTML ou écho de PHP .....

quoi qu'il en soit, comme tu ne nous montre pas ton code complet, il nous est impossible de t'en dire davantage.
0
btissam1998
 


<?php
ob_start();
session_start();
require_once('connexion.php');
error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);
if (!$_SESSION['username']) {
flush();
header('Location:login(1).php');
exit();
//echo'<script >document.location.replace("login(1).php");</script>';
}

0
btissam1998
 
Notice: Undefined index: username in C:\xampp\htdocs\gauto-preview\gauto-preview\securityuser.php on line 7

Warning: Cannot modify header information - headers already sent in C:\xampp\htdocs\gauto-preview\gauto-preview\securityuser.php on line 9
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584
 
as-tu essayé en supprimant la ligne avec flush()?
0
btissam1998 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Flush affiche l'erreur
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
l'ob_start et le flush n'ont aucune utilité dans ton code... retire les.

Ensuite... tu as des erreurs car ta variable de session n'existe pas.

Pour éviter cela.. il faut récupérer PROPREMENT les variables AVANT de les utiliser :
Par exemple
<?php
session_start();

error_reporting(E_ALL | E_WARNING | E_NOTICE);
ini_set('display_errors', TRUE);

require_once('connexion.php');


$username = !empty($_SESSION['username']) ? $_SESSION['username'] : NULL;

if (!$username) {
  header('Location:login(1).php');
  exit();
  //echo'<script >document.location.replace("login(1).php");</script>';
}



PS: Merci de relire le lien concernant l'utilisation des balises de code que etu n'as pas du lire entièrement !!
Il faut, DANS les balises .. indiquer le LANGAGE . ça permet d'avoir la coloration syntaxique ainsi que la numérotation des lignes... (comme dans le code que je t'ai donné )
0
btissam1998 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Merci beaucoup
0