IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Utiliser les sessions avec Dreamweaver


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut Utiliser les sessions avec Dreamweaver
    Salut,

    Je veux creer une page d'authentification en utilisant dreamweaver,alors j'ai bien suivi toutes les etapes,et lorsque j'ai lance le navigateur voici l'erreur que m'a donne:

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\EasyPHP-5.3.2i\www\abonnement\main.php:1) in C:\EasyPHP-5.3.2i\www\abonnement\main.php on line 0

    et voila le code de la page main.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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    <?php virtual('/abonnement/Connections/jaja.php'); ?>
    <?php
    // *** Validate request to login to this site.
    if (!isset($_SESSION)) {
      session_start();
    }
     
    $loginFormAction = $_SERVER['PHP_SELF'];
    if (isset($_GET['accesscheck'])) {
      $_SESSION['PrevUrl'] = $_GET['accesscheck'];
    }
     
    if (isset($_POST['login'])) {
      $loginUsername=$_POST['login'];
      $password=$_POST['pass1'];
      $MM_fldUserAuthorization = "id_client";
      $MM_redirectLoginSuccess = "/site-impression/accueil.php";
      $MM_redirectLoginFailed = "/site-impression/main.php";
      $MM_redirecttoReferrer = true;
      mysql_select_db($database_jaja, $jaja);
     
      $LoginRS__query=sprintf("SELECT login, pass1, id_client FROM client WHERE login='%s' AND pass1='%s'",
      get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); 
     
      $LoginRS = mysql_query($LoginRS__query, $jaja) or die(mysql_error());
      $loginFoundUser = mysql_num_rows($LoginRS);
      if ($loginFoundUser) {
     
        $loginStrGroup  = mysql_result($LoginRS,0,'id_client');
     
        //declare two session variables and assign them
        $_SESSION['MM_Username'] = $loginUsername;
        $_SESSION['MM_UserGroup'] = $loginStrGroup;	      
     
        if (isset($_SESSION['PrevUrl']) && true) {
          $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];	
        }
        header("Location: " . $MM_redirectLoginSuccess );
      }
      else {
        header("Location: ". $MM_redirectLoginFailed );
      }
    }
    ?>
     
    <html>
    <head></head>
    <body>
    <td height="89" nowrap="nowrap"><form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>">
                  <label>
                  Login:
                  <input name="login" type="text" id="login" size="15"/>
    </label><br />
                  <label>Mot de passe:</label>
    			      <input name="pass1" type="password" id="pass" size="15" />
    			      <br />
    			      <br />
     
        <input name="envoyer" type="submit" value="se connecter" /></form>
    Alors ou est le probleme?

    Et merci d'avance.

  2. #2
    Membre expert Avatar de RunCodePhp
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    2 962
    Détails du profil
    Informations personnelles :
    Localisation : Réunion

    Informations forums :
    Inscription : Janvier 2010
    Messages : 2 962
    Points : 3 947
    Points
    3 947
    Par défaut
    Salut

    Tu as 2 erreurs déjà dès le début.
    La 1ère : Ici, il y a un saut de ligne, un retour chariot entre les 2 balises Php, ceci est un caractère comme un autre.
    Et bien rien que ça va provoquer l'envoie de ce caractère, mais avant, Php aura pris soin de rajouter une entête.
    Cependant, le cas ici est particulier car Php spécifie qu'il ne faut pas renvoyer d'entête avant de démarrer la session.
    Donc faut supprimer ce code ci-dessus pour obtenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    virtual('/abonnement/Connections/jaja.php');
    session_start();
     
    // *** Validate request to login to this site.
    ... etc ...
    Et puis à quoi sert il de fermer la balise Php pour la ré-ouvrir juste après ?
    Faut éviter de rajouter des trucs qui ne servent à rien, car ça sert à rien justement

    Puis tu as mis une condition : if (!isset($_SESSION))
    Elle ne sert à rien. Le tableau super global $_SESSION ne peut être dispo QUE si la session est démarrée, surement pas avant, car c'est cette instruction là qui dit à Php de créer ce tableau avec les variables de sessions dedans.
    Donc au bout au obtient le code juste ci-dessus.
    Win XP | WampServer 2.2d | Apache 2.2.21 | Php 5.3.10 | MySQL 5.5.20
    Si debugger, c'est supprimer des bugs, alors programmer ne peut être que les ajouter [Edsger Dijkstra]

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Merci sabotage pour ton reponse,j'ai applique ta reponse:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    virtual('/site-impression/Connections/jaja.php'); 
    session_start();
    ,,,,,,,,,,,,,,,etc
    mais ca marche plus

    mais quand j'ai fais ce code,dont j'ai lu la documentation que tu m'a donne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    session_start();
    virtual('/site-impression/Connections/jaja.php');
    ,,,,,,,,,,,,,,,,etc
    la page m'a donne pas de bugs,mais quand j'ai fais la verification ou j'ai tape le login et le mot de passe,voila ce qui m'a donne comme bugs:

    Warning: Cannot modify header information - headers already sent by (output started at C:\EasyPHP-5.3.2i\www\site-impression\main.php:3) in C:\EasyPHP-5.3.2i\www\site-impression\main.php on line 0

    alors qu'est-ce-que je peux faire pour eliminer ce bug?

    et merci pour vos reponses

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que tu as regardé du côté de l'encodage de ton fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Est-ce que tu as regardé du côté de l'encodage de ton fichier ?
    ou se trouve l'encodage du fichier?

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Regarde avec le programme notepad++
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Regarde avec le programme notepad++
    et comment je peux connaitre l'encodage avec notepad++?

  9. #9
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    l'encodage est : UTF-8

  10. #10
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Est-ce que tu as regardé du côté de l'encodage de ton fichier ?
    L'encodage est UTF-8,alors comment je peux resoudre le probleme?

  11. #11
    Membre actif

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Points : 275
    Points
    275
    Par défaut
    heu oublie dreamweaver

    sinon un espace en debut de fichier avant session_start peut provoquer cette erreur il ne faut rien transmettre avant le session_start donc aucun html ou blanc

  12. #12
    Membre du Club
    Inscrit en
    Mars 2010
    Messages
    233
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 233
    Points : 53
    Points
    53
    Par défaut
    Citation Envoyé par Helfima Voir le message
    heu oublie dreamweaver

    sinon un espace en debut de fichier avant session_start peut provoquer cette erreur il ne faut rien transmettre avant le session_start donc aucun html ou blanc
    mais j'ai fais session_start() des-le debut mais encore ca marche plus!

Discussions similaires

  1. Utiliser les sessions de phbBB dans d'autres pages
    Par charliejo dans le forum Langage
    Réponses: 2
    Dernier message: 27/05/2006, 08h55
  2. Gérer les sessions avec PEAR
    Par manaboko dans le forum Langage
    Réponses: 1
    Dernier message: 08/05/2006, 14h50
  3. Utiliser les Streams avec TSocket
    Par francky23012301 dans le forum Web & réseau
    Réponses: 8
    Dernier message: 02/05/2006, 23h07
  4. php:comment utiliser les sessions en php
    Par feten dans le forum Langage
    Réponses: 3
    Dernier message: 19/11/2005, 16h17
  5. [CF][PPC/VB.NET] Comment utiliser les Socket avec Pocket PC ?
    Par joefou dans le forum Windows Mobile
    Réponses: 5
    Dernier message: 17/05/2005, 14h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo