Problème avec strlen et php !
Résolu
holycasto31
Messages postés
9
Date d'inscription
Statut
Membre
Dernière intervention
-
holycasto31 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
holycasto31 Messages postés 9 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaie d'utiliser strlen pour mesurer la longueur d'un mot de passe en php mais strlen n'est pas reconnu. J'ai cru comprend en faisant de petites recherches qu'il fallait mettre #include <string.h> dans notre script mais cela ne change rien, il ne le reconnait toujours pas... Voici la partie de code qui nous intéresse :
if (strlen($passwd)<=7){
die('Passwords needs to have 8 caractors or more !');
}
J'utilise easyphp pour développer !
Merci de votre aide : )
<config>Windows 7 / Firefox 8.0.1</config>
j'essaie d'utiliser strlen pour mesurer la longueur d'un mot de passe en php mais strlen n'est pas reconnu. J'ai cru comprend en faisant de petites recherches qu'il fallait mettre #include <string.h> dans notre script mais cela ne change rien, il ne le reconnait toujours pas... Voici la partie de code qui nous intéresse :
if (strlen($passwd)<=7){
die('Passwords needs to have 8 caractors or more !');
}
J'utilise easyphp pour développer !
Merci de votre aide : )
<config>Windows 7 / Firefox 8.0.1</config>
5 réponses
strlen est une fonction standard en PHP. Attention cependant avec les chaînes UTF8 avec lesquelles il vaut mieux utiliser les fonctions multibytes mb_*:
Regarde ici: https://www.php.net/manual/en/function.mb-strlen.php
johand@osiris: ~/tmp $ cat strlen.php <?php $words = array("Hello world", "éméché"); foreach ($words as $aword) { printf("Longueur de %s = %d\n", $aword, strlen($aword)); } foreach ($words as $aword) { printf("Longueur de %s = %d\n", $aword, mb_strlen($aword, "UTF8")); } ?> johand@osiris: ~/tmp $ php strlen.php Longueur de Hello world = 11 Longueur de éméché = 9 Longueur de Hello world = 11 Longueur de éméché = 6
Regarde ici: https://www.php.net/manual/en/function.mb-strlen.php
Bonjour
#include <string.h> est utilisé en langage C et n'a absolument aucun rapport avec le PHP. Si c'est encore dans ton script, retire-le.
Pourquoi dis-tu que strlen n'est pas reconnu ? strlen est toujours reconnu. As-tu un message d'erreur ? Si oui, recopie-le ici. Sinon, dis-nous quel est le comportement que tu attendais, et celui que tu observes.
Tu peux aussi faire echo $passwd; pour voir si $passwd est bien ce que tu crois.
#include <string.h> est utilisé en langage C et n'a absolument aucun rapport avec le PHP. Si c'est encore dans ton script, retire-le.
Pourquoi dis-tu que strlen n'est pas reconnu ? strlen est toujours reconnu. As-tu un message d'erreur ? Si oui, recopie-le ici. Sinon, dis-nous quel est le comportement que tu attendais, et celui que tu observes.
Tu peux aussi faire echo $passwd; pour voir si $passwd est bien ce que tu crois.
inséré ceci au debut de code
et si tu as un message d'erreur recopie-le ici :!!!
<?php header("Content-type: text/html; charset=UTF-8"); ini_set('mbstring.internal_encoding', 'UTF-8'); ?>
et si tu as un message d'erreur recopie-le ici :!!!
Merci pour ta réponse,
Même en utilisant la fonction multibytes mb_strlen php ne le reconnait toujours pas...
D'autres idées ?
Même en utilisant la fonction multibytes mb_strlen php ne le reconnait toujours pas...
D'autres idées ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Je viens de comprendre mon erreur ...
Je retournais la valeur du <input type="password"> dans la variable $passwd de cette manière : $passwd=md5($_POST['pass']); ce qui fait que lorsque j'invoquais : strlen($passwd) ... ça ne fonctionnait pas vu que c'est crypté en md5...
Il fallait plutôt aller chercher directement la valeur comme ceci :
strlen($_POST['pass']);
Merci le père ta question m'a mené dans la bonne direction !
Merci à tous : ) !
Je retournais la valeur du <input type="password"> dans la variable $passwd de cette manière : $passwd=md5($_POST['pass']); ce qui fait que lorsque j'invoquais : strlen($passwd) ... ça ne fonctionnait pas vu que c'est crypté en md5...
Il fallait plutôt aller chercher directement la valeur comme ceci :
strlen($_POST['pass']);
Merci le père ta question m'a mené dans la bonne direction !
Merci à tous : ) !