is_string ??

vador371
Invité n'ayant pas de compte PHPfrance

18 nov. 2005, 14:08

Bonjour,

Je souhaite tester si une variable que je passe par un formulaire est de type "string".

Voici le code :

Code : Tout sélectionner

<?php if(!isset ($_POST["truc"])) { print "Saisir qq chose et cliquer sur Envoyer. Merci"; } else { $truc = $_POST["truc"]; if(is_string($truc)) { print "c'est Ok"; } else { print "Ce n'est pas unes string"; } } ?> <html> <body> <form name="test" method="post" action="test.php"> <p> <input name="truc" type="text" id="test" size="25" maxlength="50"> <input type="submit" name="Submit" value="Envoyer"> </p> </form> </body> </html>
Le pb c'est que meme lorsque je saisie des chiffres dans le champ 'truc', il me renvoit "C'est OK'. Je ne comprends pas pourquoi.
Merci de votre aide.

@+

Mammouth du PHP | 1311 Messages

18 nov. 2005, 14:15

salut
c'est normal tu envois des données de type text

Code : Tout sélectionner

<input name="truc" type="text" id="test" size="25" maxlength="50">
si tu fait
echo var_dump($_post);
tu vera que tu aura que des strings

Mammouth du PHP | 983 Messages

18 nov. 2005, 14:21

Tu peux utiliser la fonction ctype_alplha()
qui retourne true si tous les caractères de la chaînes testée sont des lettres.

Les autres fonctions ctype:
http://fr.php.net/ctype

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2005, 14:28

salut
c'est normal tu envois des données de type text

Code : Tout sélectionner

<input name="truc" type="text" id="test" size="25" maxlength="50">
si tu fait
echo var_dump($_post);
tu vera que tu aura que des strings
Je n'ai pas bien compri, tu peux être plus explicite ??
merci

Invité
Invité n'ayant pas de compte PHPfrance

18 nov. 2005, 14:28

Tu peux utiliser la fonction ctype_alplha()
qui retourne true si tous les caractères de la chaînes testée sont des lettres.

Les autres fonctions ctype:
http://fr.php.net/ctype
ça fonctionne tres bien merci.
je ne connaissais pas ces fonctions, interessant !

Mammouth du PHP | 983 Messages

18 nov. 2005, 14:44

Je n'ai pas bien compri, tu peux être plus explicite ??
merci
jeff voulait te dire que toutes les valeurs contenues dans $_GET et $_POST (ou tout autre variable super globlale) étaient de type string.

A toi de faire un trans-typage dessus si tu veux t'assurer du type de la variable.
http://fr.php.net/manual/fr/language.ty ... ggling.php