Bonjour à tous,
Après avoir suivi un tuto d'une chaine YOUTUBE très simple sur les formulaires de connexion afin de permettre aux admin de se connecter à une page admin, j'ai souhaité trouvé un tuto me permettant de protéger ma page admin. cette chaine ne disposant pas de tuto pour se faire, j'ai suivis donc un autre tuto d'une autre chaine utilisant le "accessgranted" (j'ai abandonné le htaccess car je souhaite une boite de connexion stylisé). Alors oui, me diriez vous j'aurais pu suivre les tuto Grafikart, mais malheureusement étant très novice dans le domaine, je m'y perd et ne comprends pas tout sur certains tuto, mais à force çà va venir ;) (pour info je suis malgré tout membre prémium car certain tuto sont très bon).
Pour revenir à la base de mon problème, concernant le fonctionnement de mon formulaire et de mon accessgranted pas de soucis cela fonctionne bien, mais je souhaiterais que mes echo "*Nom ou mot de passe incorrect" et "*Veuillez saisir tous les champs" soient pris en compte et donc placé à l'intérieur de ma div "formulaire_login" et non à l'extérieur.
Alors j'ai testé et retesté de mettre le début de ma div à différents endroits, mais les résultats sont:
1)soit mes echos ne sont plus dans mon conteneur de ma div, et/ou ne veulent pas y rester -_-, et une fois connecté ma fenêtre de connexion disparait (ce que je souhaite),
2)soit ils y sont (ce que je souhaite) mais une fois connecté, ma fenêtre de connexion ne s'enlève pas -_-,
3)soit j'ai de belle erreur de syntaxe quand je bidouille en mettant mon début de div là ou là -_-.
Voici la partie de mon code php concerné (dans cet structure de code le problème est le 1):
<!-- CORPS DU SITE -->
<div id="bloc_page">
<!-- CONTACT -->
<div id="contact">
<?php
if(isset($_POST'envoyer']))
{
$user=mysql_real_escape_string(htmlspecialchars($_POST'user']));
$password=mysql_real_escape_string(htmlspecialchars($_POST'password']));
if($user AND $password)
{
$connexion_admin=mysql_connect('localhost','root','');
mysql_select_db('bam_esport');
$login=mysql_query("SELECT*FROM admin WHERE user='$user' AND password='$password'");
$rows=mysql_num_rows($login);
if($rows==1)
{
$accessgranted=1;
}
else
echo '<p class="veuillez_remplir">* Nom ou mot de passe incorrect</p>';
}
else echo '<p class="veuillez_remplir">* Veuillez saisir tous les champs</p>';
}
if(!isset($accessgranted))
{
?>
<div id="formulaire_login">
<form action="" method="post">
<span class="input_user"><input type="text" name="user"/></span>
<span class="input_password"><input type="password" name="password"/></span>
<div id="se_souvenir_de_moi">
<label>Se souvenir de moi</label><input type="checkbox">
</div>
<input type="submit" name="envoyer" value="Se connecter" id="submit"/>
</form>
</div>
<?php
}
else
{
?>
<?php
}
?>
</div>
</div>
<!-- PIED DE PAGE -->
<div id="footer"></div>
En remerciant par avance des réponses qui me seront apportées pour solutionner mon problème.
Alors deja pour ton problème de saisis des champs tu peux mettre aux input la propriété "required" obligeant l'utilisateur à remplir tous les champs. Un petit lien pour le required Required documentation. Après il y a des tutos sur la création d'un formulaire de contact ( le principe est le même en ce qui concerne de renseigner une bonne adresse mail ....) Regarde dans les tutos de graphikart.
Bon travail
@nicogne:
Déjà je te remercie pour ta réponse.
Je n'ai pas de problème avec la saisie des champs. J'ai regardé notamment le tuto "Validation de formulaire en HTML5 et CSS3" ou figure l'attribut "required", mais cela ne correspond pas à ce que je désire faire. Ce que je souhaite, ce n'est pas une une info-bulle (que je ne serais personnaliser), qui me dit sur chaque input "veuillez remplir ce champ", mais un message d'erreur (cf mes echo) situé à un endroit précis dans mon conteneur div formulaire.
Exemple par screenshot de ce que je veux, mais pour ce faire j'ai mis mes echo en position absolute donc ne reste pas dans ma div formulaire étant donné qu'elle est appelé après: