Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/08/2007, 17h10   #1
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
Par défaut Redirection avec la fonction header

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 :
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.
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h16   #2
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Dans ton fichier inclus il n'y a pas ne serait-ce qu'un espace ou un saut de ligne avant ou apres les balises ?> ou <?php ?
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h21   #3
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
et non j'ai également vérifié paski me dit ke l'erreur vient de constantes.php mais c que du php aussi. Voici le code :

Code :
1
2
3
4
5
6
7
8
<?php
  // Fichier contenant la definition des constantes
  define ("NOM","root");
  define ("PASSE", "");
  define ("SERVEUR", "localhost");
  define ("BASE", "Publis");
 
?>
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h26   #4
Membre Expert
 
Inscription : janvier 2005
Messages : 2 288
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 288
Points : 2 287
Points : 2 287
Je sais pas si c'est normal mais dans ton copier/coller tu sembles avoir des sauts de lignes (lignes vides donc) apres le ?> dans ton fichier de constantes
koopajah est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h28   #5
Membre régulier
 
Avatar de carelha
 
Inscription : mars 2006
Messages : 168
Détails du profil
Informations personnelles :
Localisation : France, Yvelines (Île de France)

Informations forums :
Inscription : mars 2006
Messages : 168
Points : 74
Points : 74
peut être que ma signature peut t'aider avec l'alternative au header.

caroline
__________________
En essayant continuellement on finit par réussir. Donc : plus ca rate, plus on a des chances que ca marche. Shadocks.

un seul header par page, et pour les autres redirections : echo "<script language='javascript'>window.location.href='XXX.php'</script>";
carelha est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h33   #6
Invité régulier
 
Inscription : juin 2007
Messages : 36
Détails du profil
Informations forums :
Inscription : juin 2007
Messages : 36
Points : 6
Points : 6
Merci koopajah j'avais effectivement pas vu le saut de ligne a la fin de constantes.php...

ça fonctionne maintenant

Merci de vos réponses.
Antho13 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/08/2007, 17h34   #7
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
tu as peut-être des espace à la fin du fichier "constantes.php"

regarde ce qui est expliqué là pour résoudre le problème :
http://php.developpez.com/faq/?page=...s_already_sent
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h41.


 
 
 
 
Partenaires

Hébergement Web