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

JavaScript Discussion :

Inclusion d'un js FacadeCookie (Php et js)


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut Inclusion d'un js FacadeCookie (Php et js)
    Allo groupe,

    J'ai créé une façade pour les cookies en javascript et lorsque j'inclus celle-ci dans mon html, le reste du javascript ne s'exécute pas.

    J'ai corrigé mes erreurs de syntaxe grâce à JSLint, mais ça n'a pas réglé mon problème.

    Mon inclusion :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript" src="../commun/objets/CookieFacade.js"/>
    Et mon code :

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    function CookieFacade()
    {
    		//Constructeur
    }
     
     
     
     
    /*
    but : ajouter un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    sValeurCookie : la valeur de ce cookie
    bPersistant (optionnel, defaut : false) : True = cookie persistant 1an
    */
    CookieFacade.prototype.AjouterCookie = function(sNomCookie, sValeurCookie, bPersistant)
    {
    	var dateExpiration=new Date();
    	var cookie = "";
    	if(bPersistant === true)
    	{
    		dateExpiration.setDate(dateExpiration.getDate()+365);
    		document.cookie= sNomCookie + "=" + escape(sValeurCookie) + ";expires=" + dateExpiration.toGMTString();
    	}
    	else
    	{
    		document.cookie = sNomCookie + "=" + escape(sValeurCookie);
    	}
    };
     
    /*
    but : detruire un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    */
    CookieFacade.prototype.DetruireCookie = function(sNomCookie)
    {
    	var dateExpiration = new Date();
    	dateExpiration.setTime(dateExpiration.getTime() - 1);
    	document.cookie = name += "=; expires=" + dateExpiration.toGMTString();
    };
     
     
     
    /*
    but : obtenir la valeur d'un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    */
    CookieFacade.prototype.ObtenirCookie = function(sNomCookie)
    {
    	 varliste_cookies = document.cookie.split( ';');
            varcookie_temp = '';
            varnom_cookie = '';
            varvaleur_cookie = '';
            varcookie_trouve = false;
     
            for( i = 0; i < liste_cookies.length; i++ )
            {
                    cookie_temp = liste_cookies[i].split( '=');
                    nom_cookie = cookie_temp[0].replace(/^\s+|\s+$/g, '');
                    if ( nom_cookie_demande == nom_cookie )
                    {
                            cookie_trouve = true;
                            if( cookie_temp.length > 1 )
                            {
                                    valeur_cookie = unescape(liste_cookies[i].replace(/^\s+|\s+$/g, '') );
                                    valeur_cookie = valeur_cookie.substring(nom_cookie.length + 1);                                
                            }
                            return valeur_cookie;
                    }
                    cookie_temp = null;
                    cookie_name = '';
            }
            if( !cookie_trouve )
            {
                    return null;
            }
    };
     
    /*
    but : Verifie si la chaine donnee est dans le cookie
    sNomCookie : le nom du cookie
    sChaineATrouver : La chaine a rechercher dans le cookie
    */
    CookieFacade.prototype.ChainePresenteDansCookie = function(sNomCookie, sChaineATrouver)
    {
    	var cookie = CookieFacade.ObtenirCookie(sNomCookie);
    	var position = cookie.indexOf(sChaineATrouver);
    	if(position === -1)
    	{
    		return false;
    	}
    	else
    	{
    		return true;
    	}
    };
    J'ai une piste, mais elle est tout aussi étrange...
    Lorsque je ne met rien à la suite de mon include dans le head, le reste de la page ne s'affiche pas.
    Si je met <script type="text/language">alert("HEY!");</script> à la suite, le reste de ma page s'affiche, mais je n'ai pas le alert.

    Quelqu'un a rencontré quelque chose d'aussi étrange?

    Merci!

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 719
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 719
    Par défaut
    Bonjour,

    Qu'as-tu dans ta console d'erreur?

  3. #3
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut Faute d'inattention
    Salut,

    1. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <script type="text/javascript" src="../commun/objets/CookieFacade.js"></script>
    2. Code : Sélectionner tout - Visualiser dans une fenêtre à part
      <script type="text/javascript">alert("HEY!");</script>


    ERE

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Allo merci pour la réponse.

    J'ai modifié "/>" pour "></script>" et ça fonctionne, mais ça me surprend quand même que ça ne fonctionne pas sans la fermeture explicite de la balise script.

    Pour ce qui est du alert, j'ai fait l'erreur quand je l'ai écrit, mais dans le code c'était bien type="text/javascript"

    Merci et bonne fin de semaine

  5. #5
    Membre Expert
    Avatar de emmanuel.remy
    Inscrit en
    Novembre 2005
    Messages
    2 855
    Détails du profil
    Informations personnelles :
    Âge : 56

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 855
    Par défaut
    Citation Envoyé par phfle1 Voir le message
    Allo merci pour la réponse.

    J'ai modifié "/>" pour "></script>" et ça fonctionne, mais ça me surprend quand même que ça ne fonctionne pas sans la fermeture explicite de la balise script.

    Pour ce qui est du alert, j'ai fait l'erreur quand je l'ai écrit, mais dans le code c'était bien type="text/javascript"

    Merci et bonne fin de semaine
    Pour le alert je m'en doutais !

    ERE

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Le code ci-haut contenait beaucoup d'erreurs, voici la version fonctionnelle si ça intéresse quelqu'un.

    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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    //Toutes les fonctions de cet objet sont statiques. 
    //Il ne faut donc pas creer d'instance de ce dernier pour utiliser les fonctions.
    //Exemple d'utilisation : 
    // CookieFacade.AjouterCookie("ASD", "VALEUR", true);
    // var a = CookieFacade.ObtenirCookie("ASD");
    // var a = CookieFacade.ChainePresenteDansCookie("ASD","VA");
    // CookieFacade.DetruireCookie("ASD");
     
     
    var CookieFacade = {};  // Declaration de mon nameSpace
     
     
     
    /*
    but : ajouter un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    sValeurCookie : la valeur de ce cookie
    bPersistant (optionnel, defaut : false) : True = cookie persistant 1an
    */
    CookieFacade.AjouterCookie = function(sNomCookie, sValeurCookie, bPersistant)
    {
    	var dateExpiration=new Date();
    	var cookie = "";
    	if(bPersistant === true)
    	{
    		dateExpiration.setDate(dateExpiration.getDate()+365);
    		document.cookie= sNomCookie + "=" + escape(sValeurCookie) + ";expires=" + dateExpiration.toGMTString();
    	}
    	else
    	{
    		document.cookie = sNomCookie + "=" + escape(sValeurCookie);
    	}
    };
     
    /*
    but : detruire un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    */
    CookieFacade.DetruireCookie = function(sNomCookie)
    {
    	var dateExpiration = new Date();
    	dateExpiration.setTime(dateExpiration.getTime() - 1);
    	document.cookie = sNomCookie + "=; expires=" + dateExpiration.toGMTString();
    };
     
     
     
    /*
    but : obtenir la valeur d'un cookie pour le domaine courant
    sNomCookie : le nom du cookie
    */
    CookieFacade.ObtenirCookie = function(sNomCookie)
    {
    		var liste_cookies = document.cookie.split( ';');
            var cookie_temp = '';
            var nom_cookie = '';
            var valeur_cookie = '';
            var cookie_trouve = false;
     
            for( i = 0; i < liste_cookies.length; i++ )
            {
                    cookie_temp = liste_cookies[i].split( '=');
                    nom_cookie = cookie_temp[0].replace(/^\s+|\s+$/g, '');
                    if ( sNomCookie == nom_cookie )
                    {
                            cookie_trouve = true;
                            if( cookie_temp.length > 1 )
                            {
                                    valeur_cookie = unescape(liste_cookies[i].replace(/^\s+|\s+$/g, '') );
                                    valeur_cookie = valeur_cookie.substring(nom_cookie.length + 1);                                
                            }
                            return valeur_cookie;
                    }
                    cookie_temp = null;
                    cookie_name = '';
            }
            if( !cookie_trouve )
            {
                    return null;
            }
    };
     
    /*
    but : Verifie si la chaine donnee est dans le cookie
    sNomCookie : le nom du cookie
    sChaineATrouver : La chaine a rechercher dans le cookie
    */
    CookieFacade.ChainePresenteDansCookie = function(sNomCookie, sChaineATrouver)
    {
    	var cookie = CookieFacade.ObtenirCookie(sNomCookie);
    	var position = cookie.indexOf(sChaineATrouver);
    	if(position === -1)
    	{
    		return false;
    	}
    	else
    	{
    		return true;
    	}
    };
    Bye,

    Phil

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    158
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 158
    Par défaut
    Même chose, mais en 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
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    class CookieFacade
    {
     
    	private static function ObtenirHier()
    	{
    		$hier = time() - 86400; //24*60*60
    		return $hier;
    	}
     
    	/*
    	but : ajouter un cookie pour le domaine courant
    	sNomCookie : le nom du cookie
    	sValeurCookie : la valeur de ce cookie
    	bPersistant (optionnel, defaut : false) : True = cookie persistant 1an
    	*/
    	public	static function AjouterCookie($sNomCookie, $sValeurCookie, $bPersistant = false)
    	{
    		if ($bPersistant)
    		{
    			$unAn = time() + 31536000; //365*24*60*60
    			setcookie($sNomCookie, $sValeurCookie, $unAn);
    		}
    		else
    		{
    			setcookie($sNomCookie, $sValeurCookie);
    		}
     
    	}
     
     
    	/*
    	but : detruire un cookie pour le domaine courant
    	sNomCookie : le nom du cookie
    	*/
    	public	static function DetruireCookie($sNomCookie)
    	{
    		setcookie($sNomCookie, "", CookieFacade::ObtenirHier());
    	}
     
    	/*
    	but : obtenir la valeur d'un cookie pour le domaine courant
    	sNomCookie : le nom du cookie
    	*/
    	public	static function ObtenirCookie($sNomCookie)
    	{
    		if(isset($_COOKIE[$sNomCookie]))
    		{
    			return $_COOKIE[$sNomCookie];
    		} 
    		else
    		{
    			return "";
    		}
    	}
     
    	/*
    	but : Verifie si la chaine donnee est dans le cookie
    	remarque : ne considere pas la casse
    	sNomCookie : le nom du cookie
    	sChaineATrouver : La chaine a rechercher dans le cookie
    	remarque : on ne considere pas la casse
    	*/
    	public	static function ChainePresenteDansCookie($sNomCookie, $sChaineATrouver)
    	{
    		$cookieVise = ObtenirCookie($sNomCookie);
    		$resultat = stripos( $cookieVise, $sChaineATrouver);
    		if($resultat == false)
    		{
    			return false;
    		}
    		else
    		{
    			return true;
    		}
    	}
    }

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Inclusion de classes externes en PHP
    Par MrcJL dans le forum BOUML
    Réponses: 3
    Dernier message: 23/07/2011, 19h42
  2. [PHP 5.2] probleme d'inclusion de classe dans fichier php
    Par diblasio dans le forum Langage
    Réponses: 1
    Dernier message: 08/12/2009, 18h26
  3. [XHTML]inclusion de balises META en PHP
    Par trotters213 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 12/09/2006, 09h57
  4. [PHP-JS] pb d'inclusion de fichier
    Par Youlie2 dans le forum Langage
    Réponses: 3
    Dernier message: 16/06/2006, 14h23
  5. Réponses: 8
    Dernier message: 29/01/2006, 16h48

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