8722 sujets

Développement web côté serveur, CMS

Bonjour, j'ai codé cette partie de code

<!DOCTYPE html>
<html lang="en">
<head>
<?php 
$bd = new PDO("secret [cligne]');
?>
<?php
$pseudo = filter_input(INPUT_POST, "mail");
$pass = filter_input(INPUT_POST, "pass");
$req = $bd->prepare('select nom from membres_data where mail = :mail and password = [langue]ass');
$req->execute(array(
    ':mail' => $pseudo,
    ':pass' => $pass));
if($req->rowCount() == 0) {
	header('Location: 01-LandingPage.php?error=invalid');
    echo'<meta http-equiv="refresh" content="1; URL=01-LandingPage.php?error=invalid">';
	exit;
}else {
    	        session_start();
        $SESSION_['pseudo'] = "$pseudo";
        //setcookie("mmbdata", $nom, time()+3600);
     setcookie('mooning', "h", time() + 3600 , null, null, false, true);
    echo'<meta http-equiv="refresh" content="1; URL=02-ProfilePage.php">';
}
?>
</head>
    <body>
    </body>
</html>


Et les cookies ne ce lancent pas.
J'ai essayé de différentes manières en suivant de nombreux tutoriels main le résultat reste le même...
EDIT : les cookies se lancent sur mon site secondaire alors que le code est le meme
Merci pour votre aide Smiley cligne
Modifié par UBrainFr (07 Aug 2018 - 11:33)
Modérateur
Bonjour, session_start() et les cookies doivent être envoyés dans les en-têtes.
Lorsque le fichier php est analysé, le premier caractère rencontré hors php déclenche l'envoi des en-têtes et commence à envoyer le contenu.

Il faut donc effectuer ces opérations avant.


<?php
  session_start();
  ...
  setcookie();
  ...
  header('Location: 01-LandingPage.php?error=invalid');

  // Ces trois fonctions ne peuvent être apellée après.
?>
<!DOCTYPE html>
Meilleure solution
Merci beaucoup tu m'est d'une incroyable aide, j'aurais été bloqué toute la journée sans ton aide Smiley eek
Modifié par UBrainFr (07 Aug 2018 - 12:15)