Fonction introuvable PHP

Résolu
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009 - 13 juin 2008 à 09:03
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009 - 13 juin 2008 à 11:48
Bonjour tout le monde,
Voila mon problème: J'ai un fichier "traitements.php" qui regroupe toutes mes fonctions. Dans un autre page je met donc require('traitements.php'); et j'appelle la fonction que je veux. Ici , c'est la fonction test_session. Mais quand  je m'en sers php me renvoie ce msg d'erreur: Fatal error: Cannot redeclare test_session() previously declared on line 4

D'habitude ça marche très bien je comprend pas le problème la...la ligne 4 est la ligne où je commence ma fonction dans le fichier "traitements.php".

Si quelqu'un sait, qu'il me le dise. Ca doit être tout bête maisje vois vraiment pas...

Merci

15 réponses

JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
13 juin 2008 à 11:31
En faisant ça il te renvoies toujours la même erreur ??
Sinon, regarde la fonction md5() ou sha1() pour crypter tes mots de passes :p

if( !function_exists('test_session') )
{
    function test_session($login, $password)
    {
        $result = mysql_query('SELECT login, password from utilisateur where login="' . $login . '" AND password="' . $password . '"') or die(mysql_error());
        $resultat = mysql_fetch_assoc($result);

        $resultlogin = $resultat['login'];
        $resultpassword = $resultat['password'];
        if ($resultlogin $login AND $resultpassword $password)
        {
            $_SESSION['utilisateur'] = $login;
            $_SESSION['motdepasse'] = $password;
            return 'ok';
        }
        else
        {
            return '<script language="text/javascript"> alert("Login ou mot de passe incorrect !!!"); </script>';
        }
    }
}
Fatal error: Cannot redeclare test_session() previously declared on line 4

A mon avis, ton erreur vient de ton fichier ou tu inclu traitement.php, puisqu'il dit impossible de re-déclarer la fonction test_session(), précedamment déclarée à la ligne 4.
Regarde plus loin dans ton code. Il n'y a pas un autre include 'traitement.php' ? (require())
<hr />Si ma reponse te convient, merci de l'accepter ! 
3
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 11:48
c'est bon jai trouvé...en fait je me sers de cette page pour reconduire vers une autre et ces deux pages avait le require('traitements.php') donc forcément la fonction était redéclarée comme le dit so bien le mesage d'erreur...c'est vraiment minutieux PHP..

Merci beaucoup Jojod'être venu amon secours encore une fois lol, et gagah d'avoir essayé de m'aider !!! Bonne journée !!
3
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
13 juin 2008 à 09:25
D'après l'erreur, c'est une inclusion multiple. Utilise require_once( ) au lieu de require( ).
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 09:32
Non ca ne marche toujours pas... Est ce que ca peux venir du fait que j'aiun session_start ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
13 juin 2008 à 09:39
Montre le bout de code.
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 09:44
<? session_start();
require('traitements.php');  

if ($_POST['login']!= ='' and $_POST['password']!=='')
{
    $login=$_POST['login'];
    $password=$_POST['password'];
    $EtatConnexion= etat_connexion ();
    if ($EtatConnexion == "ok")
    {
        $resultat= test_session ($login,$password);
        if ($resultat =='ok')
        {on continue....

En gras c'est les fonctions que j'appelle...la 1ere ca passe mais pas la 2eme...
et ca c'est ma fonction test_session:

Function test_session($login,$password)
{
    $result=mysql_query("select login,password from utilisateur where login='".$login."' and password='".$password."'");
    $resultat=mysql_fetch_array($result);
    $resultlogin=$resultat[0];
    $resultpassword=$resultat[1];
   
    if ($resultlogin==$login and $resultpassword==$password)
    {
        $_SESSION['utilisateur']=$login;
        $_SESSION['motdepasse']=$password;
        return ('ok');
    }
    else
    {
        return ('<script language="Javascript"> alert("Login ou mot de passe incorrect !!!");
                </script>');
    };
};
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
13 juin 2008 à 09:53
Peut etre test_session( ) est une fonction native de PHP. Essaie de modifier le nom de cette fonction.
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 09:58
non c'est pas ça ...
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
13 juin 2008 à 09:59
J'ai regardé mais non, ce n'est pas une fonction native de PHP. Est-ce que dans le fichier traitement.php y a t-il une inclusion de fichier avant la ligne 4 où l'erreur se produit.
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 10:10
Non non il n'y a rien avant...c'est pour ça que je trouve ça que je trouve ça bizarre.
Mais me le fais souvent en plus donc voila c'est un peu chiant. Je vois vraiment pas le problème...
0
gagah1 Messages postés 509 Date d'inscription samedi 28 juin 2003 Statut Membre Dernière intervention 3 août 2010
13 juin 2008 à 10:22
Le code parait bon.
J'ai remarqué que tu écris Function en majuscule au lieu de function pour déclarer une fonction. Je sais pas c'est peut-etre une erreur tout bête, un point-virgule ....
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 10:27
Ce qui est bizarre, c'est que j'ai supprimé la fonction du fichier "traitements.php", et je l'ai mise au début de ma page où je l'appelle...et là ça marche !!
Mais bon, je ne veux pas faire comme ça parce que cette fonction je m'en sers souvent...et puis c'est pas vraiment le principe des fonctions de les déclarer à chaque fois !!!
0
JoJo738 Messages postés 1267 Date d'inscription mercredi 7 juillet 2004 Statut Membre Dernière intervention 29 juin 2010 2
13 juin 2008 à 11:07
Salut,

bizare ... je ne vois pas non plus l'erreur.
Au pire des cas tu peux faire :

<?php
// ...

if( !function_exists('ma_fonction') )
{
    function ma_fonction()
    {
       // ...
    }
}

// ...
?>

<hr />Si ma reponse te convient, merci de l'accepter ! 
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 11:17
Non toujours rien ...
Je crois que PHP ne m'aime pas !!!
0
ninho44 Messages postés 86 Date d'inscription vendredi 18 janvier 2008 Statut Membre Dernière intervention 19 juin 2009
13 juin 2008 à 11:42
Non ben ça me renvoie toujours le meme message d'erreur...il n'y a pas d'autres require ou include sur ma page...bizarre !!
0
Rejoignez-nous