HTML Form

Résolu/Fermé
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019 - 29 mai 2018 à 09:01
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019 - 29 mai 2018 à 13:04
Bonjour,

Dans une page HTML, j'ai une form qui me permet de saisir le nom d'un utilisateur.
Cette form contient aussi un champ texte Message.
Je contrôle que l'utilisateur saisi est bien présent dans la base de données.
Si il est present, je veux afficher "Utilisateur OK" dans le champ message.
Si il est absent, je veux afficher "Utilisateur NOK" dans le champ message.

Pour info, l'acces à la base de données se fait en PHP.

Merci d'avance pour vos réponses.


A voir également:

2 réponses

diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 844
Modifié le 29 mai 2018 à 09:04
Bonjour.

Et où est votre problème?

La partie de code défectueuse ainsi que l'erreur permettrait éventuellement d'aider.

0
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019
29 mai 2018 à 09:13
Bonjour,

le code fonctionne parfaitement sauf que je ne sais pas comment afficher un texte dans le champ 'message' qui fait partie de la Form.
Cette Contient 2 champs :
- le nom de l'utilisateur
- le champ 'message' que je veux remplir selon le résultat (OK ou NOK) de ma requête à la base de données.

Merci pour ton message !
0
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 844
Modifié le 29 mai 2018 à 09:19
Bonjour,

echo $_POST['utilisateur'];
if ($sql==true){
$message='OK';
}
else
$message='NOK';


Etant donné qu'on ne sait RIEN sur votre code, c'est la seule chose que je peux vous dire. Si vous voulez vraiment de l'aide, poster votre code, je vous promets que ça peut aider.
0
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019
29 mai 2018 à 09:35
Bonjour,

Voici le fichier HTML suivi du fichier PHP

<!DOCTYPE html>
<head>
<!-- En-tête de la page -->
<meta charset="utf-8">
<title>Test Forms</title>
</head>

<body
<p
<em>You are welcome</em>
</p>

<!-- formulaire -->
<form method="post" action="checkpseudo.php">

<!-- pseudo + password -->
<p>
<label for="pseudo">Votre pseudo :</label>
<input type="text" name="pseudo" id="pseudo" required><br/>
<label for="message">Resultat :</label>
<input type="text" name="message" id="message">
</p>

</form>
<!-- fin du formumaire -->
</body>
</html>

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Check Pseudo against Database</title>
</head>
<body>
<?php
try
{
// On se connecte à MySQL
$bdd = new PDO('mysql:host=localhost;dbname=test;charset=utf8', 'root', 'root');
}
catch(Exception $e)
{
// En cas d'erreur, on affiche un message et on arrête tout
die('Erreur : '.$e->getMessage());
}

$pseudo = !empty($_POST['pseudo']) ? trim($_POST['pseudo']) : NULL;
$pseudo_up = strtoupper($pseudo);

$req = $bdd->prepare('SELECT pseudo, password FROM visiteurs WHERE pseudo = :pseudo');

$req->execute(array('pseudo' => $pseudo_up));

$donnees = $req->fetch();

if($donnees)
{
//C'est ici que je veux afficher OK dans le champ message de la form
}
else
{
//C'est ici que je veux afficher NOT OK dans le champ message de la form
}

$req->closeCursor(); // Termine le traitement de la requête
?>
</body>
</html>

merci pour ta réponse
0
diablo13800 Messages postés 2890 Date d'inscription jeudi 2 juillet 2015 Statut Membre Dernière intervention 16 février 2024 1 844
Modifié le 29 mai 2018 à 09:54
Si je comprend bien votre logique, vous voulez placer en placeholder un résultat d'une requête en BDD?

Vous pouvez faire ça avec du session:
Votre ligne :
<input type="text" name="message" id="message"> 

Deviendrait :
<input type="text" name="message" id="message" placeholder=<?php $_SESSION['Message'];?>  


Votre fichier PHP s'occuperait alors de remplir la variable $_SESSION['Message'] avec ce que vous voulez
(https://www.php.net/manual/fr/reserved.variables.session.php

Ou alors vous pouvez faire en sorte que votre formulaire renvoi sur la même page, et le traitement serait fait uniquement sur votre formulaire est rempli:
 if (isset($_POST['pseudo'])){
     //Faire votre recherche en BDD et définir une variable $message par exemple 
}
//Votre formulaire 
<code html><input type="text" name="message" id="message" placeholder=<?php echo $message; ?> 

0
rmerme Messages postés 36 Date d'inscription samedi 3 mars 2018 Statut Membre Dernière intervention 18 mars 2019
29 mai 2018 à 13:04
Bonjour,

merci beaucoup pour votre réponse. Je n'ai pas encore testé mais je suis preneur des 2 solutions proposées.
Je vais d'ailleurs clôturer le sujet.
Bonne journée.
0