Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/09/2011, 09h54   #1
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Par défaut Fonction if qui ne fonctionne pas

Salut,

J'ai écris le code suivant :
Code :
1
2
3
4
if (($hauteur < 400) || ($largeur < 600))
   {echo "Inférieur";}
   else
   {echo "Supérieur";}
Et si j'ai $hauteur=800 et $largeur=1280, j'ai le message qui apparaît "Inférieur"...

Avez-vous une idée ou se trouve mon erreur. ???

@+.
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h23   #2
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Salut,
Présenté ainsi, c'est déroutant; difficile de faire plus simple
Il faudrait un peu plus d'informations, de code ... Tu es sûr de la valeur de $largeur et $hauteur (affiche les avant la condition pour voir).
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h23   #3
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Je viens de tester :

Code :
1
2
3
4
5
6
7
8
$hauteur = 800;
$largeur = 1280;
if (($hauteur < 400) || ($largeur < 600)) {
  echo "Inférieur";
}
else {
  echo "Supérieur";
}
Et ça m'affiche bien "Supérieur".

Es-tu sûr des valeurs de $largeur et $hauteur ?
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h29   #4
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Salut,

Le script complet est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
...
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
</SCRIPT>
...
$hauteur = "<script>document.write(EcranHaut);</script>";
$largeur = "<script>document.write(EcranLarg);</script>";
if (($hauteur < 400) || ($largeur < 600))
   {echo "Hauteur : ".$hauteur." - Largeur : ".$largeur." - Inférieur";}
   else
   {echo "Supérieur";}
...
Et j'obitents à l'affichage :
"Hauteur : 800 - Largeur : 1280 - Inférieur"

???
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h40   #5
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Bonjour,

un te renvoie quoi ?

il doit être considéré comme un string et non un int... d'où le mauvais résultat
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 10h55   #6
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Cela m'affiche
string(43) "800"
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h06   #7
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Et tu es obligé d'utiliser du php pour ça ?

tu peux pas faire tests en js ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h07   #8
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Oui, et maintenant, regarde la source, pas la page web. Tu verras ce que tu as dans ton var_dump().
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h09   #9
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Citation:
Envoyé par Bisûnûrs Voir le message
Oui, et maintenant, regarde la source, pas la page web. Tu verras ce que tu as dans ton var_dump().
Je ne comprends pas !!!

Citation:
Envoyé par syl2095 Voir le message
Et tu es obligé d'utiliser du php pour ça ?

tu peux pas faire tests en js ?
Peut-être pas mais je ne sais pas comment faire ?
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h11   #10
Modérateur
 
Avatar de Bisûnûrs
 
Josselin
Développeur Web
Inscription : janvier 2004
Messages : 9 050
Détails du profil
Informations personnelles :
Nom : Josselin
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : janvier 2004
Messages : 9 050
Points : 12 181
Points : 12 181
Tu affiches ton var_dump() dans ton navigateur. Ton navigateur interprète une partie de ton var_dump(). Donc une fois que tu as fait ton var_dump(), affiche la source de la page.
Bisûnûrs est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h12   #11
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
C'est pas un problème de portée de variable plutôt?
Cela me semblait bizarre que tu puisse récupérer la valeur d'une variable déclarée dans un autre bloc JS. Si je fais var_dump($hauteur) moi j'obtiens:
Code :
string '<script>document.write(EcranHaut);</script>' (length=43)
D'où problème
mon test:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
</SCRIPT>
<?php
$hauteur = "<script>document.write(EcranHaut);</script>";
$largeur = "<script>document.write(EcranLarg);</script>";
var_dump($hauteur);
$largeur=(int)$largeur;
$hauteur=(int)$hauteur;
if (($hauteur < 400) || ($largeur < 600))
   {echo "Hauteur : ".$hauteur." - Largeur : ".$largeur." - Inférieur";}
   else
   {echo "Supérieur";}
?>
Rendu:
Code :
1
2
string '<script>document.write(EcranHaut);</script>' (length=43)
Hauteur : 0 - Largeur : 0 - Inférieur
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h12   #12
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Code :
1
2
3
4
5
6
7
8
9
10
 
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
 
   if (( EcranHaut < 400) || (EcranLarg < 600))
   {alert('inferieur');}
   else
   {alert('superieur');}
</SCRIPT>
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h17   #13
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Citation:
Envoyé par Bisûnûrs Voir le message
Tu affiches ton var_dump() dans ton navigateur. Ton navigateur interprète une partie de ton var_dump(). Donc une fois que tu as fait ton var_dump(), affiche la source de la page.
J'obtiens le message suivant :
Warning: Wrong parameter count for var_dump() in /var/www/v/vv/vv8/vv87.perso.sfr.fr/public_html/index.php on line 43

Citation:
Envoyé par syl2095 Voir le message
Code :
1
2
3
4
5
6
7
8
9
10
 
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
 
   if (( EcranHaut < 400) || (EcranLarg < 600))
   {alert('inferieur');}
   else
   {alert('superieur');}
</SCRIPT>
Oui mais pour ma part, je voudrai mettre du code dans les deux conditions du if... donc je fais comment ???
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h20   #14
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Citation:
Envoyé par zoom61 Voir le message
J'obtiens le message suivant :
Warning: Wrong parameter count for var_dump() in /var/www/v/vv/vv8/vv87.perso.sfr.fr/public_html/index.php on line 43
Code :
1
2
3
echo '<pre>';
print_r($hauteur);
echo '</pre>';
Je préfère. A placer juste avant ton test.
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 11h21   #15
Membre chevronné
 
Inscription : juillet 2003
Messages : 625
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 625
Points : 600
Points : 600
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
 
   if (( EcranHaut < 400) || (EcranLarg < 600))
   {
# code si inferieur
}
   else
   {
# code si superieur
}
</SCRIPT>
Qu'est ce que tu veux faire exactement ?
__________________
Le savoir est utile que s'il est partagé par tous.
/(bb|[^b]{2})/
!sleep() ? array((string))
syl2095 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 13h05   #16
Membre Expert
 
Avatar de zoom61
 
Homme Vincent ...
Passionné d'informatique
Inscription : janvier 2005
Messages : 1 217
Détails du profil
Informations personnelles :
Nom : Homme Vincent ...
Âge : 39
Localisation : France, Haute Vienne (Limousin)

Informations professionnelles :
Activité : Passionné d'informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2005
Messages : 1 217
Points : 1 506
Points : 1 506
Envoyer un message via Yahoo à zoom61 Envoyer un message via Skype™ à zoom61
Si je vais un :
Code :
echo gettype($hauteur);
J'obtiens : String

Si je fais :
Code :
settype($hauteur, "integer");
J'obtiens : 0

Que dois-je faire ?
__________________
N'oubliez pas le Tag :

C'est en parvenant à nos fins par l'effort, en étant prêt à faire le sacrifice de profits immédiats en faveur du bien-être d'autrui à long terme, que nous parviendrons au bonheur caractérisé par la paix et le contentement authentique. [Dalaï Lama]
Je ne réponds pas aux messages privés s'ils sont liés à une question du forum

Mon site sur Developpez.com
zoom61 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 13h46   #17
Membre actif
 
Homme Fabrice Agnello
Développeur informatique
Inscription : octobre 2010
Messages : 76
Détails du profil
Informations personnelles :
Nom : Homme Fabrice Agnello
Âge : 39
Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : octobre 2010
Messages : 76
Points : 161
Points : 161
Citation:
Envoyé par zoom61 Voir le message
Salut,

Le script complet est le suivant :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
...
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
</SCRIPT>
...
$hauteur = "<script>document.write(EcranHaut);</script>";
$largeur = "<script>document.write(EcranLarg);</script>";
if (($hauteur < 400) || ($largeur < 600))
   {echo "Hauteur : ".$hauteur." - Largeur : ".$largeur." - Inférieur";}
   else
   {echo "Supérieur";}
...
Et j'obitents à l'affichage :
"Hauteur : 800 - Largeur : 1280 - Inférieur"

???
Bonjour,

vous mélangez php et javascript qui ont deux contextes d'exécution différents.
Ici, PHP (qui s'exécute sur le serveur, donc en premier) va interpréter votre page et générer le HTML suivant :
Code :
1
2
3
4
5
6
7
8
...
<SCRIPT LANGUAGE="JavaScript">
   EcranHaut = screen.height;
   EcranLarg = screen.width;
</SCRIPT>
...
Hauteur : <script>document.write(EcranHaut);</script> - Largeur : <script>document.write(EcranLarg);</script> - Inférieur
...
parce que vu de PHP, les variable $hauteur et $largeur ont le contenu textuel.
Code :
1
2
3
 
$hauteur = "<script>document.write(EcranHaut);</script>";
$largeur = "<script>document.write(EcranLarg);</script>";
ces variables contenant du texte vont ensuite être comparées à des valeurs numériques, mais vu de PHP la comparaison va obliger PHP à convertir la chaine en numérique, ce qu'il n'arrivera pas à faire et donnera donc la valeur 0 à comparer à vos variables $hauteur et $largeur, ce qui fait que la condition suivante est vérifiée :
Code :
if (($hauteur < 400) || ($largeur < 600))
Lorsque PHP a généré sa page, elle est ensuite envoyée au navigateur, qui lui, va réaliser la substitution à l'affichage du contenu des balises <script> générées par PHP.

C'est ce que vous pouvez vérifier à l'affichage car, de fait vous avez bien les valeurs numériques affichées. Par contre, en explorant le code HTML généré vous devriez pouvoir observer que ces valeurs numériques ne sont pas en dans le code HTML, mais plutot les balises de <script> générées.

Tout ça pour dire que côté PHP, vous ne pourrez pas accéder de cette manière à la taille de votre viewport. Il faudra peut-être transmettre cette information lors de l'envoi de la requete HTTP au serveur pour que PHP puisse la traiter.

HTH.
Agnello Fabrice est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/09/2011, 13h56   #18
Membre expérimenté
 
Avatar de tigunn
 
Homme
Développeur de bug
Inscription : janvier 2003
Messages : 516
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Développeur de bug

Informations forums :
Inscription : janvier 2003
Messages : 516
Points : 535
Points : 535
Bon, déjà tu ne peux pas faire cela ainsi: Puisque tu ne peux récupérer les valeurs de EcranHaut et EcranLarg; ce sont des variables javascript (définit après l'interprétation du php sur le serveur, côté client).
Deux solutions soit tu stocke ces infos dans un formulaire en champs hidden, soit tu passe par de l'AJAX.

MAIS AVANT TOUT: je rejoins syl2095, qu'est ce que tu veux faire comme traitement selon la résolution? Cela sera peut-^tre plus facile à faire en javascript.

Edit: ah j'ai été pris de vitesse : )
__________________
"le rhume distillation - L’estomac est la cucurbite, le cerveau le chapiteau, & le nez le réfrigérant par lequel s’écoule goutte à goutte le produit de la distillation."
de Avicenne

Le monde se divise en deux: ceux qui utilisent le tag et les autres.

Un problème? venez en découdre!
tigunn est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h48.


 
 
 
 
Partenaires

Hébergement Web