N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include ou require, et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
Warning: Cannot modify header information - headers already sent by (output started at .......)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question<?php function redirection($url, $time=0) { if (!headers_sent()) { header("refresh: $time;url=$url"); exit; } else { echo '<meta http-equiv="refresh" content="',$time,';url=',$url,'">'; } } redirection('PageCible.php'); // a utiliser de cette manière ?>
<?php if(isset($_POST['mot_de_passe'],$_POST['login'],$_POST['btnsbt'])){ $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; if($mot_de_passe "toto" && $login "titi"){ ob_start(); header('Location: http://localhost/bureau/admin.php');exit; ob_flush(); }else{ echo 'erreur'; } }else{ $mot_de_passe = ""; $login = ""; } ?> <form action="" method="post"> login password </form>
if($mot_de_passe "toto" && $login "titi"){
<?php $_connexion = mysql_connect('localhost', 'root', '') or die ('impossible de se connecter, veuillez réessayer'); $db = mysql_select_db('qmmdatabase', $_connexion) or die ('La base de données ne peut pas être sélectionner'); if($_POST['valider']) { $query = "SELECT * FROM user WHERE login='".$_SESSION['login']."';"; $result = mysql_query($query); $ligne = mysql_fetch_array($result); if(($_SESSION['login'] == '') or ($_SESSION['password'] == ''))//verifier les champs si vide { echo "Veuillez remplir les champs"; } else { if($_SESSION['password'] == "".$ligne['mdp']."") { function redirection($url, $time=0) { if (!headers_sent()) { header("refresh: $time;url=$url"); exit; } else { echo '<meta http-equiv="refresh" content="',$time,';url=',$url,'">'; } } redirection('administration.php'); exit(); } else { echo"Erreur d'authentification"; } } } ?>
<?php session_start(); /*la connection*/ /* -- -- Base de données: `test` -- -- -------------------------------------------------------- -- -- Structure de la table `members` -- CREATE TABLE IF NOT EXISTS `members` ( `id` int(10) NOT NULL AUTO_INCREMENT, `username` varchar(32) NOT NULL, `password` varchar(32) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=8 ; -- -- Contenu de la table `members` -- INSERT INTO `members` (`id`, `username`, `password`) VALUES (1, 'titi', 'toto'), (3, 'tata', 'popo'); */ /*le tuto ... http://www.phpeasystep.com/phptu/6.html*/ function checkmembre($login,$password){ /*à parametrer*/ static $host='localhost'; // Host name static $username='root'; // Mysql username static $passBDD=''; // Mysql password static $db_name="test"; // Database name static $tbl_name='members'; // Table name static $myusername=false; static $mypassword=false; // Connect to server and select databse. mysql_connect($host,$username,$passBDD) or die('cannot connect'); mysql_select_db($db_name) or die('cannot select DB'); // To protect MySQL injection (more detail about MySQL injection) $myusername = mysql_real_escape_string(htmlentities(trim($login))); $mypassword = mysql_real_escape_string(htmlentities(trim($password))); echo $sql="SELECT * FROM ".$tbl_name." WHERE username='".$myusername."' and password='".$mypassword."' limit 1"; if($result=mysql_query($sql)){ // Mysql_num_row is counting table row $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count===1){ mysql_close(); // Register $myusername, $mypassword and redirect to file "login_success.php" $_SESSION['login']=$myusername; $_SESSION['auth']=true; ob_start(); header('Location: http://localhost/logeur/admin.php');exit; ob_flush(); } else { mysql_close(); return 'Verifier vos identifiants ...<hr>'; } }else{ mysql_close(); //prob pas membre return 'Verifier vos identifiants ...<hr>'; } /* fin checkmembre*/ } if(isset($_POST['mot_de_passe'],$_POST['login'],$_POST['btnsbt'])){ $mot_de_passe = $_POST['mot_de_passe']; $login = $_POST['login']; if(!empty($mot_de_passe) && !empty($login)){ echo checkmembre($login,$mot_de_passe); }else{ echo 'des champs sont vides ... '; } }else{ $mot_de_passe = ''; $login = ''; } ?> <form action="" method="post"> LOGIN PASSWORD </form>
<?php session_start(); if(isset($_SESSION['login'],$_SESSION['auth']) && $_SESSION['auth']===true){ echo 'BONJOUR : '.$_SESSION['login'].'<hr>'; /*des infos pour le membre*/ }else{ exit('Veuillez vous identifier'); } ?>