Authentification Php/MySQL => Rajout d'une suite de chiffre ?
2 réponses
Bruno Variole
Bonjour,
J'ai sur mon site une partie protege par un classique login/pass qui me sert
a authentifier mes utilisateurs ...
J'aimerais rajouter en sus du login/pass l'obligation pour l'utilisateur de
rentrer un code qui s'affiche sous la forme d'une image (on voit beaucoup
cela maintenant pour eviter les inscriptions automatiques)
Quelqu'un a deja fait cela ? car je patauge un peu (je debute)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
newdb
Bruno Variole wrote:
J'aimerais rajouter en sus du login/pass l'obligation pour l'utilisateur de rentrer un code qui s'affiche sous la forme d'une image (on voit beaucoup cela maintenant pour eviter les inscriptions automatiques)
<?php //renseigner correctement les deux lignes ci-dessous $idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass); $db_selected = mysql_select_db($sql_bdd, $idConnexion);
//si premier appel du formulaire ou envoi à vide if (!($_POST['verif'])) { //création d'une valeur aléatoire de 32 caractères //faudra réduire !!! $alea = md5 (uniqid (rand())); //création d'une image de cette valeur $img = imagecreate(350, 30); $coul_fond = imagecolorallocate($img, 0, 0, 0); $coul_texte = imagecolorallocate($img, 255, 255, 255); imagestring($img, 6, 5, 5, $alea, $coul_texte); $fichier_image = imagejpeg($img, $alea.".jpg"); //insertion en base de la valeur $requete = "INSERT INTO Acces SET AccesID = '$alea'"; @mysql_query($requete, $idConnexion); //affichage du formulaire //compléter ce qui manque dans le html echo "<html><head></head><body>"; echo "<img src="".$alea.".jpg"><br><br>"; echo "<form method="post" action="".$PHP_SELF."">"; echo "<input type="text" name="verif"><input type="submit">"; echo "<input type="hidden" name="supp" value="".$alea.""> echo "</form>"; echo "</body></html>"; } //si formulaire envoyé avec valeur else { $url_non = "http://".$SERVER_NAME."/non.php?s=".urlencode($supp); $url_oui = "http://".$SERVER_NAME."/oui.php?s=".urlencode($supp); $controle = $_POST['verif']; //recherche de la correspondance en base $requete = "SELECT AccesID FROM Acces WHERE (AccesID = '$controle')"; $idresultat = mysql_query($requete, $idConnexion); if (mysql_num_rows($idresultat) == 0) { //si pas de correspondance, on éjecte header("Location: $url_non"); exit; } else { // sinon on laisse passer header("Location: $url_oui"); } } ?>
********************************************** au début des pages non.php et oui.php **********************************************
<?php //renseigner correctement les deux lignes ci-dessous $idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass); $db_selected = mysql_select_db($sql_bdd, $idConnexion);
$a_supprimer = $_GET['s']; //on supprime de la base la valeur $requete = "DELETE FROM Acces WHERE AccesID = '$a_supprimer'"; @mysql_query($requete, $idConnexion); //on supprime du répertoire le fichier image unlink $a_supprimer.".jpg"; ?>
-- @@@@@ E -00 doit y avoir plus simple ! ' `) / |_ =="
Bruno Variole <bruno@variole.org> wrote:
J'aimerais rajouter en sus du login/pass l'obligation pour l'utilisateur de
rentrer un code qui s'affiche sous la forme d'une image (on voit beaucoup
cela maintenant pour eviter les inscriptions automatiques)
<?php
//renseigner correctement les deux lignes ci-dessous
$idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass);
$db_selected = mysql_select_db($sql_bdd, $idConnexion);
//si premier appel du formulaire ou envoi à vide
if (!($_POST['verif'])) {
//création d'une valeur aléatoire de 32 caractères
//faudra réduire !!!
$alea = md5 (uniqid (rand()));
//création d'une image de cette valeur
$img = imagecreate(350, 30);
$coul_fond = imagecolorallocate($img, 0, 0, 0);
$coul_texte = imagecolorallocate($img, 255, 255, 255);
imagestring($img, 6, 5, 5, $alea, $coul_texte);
$fichier_image = imagejpeg($img, $alea.".jpg");
//insertion en base de la valeur
$requete = "INSERT INTO Acces SET AccesID = '$alea'";
@mysql_query($requete, $idConnexion);
//affichage du formulaire
//compléter ce qui manque dans le html
echo "<html><head></head><body>";
echo "<img src="".$alea.".jpg"><br><br>";
echo "<form method="post" action="".$PHP_SELF."">";
echo "<input type="text" name="verif"><input type="submit">";
echo "<input type="hidden" name="supp" value="".$alea."">
echo "</form>";
echo "</body></html>";
}
//si formulaire envoyé avec valeur
else {
$url_non = "http://".$SERVER_NAME."/non.php?s=".urlencode($supp);
$url_oui = "http://".$SERVER_NAME."/oui.php?s=".urlencode($supp);
$controle = $_POST['verif'];
//recherche de la correspondance en base
$requete = "SELECT AccesID FROM Acces WHERE (AccesID = '$controle')";
$idresultat = mysql_query($requete, $idConnexion);
if (mysql_num_rows($idresultat) == 0) {
//si pas de correspondance, on éjecte
header("Location: $url_non");
exit;
}
else {
// sinon on laisse passer
header("Location: $url_oui");
}
}
?>
**********************************************
au début des pages non.php et oui.php
**********************************************
<?php
//renseigner correctement les deux lignes ci-dessous
$idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass);
$db_selected = mysql_select_db($sql_bdd, $idConnexion);
$a_supprimer = $_GET['s'];
//on supprime de la base la valeur
$requete = "DELETE FROM Acces WHERE AccesID = '$a_supprimer'";
@mysql_query($requete, $idConnexion);
//on supprime du répertoire le fichier image
unlink $a_supprimer.".jpg";
?>
--
@@@@@
E -00 doit y avoir plus simple !
' `) /
|_ =="
J'aimerais rajouter en sus du login/pass l'obligation pour l'utilisateur de rentrer un code qui s'affiche sous la forme d'une image (on voit beaucoup cela maintenant pour eviter les inscriptions automatiques)
<?php //renseigner correctement les deux lignes ci-dessous $idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass); $db_selected = mysql_select_db($sql_bdd, $idConnexion);
//si premier appel du formulaire ou envoi à vide if (!($_POST['verif'])) { //création d'une valeur aléatoire de 32 caractères //faudra réduire !!! $alea = md5 (uniqid (rand())); //création d'une image de cette valeur $img = imagecreate(350, 30); $coul_fond = imagecolorallocate($img, 0, 0, 0); $coul_texte = imagecolorallocate($img, 255, 255, 255); imagestring($img, 6, 5, 5, $alea, $coul_texte); $fichier_image = imagejpeg($img, $alea.".jpg"); //insertion en base de la valeur $requete = "INSERT INTO Acces SET AccesID = '$alea'"; @mysql_query($requete, $idConnexion); //affichage du formulaire //compléter ce qui manque dans le html echo "<html><head></head><body>"; echo "<img src="".$alea.".jpg"><br><br>"; echo "<form method="post" action="".$PHP_SELF."">"; echo "<input type="text" name="verif"><input type="submit">"; echo "<input type="hidden" name="supp" value="".$alea.""> echo "</form>"; echo "</body></html>"; } //si formulaire envoyé avec valeur else { $url_non = "http://".$SERVER_NAME."/non.php?s=".urlencode($supp); $url_oui = "http://".$SERVER_NAME."/oui.php?s=".urlencode($supp); $controle = $_POST['verif']; //recherche de la correspondance en base $requete = "SELECT AccesID FROM Acces WHERE (AccesID = '$controle')"; $idresultat = mysql_query($requete, $idConnexion); if (mysql_num_rows($idresultat) == 0) { //si pas de correspondance, on éjecte header("Location: $url_non"); exit; } else { // sinon on laisse passer header("Location: $url_oui"); } } ?>
********************************************** au début des pages non.php et oui.php **********************************************
<?php //renseigner correctement les deux lignes ci-dessous $idConnexion = mysql_connect($sql_serveur, $sql_user, $sql_pass); $db_selected = mysql_select_db($sql_bdd, $idConnexion);
$a_supprimer = $_GET['s']; //on supprime de la base la valeur $requete = "DELETE FROM Acces WHERE AccesID = '$a_supprimer'"; @mysql_query($requete, $idConnexion); //on supprime du répertoire le fichier image unlink $a_supprimer.".jpg"; ?>
-- @@@@@ E -00 doit y avoir plus simple ! ' `) / |_ =="
Vincent
Hello,
Essaie sur http://www.az-php.com/, sur le cours "26° Coder son ANTI-FLOOD"
Tu dois être membre pour consulter l'article, mais cela ne te coûte rien...
@+, le cours d'informatique se termine ! ;-)
Hello,
Essaie sur http://www.az-php.com/, sur le cours "26° Coder son ANTI-FLOOD"
Tu dois être membre pour consulter l'article, mais cela ne te coûte rien...