Problème avec strlen et php !

Résolu/Fermé
holycasto31 Messages postés 9 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 11 janvier 2012 - 1 janv. 2012 à 05:04
holycasto31 Messages postés 9 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 11 janvier 2012 - 3 janv. 2012 à 07:58
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>
A voir également:

5 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
1 janv. 2012 à 09:31
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
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 310 Date d'inscription dimanche 27 novembre 2011 Statut Membre Dernière intervention 8 janvier 2021 34
2 janv. 2012 à 13:27
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 samedi 31 décembre 2011 Statut Membre Dernière intervention 11 janvier 2012
1 janv. 2012 à 21:01
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 samedi 31 décembre 2011 Statut Membre Dernière intervention 11 janvier 2012
Modifié par holycasto31 le 3/01/2012 à 08:07
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