Manipulation de chaines - ex:mdps

0/5 (4 avis)

Snippet vu 4 003 fois - Téléchargée 30 fois

Contenu du snippet

J'ai débutté le php depuis 2 semaines , je lis bcp de tutoriaux , et quand je cherche un truc longtemps , je me dis que pour les newbies comme moi , ça doit être la même chose , donc je mets ça pour dépanner si y'en à qui ça interresse . Je cherchais ce code pour faire un systéme login , donc je ferais un exemple de login .

Source / Exemple :


<?
// On va faire une page test
 $Utilisateur=$HTTP_POST_VARS["utilisateur"];
 $Mdp=$HTTP_POST_VARS["motdepasse"];
 $AutoValid=$HTTP_POST_VARS["autoValid"];
// Traitement Char utilisateur : UtIlISAteUR
$Utilisateur=strtoupper($Utilisateur);
if (empty($Utilisateur))
{
Error("Veuillez saisir votre nom d'utilisateur !");
exit();
}
if (empty($Mdp))
{
Error("Veuillez saisir un Mot de Passe !");
exit();
}
// Ouverture du fichie des logins
$fs = fopen("./users/registres.dat", "r");
while(!feof($fs))     //Tant que l'on est pas a la fin du fichier
{
$Line1 = fgets($fs, 4096);
$Line2 = explode(",", $Line1);
If ($Utilisateur==$Line2[0])
	{
	If ($Mdp==$Line2[1])
		{
		 // Identification Ok !
setcookie("utilisateur",$Utilisateur,time()+365*24*3600);
setcookie("motdepasse",$Mdp,time()+365*24*3600);
setcookie("autoValid",$AutoValid,time()+365*24*3600);
       // Utilisateur
$Utilisateur=strtolower($Utilisateur);
	Echo "<html>";
	Echo "<head>";
	Echo "<title>Login Ok !</title>";
	Echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>";
	Echo "</head>";
	Echo "";
	Echo "<body bgcolor='#FFFFFF' text='#000000'>";
	Echo "<div align='center'> ";
	Echo "  <p><b><font color='#FF0000'>Loggin ok</font></p>";
	Echo "  <p><font color='#000000'>Bienvenue ",$Utilisateur," !</font></p>";
	Echo "  <p><font color='#000000'></font></p>";
	Echo "  <p><font color='#000000'>Votre identification à été faite , et vous pouvez maintenant contribuer au développement du site ;) ...</font></p>";
	Echo "</div>";
	Echo "</body>";
	Echo "</html>";
fclose($fs);
exit();
		}
		else
		{
		// Mot de passe invalide
		Error("Mot de passe incorrect , veuillez le resaisir ...");
        fclose($fs);
        exit();
		}
	}
}
Error("Utilisateur inconu ! Veuillez vérifier votre orthographe ;) ...");
fclose($fs);
exit();
?>

<?
// Error Function
function Error($Message)
{
	Echo "<html>";
	Echo "<head>";
	Echo "<title>COMMAND ERROR</title>";
	Echo "<meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'>";
	Echo "</head>";
	Echo "";
	Echo "<body bgcolor='#FFFFFF' text='#000000' link='#000066' vlink='#000066' alink='#000066'>";
	Echo "<div align='center'> ";
	Echo "  <p><b><font color='#FF0000'>/!\</font></b> Erreur <font 	Echo color='#FF0000'><b>/!\</b></font></p>";
	Echo "  <p><font color='#000000'>",$Message,"</font></p>";
    Echo  "<p><font size='1'><a href='identification.htm'>Cliquez ici pour revalider votre login </a><br>";
    Echo  "   <a href='inscription.htm'>Cliquez ici pour créer un compte</a><br>";
    Echo "    <a href='lostmdp.htm'>Cliquez ici si vous avez perdu votre mot de passe</a></font></p>";
	Echo "</div>";
	Echo "</body>";
	Echo "</html>";
} 
?>

// Pour plus d'explication de ce code :
// On ouvre le fichier registres.dat
// Son contenu est rédigé du style :
// NomUtilisateur,Password,....
// Avec explode(",", $Line1) on fractione
// la ligne brute du fichier en fragments délimités par
// le caractére ',' ...
// On les rechoppes dans une matrice en fonction 
// de leur position dans le string : $Line[0] = NomUtilisateur ...etc...

// La fonction $Utilisateur=strtoupper($Utilisateur);
// signifie qu'on mets en caractéres majuscules tous les caractéres
// de la variable $Utilisateur

// $Utilisateur=strtolower($Utilisateur) est la fonctione inverse
// cad qu'elle mettra en minuscule tous les Caractéres.

// Pour les autres fonctions If...Then...Else ainsi que setcookie etc , elle sont déjà expliquée 
// dans le tutoriaux donc pas besoin de les réexpliquer .

Conclusion :


Bonne prog à tous , akh

A voir également

Ajouter un commentaire Commentaires
Messages postés
154
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
12 décembre 2008

et pour que sa marche en tout cas pour moi:
if ($pseudo=$Line2[0]&&$pass=$Line2[1])
a la place de
if ($Utilisateur==$Line2[0] && $Mdp==$Line2[1])
voili voilou
sinon g trouve franchement que c' est bien que tu ai fait un tuto la dessu car les tuto sur explode sont rare !!!
thx
---
Messages postés
154
Date d'inscription
samedi 3 août 2002
Statut
Membre
Dernière intervention
12 décembre 2008

moi g mis ca a la place fgets($fs, filesize("1.txt")); et tu pourrai mettre if ($Utilisateur==$Line2[0] && $Mdp==$Line2[1])
{
a la place de
if ($Utilisateur==$Line2[0])
{
if ($Mdp==$Line2[1])
Messages postés
3006
Date d'inscription
dimanche 14 avril 2002
Statut
Membre
Dernière intervention
31 décembre 2008

Une excellente adresse pour les newbies, noobs et autres débutants :)

->->-> http://www.php.net/manual/fr/ <-<-<-

Le manuel officiel en français. Pour toutes les fonctions. L'utilité? Parcourez pleins de sites sur le php (phpdebutant.com et phpfrance.com sont très bons!) et lisez pleins de sources, quand vous rencontrez une fonction inconnue, allez voir dans le manuel c'est rapide. Grâce à ça, vous sentirez un peu plus les possibilités qu'offre le php et vous saurez à l'avance si il est vain d'entamer une idée de programme ou si php peut le faire. (en général, il peut le faire :)

Un langage, ça s'apprend en observant et enessayant de comprendre! Les tutoriaux vous apprenent les fondements de la syntaxe, l'expérience vous apprend le langage.

C'est une bonne idée d'expliquer comment manipuler des chaines, explode() par exemple est très utile.
Messages postés
276
Date d'inscription
dimanche 22 juillet 2001
Statut
Modérateur
Dernière intervention
5 décembre 2013

si vous avez des remarques ou des améliorations à faire , ben vous génez pas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.