Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2874 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  petit soucis avec intval() - pfff facile de crier qd on ne sait pas :p

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

petit soucis avec intval() - pfff facile de crier qd on ne sait pas :p

n°1226864
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 10:54:27  profilanswer
 

youp,
 
 
je récupère les données d'un formulaire et pour m'assurer de bien récupérer un entier, je fais
 
 

Code :
  1. die(intval($_POST['la_variable']));


 
résultat: RIEN
 
 
sans le intval()

Code :
  1. die($_POST['la_variable']);


 
résultat: 6
 
 
j'ai essayé:
 

Code :
  1. intval(''.$_POST[]);
  2. intval(' '.$_POST[]);
  3. intval(' '.$_POST[].' ');
  4. intval($_POST[], 10);


 
 
si quelqu'un a une explication ?
 
 :jap:


Message édité par art_dupond le 20-10-2005 à 13:31:06

---------------
oui oui
mood
Publicité
Posté le 20-10-2005 à 10:54:27  profilanswer
 

n°1226881
gatsusat
Posté le 20-10-2005 à 11:19:01  profilanswer
 

programmation par les pieds
 
http://fr.php.net/manual/fr/function.is-int.php
http://fr.php.net/manual/fr/function.is-numeric.php
 
http://fr.php.net/manual/fr/function.intval.php
 
en gros RTFM et tu apprendras que intval te retourne un entier
donc tu te dis dans ta tête
 
echo intval($maputaindevariable)
 
et puis de toute manière tu lis :  

Citation :


Les chaînes de caractères retournent la plupart du temps 0, cela dépend de les caractères à l'extrême gauche de la chaîne de caractères. La règle courante du transtypage d'entier s'applique.


 
donc soit tu fais un if is_int($salopedevariable)
ou bien un if ($monentier = intval($salopedevariable)) { echo $monentier}
 
là ca taffichera du texte (ton entier koi) seulement si la variable est un entier. Dans le cas contraire ca te botte l'anus.
PS : si ta variable vaut 0 ben ca t'affiche rien non plus
 
donc meilleure solution :  
 
 
if (is_int($salopedevariable)) {
  echo intval($salopedevariable);
}

Message cité 1 fois
Message édité par gatsusat le 20-10-2005 à 11:28:13

---------------
Les CSS c'est bon mangez-en
n°1226890
stiffler
Lâche mon profil putain ! :o
Posté le 20-10-2005 à 11:25:58  profilanswer
 

C'est sympa de prendre le temps de répondre (et de la faire bien) mais faudrait voir à être un poil moins agréssif ! :)

n°1226905
KrisCool
“Verbeux„
Posté le 20-10-2005 à 11:31:06  profilanswer
 

Surtout que si on enlève les grossièrtés on gagne du temps pour l'écriture du post [:god]


Message édité par KrisCool le 20-10-2005 à 11:31:22

---------------
Loose Change Lies | Bars | Last.fm
n°1227026
esox_ch
Posté le 20-10-2005 à 12:59:13  profilanswer
 

Oui c'est pas faux, mais encore une fois si l'auteur avait bien pris la peine de taper intvalue() dans php.net (cout => a peu pres 35 sec) il aurait pu s'en rendre compte par lui meme ... m'enfin bon comme d'abitude on va me reservire le "oui mais un forum ça sert a aider les boulets qui sont pas capables de fournir le moindre effort"


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227027
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:02:10  profilanswer
 

gatsusat a écrit :

programmation par les pieds
 
http://fr.php.net/manual/fr/function.is-int.php
http://fr.php.net/manual/fr/function.is-numeric.php
 
http://fr.php.net/manual/fr/function.intval.php
 
en gros RTFM et tu apprendras que intval te retourne un entier
donc tu te dis dans ta tête
 
echo intval($maputaindevariable)
 
et puis de toute manière tu lis :  

Citation :


Les chaînes de caractères retournent la plupart du temps 0, cela dépend de les caractères à l'extrême gauche de la chaîne de caractères. La règle courante du transtypage d'entier s'applique.


 
donc soit tu fais un if is_int($salopedevariable)
ou bien un if ($monentier = intval($salopedevariable)) { echo $monentier}
 
là ca taffichera du texte (ton entier koi) seulement si la variable est un entier. Dans le cas contraire ca te botte l'anus.
PS : si ta variable vaut 0 ben ca t'affiche rien non plus
 
donc meilleure solution :  
 
 
if (is_int($salopedevariable)) {
  echo intval($salopedevariable);
}


 
de numéro 1, j'ai lu le manuel (ici: http://be.php.net/manual/en/function.intval.php )
 
de numéro 2, je vois dans l'exemple:

Code :
  1. echo intval(42);                      // 42
  2. echo intval('42');                    // 42


donc "MaSuperVariable", qu'elle soit déjà en format entier ou qu'elle soit en format "chaine", ca devrait marcher.
 
de numéro 3, je ne comprends pas:

Code :
  1. if (is_int($salopedevariable)) {
  2.   echo intval($salopedevariable);
  3. }


 
si je comprends bien, si ma variable est entière, je peux en extraire la valeur entière ? Super !
 


---------------
oui oui
n°1227030
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:04:18  profilanswer
 

esox_ch a écrit :

Oui c'est pas faux, mais encore une fois si l'auteur avait bien pris la peine de taper intvalue() dans php.net (cout => a peu pres 35 sec) il aurait pu s'en rendre compte par lui meme ... m'enfin bon comme d'abitude on va me reservire le "oui mais un forum ça sert a aider les boulets qui sont pas capables de fournir le moindre effort"


 :cry:


---------------
oui oui
n°1227033
stiffler
Lâche mon profil putain ! :o
Posté le 20-10-2005 à 13:05:55  profilanswer
 

esox_ch a écrit :

Oui c'est pas faux, mais encore une fois si l'auteur avait bien pris la peine de taper intvalue() dans php.net (cout => a peu pres 35 sec) il aurait pu s'en rendre compte par lui meme ... m'enfin bon comme d'abitude on va me reservire le "oui mais un forum ça sert a aider les boulets qui sont pas capables de fournir le moindre effort"


d'après ce qu'il avait posté, il avait cherché un minimum  [:dawa]
après c'est sur que tu peu toujours faire plus ! [:dawa]

n°1227040
esox_ch
Posté le 20-10-2005 à 13:12:22  profilanswer
 

art_dupont, figure toi que dans la vie il n'y a pas que les int et les string... La raison pour laquelle tu vois pas l'utilité de ce qu'a dis gatusu c'est que PHP est un langage excessivement permissif qui laisse faire du tout et du n'importe quoi ..  
Dans un langage fortement typé (comme Java) tu est obbligé de controler que ce que tu utilises est un Int avant de pouvoir le traiter comme tel ...


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227041
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:12:52  profilanswer
 

bon, je ne sais pas ce que vous avez...
 
 
 
si j'ai

Code :
  1. $a = "3";
  2. $b = 4;
  3. echo intval($a).intval($b);


 
 
ca me donnera "34"
 
 
là, la variable vient d'un formulaire

Code :
  1. echo $_POST['variable']


me donne 5
 

Code :
  1. echo intval($_POST['variable'])


ne me donne rien.
 
 
 
qu'est-ce que j'ai mal fait que j'aurais dû voir dans le manuel ?  
 
Je veux bien qu'il y ait quelque chose qui m'ait échappé mais je l'ai lu le manuel :cry:


---------------
oui oui
mood
Publicité
Posté le 20-10-2005 à 13:12:52  profilanswer
 

n°1227042
esox_ch
Posté le 20-10-2005 à 13:14:25  profilanswer
 

Fait un coup de is_int() avant , si ca se trouve pour une raison X ou Y il le considere pas comme le bon type
 
Edit: Parcontre apres avoir relu la page de man de is_int ... PHP c'est vraiment un langage n'importe quoi ... des intVal et is_int qui prennent mixed value comme argument  :pfff:

Message cité 2 fois
Message édité par esox_ch le 20-10-2005 à 13:16:51

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227045
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:15:59  profilanswer
 

esox_ch a écrit :

art_dupont, figure toi que dans la vie il n'y a pas que les int et les string... La raison pour laquelle tu vois pas l'utilité de ce qu'a dis gatusu c'est que PHP est un langage excessivement permissif qui laisse faire du tout et du n'importe quoi ..  
Dans un langage fortement typé (comme Java) tu est obbligé de controler que ce que tu utilises est un Int avant de pouvoir le traiter comme tel ...


en l'occurence là c'est un string et je voudrais le passer dans intval()...
 
intval("opzuroze" ) me donnera 0 (ou rien, c'est pareil)
intval("4" ) devrait me donner 4 (ou "4" je m'en fous)
 
hors ca ne le fait pas


---------------
oui oui
n°1227046
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:16:42  profilanswer
 

esox_ch a écrit :

Fait un coup de is_int() avant , si ca se trouve pour une raison X ou Y il le considere pas comme le bon type


il considère ca comme un string (testé avec is_string())


---------------
oui oui
n°1227048
esox_ch
Posté le 20-10-2005 à 13:19:12  profilanswer
 

Juste un pti doute . Test voir un :
 
$myVar = $_POST['variable'];
echo '['.$myVar.']['.$_POST['variable'].']';
echo intval((int)$myVar);

Message cité 1 fois
Message édité par esox_ch le 20-10-2005 à 13:20:17

---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227054
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 13:30:34  profilanswer
 

esox_ch a écrit :

Juste un pti doute . Test voir un :
 
$myVar = $_POST['variable'];
echo '['.$myVar.']['.$_POST['variable'].']';
echo intval((int)$myVar);


 
youp,  
 
j'ai testé  

Code :
  1. die('['.$myVar.']['.$_POST['variable'].'] :'.intval((int)$myVar));

et ca marche :)
 
c'était quoi ton doute ?
 
 
le problème venait bêtement du fait que die($machin) n'affichait rien, alors que die("".$machin) est ok :sweat:  
Sinon la variable était bien là :pt1cable:  
 
 
merci esox_ch ;)
 
 


---------------
oui oui
n°1227072
esox_ch
Posté le 20-10-2005 à 13:54:20  profilanswer
 

Mon doute c'est que pour changer PHP en fait a sa tete et caste les variables automatiquement et un peu n'importe comment .
Genre $a = 6; // int
$b = ''.$a; ; //String
$c = $a.$a; ; //String
 
C'est simpas quand ça marche (d0ailleurs meme en java le castage automatique se fait dans certains cas) mais souvent ca fait du nawak


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227082
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 14:08:12  profilanswer
 

oki :)


---------------
oui oui
n°1227115
KrisCool
“Verbeux„
Posté le 20-10-2005 à 14:38:31  profilanswer
 

Ca n'était pas un problème lié à intval :)
C'était un problème lié à die().
 
die() est un alias pour exit().
 
Or, comme le précise la doc, exit() a deux formes:
 
void exit(string) qui affiche un message
void exit(int) qui n'affiche rien
 
;)


---------------
Loose Change Lies | Bars | Last.fm
n°1227192
esox_ch
Posté le 20-10-2005 à 16:01:31  profilanswer
 

Bah moi des que ca part en live dans le castage de variables automatique, je les castes a la main .. .Comme ça pas de surprises


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227238
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 16:24:55  profilanswer
 

sauf que là j'attendais un "int"... que j'avais :p
 
sauf que je ne savais pas le coup du die... que je sais maintenant :)
 
 
merci pour l'explication plus précise Kriscool :)


---------------
oui oui
n°1227261
gatsusat
Posté le 20-10-2005 à 16:45:47  profilanswer
 

mais faut pas utiliser die() n'importe comment, et apparament tu l'utilise un peu sauvageement non ?


---------------
Les CSS c'est bon mangez-en
n°1227283
esox_ch
Posté le 20-10-2005 à 17:03:36  profilanswer
 

Ca me rappelle le gugus qui throwait des exceptions pour sortir de ses fonctions parcequ'il avait pas compris le "return" :D


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227292
art_dupond
je suis neuneu... oui oui !!
Posté le 20-10-2005 à 17:07:43  profilanswer
 

je l'utilise pour vérifier que mes variables arrivent bien quand j'ai une erreur dans une page :o


Message édité par art_dupond le 20-10-2005 à 17:07:58

---------------
oui oui
n°1227330
naceroth
Posté le 20-10-2005 à 17:35:34  profilanswer
 

esox_ch a écrit :

... PHP c'est vraiment un langage n'importe quoi ... des intVal et is_int qui prennent mixed value comme argument  :pfff:


 
Evidement qu'ils prennent un mixed comme argument, vérifier qu'un argument n'est pas un int n'a de sens que s'il peut ne pas l'être...  :sarcastic:

n°1227369
esox_ch
Posté le 20-10-2005 à 18:23:23  profilanswer
 

le is_int oui je me suis laisser un peu aller. Mais le intVal ... mouais ... si on lui passe un truc genre intVal(array()); je suis pas vraiment entousiaste de comment il signale l'erreur ... M'enfin bon il faudra probablement attendre php6 pour une vrai gestion des exceptions


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
n°1227408
gatsusat
Posté le 20-10-2005 à 19:26:41  profilanswer
 

et attendre un genocide complet pour que le PHP devienne un langage reservé aux pro et pas aux kevins du web


---------------
Les CSS c'est bon mangez-en
n°1227724
KrisCool
“Verbeux„
Posté le 21-10-2005 à 09:45:58  profilanswer
 

gatsusat a écrit :

et attendre un genocide complet pour que le PHP devienne un langage reservé aux pro et pas aux kevins du web


 
Et au nom de quoi un langage devrait être élitiste ? [:itm]
C'est toujours amusant les gardiens du temple. Je reconnais que d'avoir des gens qui ne comprennent pas ce qu'ils font, qui font n'importe quoi et qui vont te demander pourquoi ça ne fonctionne pas, c'est pas forcément marrant quand tu touches toi-même ta bille, mais sans sa simplicité d'accès, php n'aurait JAMAIS eu le succès qu'il a eu aujourd'hui


---------------
Loose Change Lies | Bars | Last.fm
n°1227766
gatsusat
Posté le 21-10-2005 à 10:13:22  profilanswer
 

ouais, malheureusement ya 10x trop de mulot et de kevins qui n'arrivent même pas à coder koi ke ce soit en PHP et paf ils se lancent dans les sites web.
 
quand tu utilises un vrai langage objet, tu es sur de ce que tu fais tes actions sont pensées avant 'êtres faites
 
Mais les kevins qui codent en PHP ils se demandent pourquoi ca marche pas. normal 3/4 d'entre eux n'ont pas les erreurs qui s'affichent donc pour débugger, vas y la galère et le reste des kevins, sait à peine faire une concatenation.
 
C'est un langage trop ouvert, un peu comme VB.


---------------
Les CSS c'est bon mangez-en
n°1227767
art_dupond
je suis neuneu... oui oui !!
Posté le 21-10-2005 à 10:13:54  profilanswer
 

gatsusat a écrit :

et attendre un genocide complet pour que le PHP devienne un langage reservé aux pro et pas aux kevins du web


donc dans ce topic, il n'y aurait qu'une personne digne de faire du php :whistle:  
 
 
 
 :lol:


---------------
oui oui
n°1227785
KrisCool
“Verbeux„
Posté le 21-10-2005 à 10:27:21  profilanswer
 

gatsusat a écrit :

ouais, malheureusement ya 10x trop de mulot et de kevins qui n'arrivent même pas à coder koi ke ce soit en PHP et paf ils se lancent dans les sites web.
 
quand tu utilises un vrai langage objet, tu es sur de ce que tu fais tes actions sont pensées avant 'êtres faites
 
Mais les kevins qui codent en PHP ils se demandent pourquoi ca marche pas. normal 3/4 d'entre eux n'ont pas les erreurs qui s'affichent donc pour débugger, vas y la galère et le reste des kevins, sait à peine faire une concatenation.
 
C'est un langage trop ouvert, un peu comme VB.


 
Sur 1000 "mulots et kévins" comme tu dis (ça te fait comment de te sentir supérieur ?) y'en a 100 qui apprendront de leurs erreurs et vont pousser plus loin, et sur les 100 y'en a une poignée qui deviendont bons. Et c'est toujours ça de gagner pour la communauté d'un langage. PHP c'est pas divin, à la base c'est un vieux truc moisi pour mettre à jour un cv sur une page web.
Il n'aurait jamais avancé autant s'il n'avait pas été populaire, et c'est sa popularité qui fait qu'il est disponible facilement chez les hébergeurs aujourd'hui, qu'il y a des tonnes des libs, de packages et de classes disponibles pour accélérer le dev.
 
Maintenant les débutants ne sont qu'une nuisance toute relative, quelques messages rapidement ignorables sur les forums au pire.
Tu n'as pas à maintenir leurs scripts, tu n'as pas à les corriger, tu n'as pas à subir les conséquences de leurs bugs.
 
Alors où est le problème ?
Au niveau de ton égo sans doute  [:kiki]


---------------
Loose Change Lies | Bars | Last.fm
n°1228071
gatsusat
Posté le 21-10-2005 à 14:41:01  profilanswer
 

On va dire que le marché des developpeurs Web est pourri jusqu'à l'os par ce genre de débutant qui se croit tout permis. Le debat est clos car on pourrait deriver très loin


---------------
Les CSS c'est bon mangez-en
n°1228089
KrisCool
“Verbeux„
Posté le 21-10-2005 à 14:52:22  profilanswer
 

gatsusat a écrit :

Le debat est clos car on pourrait deriver très loin


 
Comme tu voudras  :jap:  
 


---------------
Loose Change Lies | Bars | Last.fm
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  petit soucis avec intval() - pfff facile de crier qd on ne sait pas :p

 

Sujets relatifs
Soucis avec script JS pour copier:collerpetit problème de modélisation
[resolu] Petit souci sur le php de mon formulaire[php] petit souci regexp
[RESOLU] Petit probleme debutant sur constructeurAide pour petit prog
Petit problème avec WHEREpetit programme
bloqué sur un petit programme en CSoucis avec mes urls et les espaces.
Plus de sujets relatifs à : petit soucis avec intval() - pfff facile de crier qd on ne sait pas :p


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR