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 :

[PHP-JS] Délire de String


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Points : 78
    Points
    78
    Par défaut [PHP-JS] Délire de String
    bonjour à tous,

    j'ai un petit soucis entre une fonction javascript et le reste de mon code php

    j'ai une fonction javascript qui me définit la taille de l'écran. j'affecte cette valeur à une variable session PHP, jusque là rien de plus simple.
    Mon problème est de traiter cette donnée.
    En effet avec vérification avec un gettype et un is_string, j'ai découvert que ma valeur était un string. De là plus aucun traitement de comparaison avec cette variable n'est possible

    voici mon code et leur résultat:
    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
     
    <html>
    <head>
    <script type="text/javascript">
    function Reso(){
    document.write(screen.width);	
    }
    </script>
    </head>
    <body>
    <?php
     
    $w = '<script>Reso()</script>';     //lancement de ma fonction javascript
     
    echo"$w";                                    // affiche : 1257
     
    $t = gettype($w);                        // vérification du type
    echo $t;                                      // affiche : string
     
    if (is_string($w))                          // vérification du type
    {
    	echo"string";                // affiche : string
    }
     
    $k ="1257";
    $v = strcmp('$w','$k');                 // Compare les 2 variables qui sont égales à 1257
    echo "$v";                                   // affiche : 1 au lieu du 0 et quelque soit la valeur de $k
     
     
    if ($w == "1257")                        // Compare les 2 variables qui sont égales à 1257
    {
    	echo"ok";                    // n'est pas exécuté
    }
     
    switch($w)
    {
     
    case "1257" :
    echo"ok";                                   // n'est pas exécuté
    break;
     
    }
     
    ?>
     
    </body>
    </html>
    Bref, je ne comprend pas comment vérifié que ma variable $w soit égale à 1257.
    j'ai tout tenté en mettant des ' ou des " où c'était possible

    merci d'avance

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 194
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 194
    Points : 8 409
    Points
    8 409
    Billets dans le blog
    17
    Par défaut
    1. Il faut enlever les ' et les " autour de tes variables, ex. : strcmp('$w','$k')
    2. IMPORTANT : n'oublie pas que le PHP est exécuté AVANT le Javascript
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  3. #3
    FoxLeRenard
    Invité(e)
    Par défaut
    Bonjour toi qui écris
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     
     
    echo"$w";                                    // affiche : 1257
    et bien si cet echo affichait ça , ce serait la révolution, le php n'as qu'une utilitée c' est de générer un HTML, son javascript etc ...

    Puis chez le visiteur le HTML s'exécute mais bien sur le serveur ne s'en occupes pas, il n' y a aucun lien entre les PHP et les clients ...


    Pour étre plus précis, ce que tu écris provoque cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
    $w = '<script>Reso()</script>';     //lancement de ma fonction javascript
     
    echo"$w";
    l'echo crée dans le html le script qui appelle la fonction chez le client !

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 99
    Points : 78
    Points
    78
    Par défaut
    bonjour merci pour les réponses

    FoxLeRenard, j'ai fait plusieurs tests sur plusieurs serveurs avant d'écrire mais j'ai bien mon echo $w qui m'affiche 1257.

    Je comprend bien que le javascript est interprété aprés le php du côté client.
    j'avais omis ce soucis.

    Donc je vais trouver une autre solution pour créer une variable session ou un cookie qui enregistre ma résolution d'écran

    merci

  5. #5
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par asagtoth Voir le message
    bonjour merci pour les réponses
    FoxLeRenard, j'ai fait plusieurs tests sur plusieurs serveurs avant d'écrire mais j'ai bien mon echo $w qui m'affiche 1257.
    Je comprend bien que le javascript est interprété aprés le php du côté client.
    j'avais omis ce soucis.
    Donc je vais trouver une autre solution pour créer une variable session ou un cookie qui enregistre ma résolution d'écran
    merci
    Oui et non, mais voila de quoi mieux comprendre

    avec ton PHP modifié j'ai cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    bonjour 
    1280
     
    scriptReso()/script
    en fait le PHP est

    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
     
     
     
    <html>
    <head>
    <script type="text/javascript">
    function Reso(){
    document.write(screen.width);	
    }
    </script>
    </head>
    <body>
    <?php
     
    $w = '<script>Reso()</script>';     
    echo "bonjour <br />";
    echo $w."<br /><br />";                                    
    $w=str_replace("<","",$w);
    $w=str_replace(">","",$w);
    echo $w."<br /><br />";                
    ?>
     
    </body>
    </html>
    et chez le client il genere ce HTML

    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
     
     
    <html>
    <head>
    <script type="text/javascript">
    function Reso(){
    document.write(screen.width);	
    }
    </script>
    </head>
    <body>
    bonjour <br />
    <script>Reso()</script>
    <br /><br />scriptReso()/script<br /><br />
    </body>
    </html>


    Ainsi, tu comprends mieux que mon deuxiéme echo de $w donne toujours le même texte dont j'ais enlevé les balises, bien sur il ne contient en aucun cas le résultat
    Dernière modification par FoxLeRenard ; 08/05/2009 à 08h30.

Discussions similaires

  1. interperter du code PHP contenu dans une string
    Par veto_fr_2000 dans le forum Langage
    Réponses: 13
    Dernier message: 08/12/2010, 18h34
  2. Evaluer un string text avec code PHP: Eval?!
    Par Just dans le forum Langage
    Réponses: 5
    Dernier message: 04/09/2010, 10h42
  3. (PHP) Erreur JS : unterminated string literal
    Par FotoXe33 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 24/03/2010, 15h16
  4. String Fighters (jeu php+flash)
    Par docTB dans le forum Projets
    Réponses: 11
    Dernier message: 09/02/2007, 17h46
  5. [PHP-JS] Réécrire un string lettre après lettre
    Par Andalor dans le forum Langage
    Réponses: 16
    Dernier message: 13/07/2006, 14h22

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