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   -
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>

5 réponses

jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
strlen est une fonction standard en PHP. Attention cependant avec les chaînes UTF8 avec lesquelles il vaut mieux utiliser les fonctions multibytes mb_*:
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
1
le père
 
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.
1
supupoff Messages postés 312 Date d'inscription   Statut Membre Dernière intervention   34
 
inséré ceci au debut de code

<?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 :!!!
1
holycasto31 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Merci pour ta réponse,

Même en utilisant la fonction multibytes mb_strlen php ne le reconnait toujours pas...

D'autres idées ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
holycasto31 Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
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 : ) !
0