Bonjour à tous,

Voila mon probleme :

Je dispose d'un formulaire d'identification sur mon "index.php". Ce formulaire envoie les informations a une page "verifLogin.php". Je veux que lorsque l'utilisateur s'identifie correctement, il soit redirigé vers une autre page s'appelant "FormModifPubli.php". J'ai donc inséré header("Location:FormModifPubli.php"); a la fin de mon script de verification. J'ai lu qu'il fallait que ce header soit situé avant TOUT CODE HTML, sinon on obtient une erreur qui dit que les entêtes HTTP ont déja été envoyés. Cependant, ma page "verifLogin.php" contient EXCLUSIVEMENT du code php et pas la moindre balise html, et j'obtient quand meme l'erreur suivante :

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\joomcnrs\moteurpublis\Constantes.php:8) in c:\program files\easyphp1-8\www\joomcnrs\moteurpublis\veriflogin.php on line 41

Voici le code de ma page "verifLogin.php" :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?php
// On démarre la session
session_start();
require("Constantes.php");
 
$loginOK = false;  /* On part de l'idée que le login ne fonctionne pas en initialisant une variable à false. 
                  Et c'est seulement lorsque le login est confirmé qu'on modifie cette variable à true */
 
 
$db = mysql_connect(SERVEUR,NOM,PASSE);           //connexion
mysql_select_db("Publis",$db);                    //sélection de la base
 
// On n'effectue les traitements qu'à la condition que
// les informations aient été effectivement postées
if ( isset($_POST) && (!empty($_POST['mail'])) && (!empty($_POST['pass'])) ) {
 
  extract($_POST);  // crée des variables pour chaque donnée récupérée
 
  // On va chercher le mot de passe correspondant au login
  $sql = "SELECT iduser, mailuser, nomuser, passuser, statutuser FROM Utilisateurs WHERE mailuser = '".$mail."'";
  $req = mysql_query($sql) or die('Erreur SQL : <br />'.$sql);
 
  // On vérifie que l'utilisateur existe bien
  if (mysql_num_rows($req) > 0) {
     $data = mysql_fetch_assoc($req);
 
    // On vérifie que son mot de passe est correct
    if ($pass == $data['passuser']) {
      $loginOK = true;
    }
  }
}
 
// Si le login a été validé on met les données en sessions
if ($loginOK) {
  $_SESSION['mailuser'] = $data['mailuser'];
  $_SESSION['nomuser'] = $data['nomuser'];
  $_SESSION['passuser'] = $data['passuser'];
  $_SESSION['statutuser'] = $data['statutuser'];
 
  header("Location:FormModifPubli.php");
 
  }
else {
  echo '<br><br>Adresse mail ou mot de passe invalide. Réessayez.';
}
?>
J'aimerais comprendre la nature de cette erreur et pouvoir rediriger les users sans faire de lien intermediaire.

Merci d'avance.