Erreur PHP

Résolu
smoutsmout Messages postés 160 Statut Membre -  
smoutsmout Messages postés 160 Statut Membre -
Bonjour,

Je developpe un site internet.
J'ai fait un formulaire d'identification en php, celui-ci recupere les variables mot de pass et login.
Quand je valide le formulaire j'utilise une page "ValidationIdentification.php" qui verifie si tout est correct.
C'est la que j'ai un probleme, j'ai l'erreur suivante :

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\nautiscaphe\validationidentification.php:4) in c:\program files\easyphp1-8\www\nautiscaphe\validationidentification.php on line 17

et le code de la page de validation est :

<?php
session_start();?>

<?
function testSaisie($login, $motpasse)
{
if (empty($login) or empty($motpasse))
return "pasOK";
}

$login= $_REQUEST["login"];
$motpasse = $_REQUEST["motpasse"];

if (testSaisie($login, $motpasse)=="pasOK")
{

#####################################################
ci-dessous la ligne 17 qui pose probleme :
header("location:ErreurIdentification2.php");
exit();
}

include("connexion.php");
$sql = "SELECT login, mdp FROM admin WHERE login='$login'";
$result = mysql_query($sql);
$ligne = mysql_fetch_array($result);
if ($ligne['mdp'] != $motpasse)
{
header("location:ErreurIdentification.php");
exit();
}
else
{

$_SESSION['login']=$login;
header ("Location: liste_news.php");
exit;
}
?>

Je ne sais pas si ca a de l'importance mais la page "ErreurIdentification2.php" contient un include qui appelle une feuille de style contenant la mise en page html.

merci d'avance pour votre aide.
Configuration: Windows Vista
Internet Explorer 7.0

19 réponses

  1. Taxiarque Messages postés 63 Statut Membre 10
     
    Coucou Smoutsmout,

    essayes de mettre de simple quote dans le header ça pourrait venir de là:
    header('location:./ErreurIdentification2.php'); 


    Bon courage ^^

    PS: n'oublies les () à ton troisième exit
    0
  2. smoutsmout Messages postés 160 Statut Membre
     
    merci de ta reponse mais ...

    raté, ca marche pas. Meme erreur au meme endroit.
    0
  3. Sri Lumpa Messages postés 177 Statut Membre 69
     
    Je pense que c'est simplement du au fait que lorsqu'il essaye de charger et définir le header de ta ligne 17, il se rend compte que tu en as déjà chargé un à la ligne 4 de ton script ValidationIdentification.php. Comme tu ne peux pas avoir deux headers pour une meme page HTML, il rale.
    0
  4. smoutsmout Messages postés 160 Statut Membre
     
    ok

    bon j'ai chengé le code et maitenant il me dit

    Method Not Allowed
    The requested method POST is not allowed for the URL

    dans mon formulaire j'ai : <form action="ValidationIdentification.html" method="post" name="identification">

    une solution ?

    merci d'avance.
    0
    1. macgawel Messages postés 676 Statut Membre 89
       
      Bonjour.

      Le message Method Not Allowed , tu l'as quand tu testes en local, ou seulement sur le serveur web ?

      Parce que ça ressemble fortement à un paramètrage du serveur, ça...
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Taxiarque Messages postés 63 Statut Membre 10
     
    Vi, il te faut mettre "post" en majuscules
    0
  7. smoutsmout Messages postés 160 Statut Membre
     
    j'ai mis post en majuscules, eh ben ca change rien. je comprend pas la.
    0
  8. Taxiarque Messages postés 63 Statut Membre 10
     
    Huuumm, tu veux faire passer tes variables par l'URL?
    Si c'est le cas, c'est la méthode GET.
    0
  9. smoutsmout Messages postés 160 Statut Membre
     
    beh je sais pas, je veux juste qu'elles passent mes variables.

    por la methode get je change post en get dans mon formulaire, et quoi d'autre, dans la page de validation (c'est le code donnée un peu plus haut) je dois faire quoi ?
    0
  10. Taxiarque Messages postés 63 Statut Membre 10
     
    Sinon mets l'extension de ta page en php au lieu de html
    0
  11. smoutsmout Messages postés 160 Statut Membre
     
    j'ai déjà essayé mais ca a m'air pire.

    parce que je revient au probleme de mon premier message avec l'erreur ligne 17.
    0
  12. Taxiarque Messages postés 63 Statut Membre 10
     
    Tu peux me montrer le script de ton form s'il te plait?
    0
  13. smoutsmout Messages postés 160 Statut Membre
     
    oui biensur :

    <? include("connexion.php"); ?>

    <? $titre="identification";
    include("_top.php");
    ?>
    <div align="center">
    <h2>Identification</h2>

    <form action="ValidationIdentification.php" name="identification" method="POST">
    <table>
    <tr>
    <td>Nom d'utilisateur :</td>

    <td>
    <input type="text" name="login" size="15" maxlength="25">
    </td>
    </tr>
    <tr>
    <td>Mot de passe :</td>

    <td>
    <input type="password" name="motpasse" size="6" maxlength="6">
    </td>
    </tr>
    </table>

    <input type="submit" name="validation" value="Valider">

    </form>

    </div>
    <?
    include("_btm.php");
    ?>
    0
  14. Taxiarque Messages postés 63 Statut Membre 10
     
    Est-ce que la page "ValidationIdentification.php" existe-t-elle?
    0
  15. smoutsmout Messages postés 160 Statut Membre
     
    oui et elle est dasn le meme repertoire que le formulaire.
    0
  16. Taxiarque Messages postés 63 Statut Membre 10
     
    C'est bizarre, chez moi ça fonctionne.
    Vérifie bien les majuscules et orthographe de ta page.
    Fais le test sinon avec une autre page de redirection.
    0
  17. smoutsmout Messages postés 160 Statut Membre
     
    bizar en effet.

    Je ne comprend vraiment pas pourquoi ca ne marche pas chez moi.

    Je vais essayer de faire autrement meme si je ne vois pas comment.

    Merci quand meme.
    0
    1. StresS
       
      le session_start(); doit etre AVANT toute les balises de TES pages
      0
  18. smoutsmout Messages postés 160 Statut Membre
     
    je doit mettre session_start() dans toutes mes pages ?
    0
  19. smoutsmout Messages postés 160 Statut Membre
     
    j'ai trouvé ma connerie :

    c'était tout con :

    il falait mettre

    $motpasse = $_REQUEST["motpasse"];

    au lieu de

    $motpasse = $_REQUEST["mdp"];

    ca marche

    désolée pour le dérangement

    et merci.
    0
  20. blue-project
     
    seulement tu tu a besoin d'utiliser des variable de session, vu qu'elle sont sauvegarder entre les page.
    <form action="ValidationIdentification.php" name="identification" method="POST"> 
    <table> 
    <tr> 
       <td>Nom d'utilisateur :</td> 
       <td><input type="text" name="login" size="15" maxlength="25"></td> 
    </tr> 
    <tr> 
       <td>Mot de passe :</td> 
       <td><input type="password" name="motpasse" size="6" maxlength="6"></td> 
    </tr> 
    </table> 
       <input type="submit" name="validation" value="Valider"> 
    </form> 
    


    Ce formulaire est bon.

    <?php session_start(); ?> 
    
    <?php 
    function testSaisie($login, $motpasse){ 
       if (empty($login) or empty($motpasse)) 
          return "pasOK"; 
          autant utiliser un boolean?
    } 
    
    $login= $_POST["login"]; // récuppère les champs en post vu que tu les envoi en post
    $motpasse = $_POST["motpasse"]; 
    
    if (testSaisie($login, $motpasse)=="pasOK") { // Je laisse comme sa mais avec des boolean on supprime le '=='
       header("location:ErreurIdentification2.php"); 
    }else{
       include("connexion.php"); 
       $sql = "SELECT login, mdp FROM admin WHERE login='$login'"; 
       $result = mysql_query($sql); 
       $ligne = mysql_fetch_array($result); 
       if ($ligne['mdp'] != $motpasse){ 
          header("location:ErreurIdentification.php"); 
       } else{ 
          $_SESSION['login']=$login; 
          header ("Location: liste_news.php"); 
       }
    } 
    ?> 
    
    0
    1. smoutsmout Messages postés 160 Statut Membre
       
      je comprend pas pourquoi ?

      ca marche comme j'ai fait.
      0