Se connecter avec
S'enregistrer | Connectez-vous

Limiter un nombre de caractere en php

Dernière réponse : dans Programmation

bonjour...je suis toujours débutante en php :-)

Voilà j'ai un page html avec mon codage php nikel et tout et tout....tout fonctionne bien mais je voudrais ajouter un petit truc et là...aie aie cata je bloque depuis ce matin et chercher un peu partout sur la toile sans rien trouver...et pourtant comme d'habitude je suis certaine que c'est encore du 3xrien mais bon...je compte sur vous en fait là !


Donc j'ai un formulaire avec plein de input tralala, ce que je veux faire c'est dire à mon visiteur
1/ qu'il est obligé de remplir certain champ
2/ qu'il est obligé de mettre un nombre défini (par moi ) pour valider

Commen que je fait tout ??hein! hein! je vous le demande.

Autres pages sur : limiter nombre caractere php

Lassé par la pub ? Créez un compte

bheuuuuuuuuuuu je suis perdue snifff....

En fait isset je l'utilise sur le bouton formulaire puis je décline mes variables de formulaire dans mon if
(bon explication de débutante donc...excuser pour les termes un peu nheunheuche')

1/Ici je veux obliger le visiteur à remplir certain champ (pas spécialement tous), si il ne le fait pas, cela doit le renvoyer sur le formulaire
(biensure sans envoyer les autres champ rempli dans ma bdd sinon ça fausse tout :-s)
Résolu :-)
A force de persévérance j'y suis parvenue avec if et else mais heuuu j'ai pas encore acquis toute la logique et les réflexes du codage donc je pédale un peu mdr!

Donc mon problème restant...

Ce n'est pas que je veux connaitre le nombre de caractères entré par le visiteur, mais plutôt que je veux:
-soit l'empêcher de mettre plus de 'x' caractères
-soit l'obliger à mettre un minimum de 'x' caractères
et si ces conditions ne sont pas remplies...taratata op il retombe sur le formulaire qui n'a donc pas été envoyer à ma bdd.

Et c'est là que .....même mon grand talent de débutante ne m'aide pas...je ne voit pas comment même if et else que j'affectionne depuis mon problème 1 ;)  peuvent ici m'aider sans connaitre la "fonction" appropriée au nbre de carateres
snifff snifff
Hummm suis-je suffisemment claire dans mon charabia? mdr!


Expert Programmation

Il ne faut surtout pas stocker tant que le formulaire n'est pas entièrement rempli. La solution peut par exemple passer par un cookie afin de préremplir le formulaire une fois que tu as renvoyer en arrière.

Aller, je suis gentils, je vais donner un peu de code :) 

page de traitement
  1. <?php
  2. /*
  3. * le principe est le suivant, on regarde si on a tout bon, si on a pas tout bon,
  4. * on stock les données dans un cookie pour préremplir le formulaire
  5. * après redirection.
  6. */
  7.  
  8. //vérification des variables obligatoires
  9. if(!isset($_POST['toto'], $_POST['tata']) {
  10. //une variable obligatoire d'a pas été complétée
  11. if(isset($_POST['toto']) setcookie('toto', $_POST['toto'], time()+20);
  12. if(isset($_POST['tata']) setcookie('toto', $_POST['tata'], time()+20);
  13.  
  14. header("Location: <a href="http://www.monsite.com/monformulaire.php" target="_blank">http://www.monsite.com/monformulaire.php</a>");
  15. }
  16. else {
  17. //bon, bah a priori j'ai tout
  18. //je sécurise mes données
  19. //si toto doit être un chiffre
  20. if(!is_numeric($_POST['toto'])) header("Location: <a href="http://www.monsite.com/monformulaire.php" target="_blank">http://www.monsite.com/monformulaire.php</a>");
  21. else $toto = $_POST['toto'];
  22.  
  23. //pour une chaine de caractère
  24. $tata = mysql_escape_string($_POST['tata']);
  25.  
  26. //j'ajoute en bdd
  27. $sql = "INSERT INTO matable(toto, tata) VALUES ($toto, '$tata');
  28. mysql_query($sql) or die ('Erreur sql !');
  29. }



Dans l'affichage du formulaire il faut rajouter de regarder dans le cookie.

<form>
<input type='text' name='toto' value='<?php if(isset($_COOKIE['toto']) echo $_COOKIE['toto']; ?>
</form>

J'ai absolument pas tester le code mais la logique est là :) 

pour faire court si je pouvais trouver un truc du genre:

tu if, tu chopes ta variante $x, tu lui colle (machin truc bazard), else ta variante $y, tu lui colle (truc muche tralala) et op le tour est jouer ça m'arrangerais pas mal ;) 

Yessss j'ai trouvé une petite réponse toute simpa....je vous file le tuyaux :-)

un exemple:

if($duree=='' or strlen($duree)>3)
{echo 'veuillez ne pas entrer plus de 3 caractères';}
else{ le reste des instruction de la page de code....

Et voilà l'affaire est dans le sac :-)
Lassé par la pub ? Créez un compte
Tom's guide dans le monde