Bonjour,
Sur un site en construction, je souhaite installer un formulaire doté d’un input texte pour vérifier la disponibilité d’un nom dans une BDD (genre vérifier un nom de domaine, par exemple), bref ! Rien d’anormale.
Je rencontre un phénomène étrange… :
Lorsque j’ouvre le formulaire sous (IE) pour la première fois et que je rentre un nom pour tester son existence et bien je n'ai aucun echo...
Par contre, n’ayant pas fermé ma page, je recommence et là ! Ça fonctionne….
Je ferme IE et je recommence, ça ne fonctionne pas… je réessaye dans la foulée et là…ça fonctionne…
S’agit-il d’un problème connu ?
Dois-je instancier, ouvrir une session…que sais-je ?
En général lorsque l’on click sur un bouton on aime avoir le résultat du premier coup !
Voici le code complet :
Code en haut de ma page php
Code du côté de la page html
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 <?php $form_valider="bouton_valider"; // traitement du formulaire if (isset($_POST["bouton_valider"])) { // le formulaire a ete soumis $etat = "erreur"; // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur // --- mise en forme du champ saisis dans le formulaire lors de sa soumission --- if (isset($_POST["nom_url"])) { $_POST["nom_url"]=trim(addslashes($_POST["nom_url"])); } // --- test de la validité des champs saisis --- elseif (empty($_POST["nom_url"])) { // le nom n'est pas saisi $erreur="Pour tester, il faut noter un nom..."; } elseif(preg_match('@[^a-zA-Z0-9_\-]@i',$_POST['nom_url'])) { // le nom n'est pas valide $erreur="Votre nom a des caractères non autorisés, aucun espace..."; } else{ $etat="ok"; } } else { // --- le formulaire n'a pas ete soumis --- $etat="attente"; } // === fin de traitement des donnees du formulaire ======================================================= ?>
Le code du formulaire
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 <div id="img_surligne" style="padding-left:30px"> <?php //resultat de la recherche url // message d erreur formulaire if ($etat!="ok") {// le formulaire n'a pas ete soumis, ou soumis avec une erreur if ($etat=="erreur"){ //le formulaire a ete soumis avec une erreur echo "<p style='color:red'><strong>".$erreur."</strong></p>\n"; } } else { // le formulaire a ete soumis sans erreur, on traite la base de donnee $nom_url = $_POST['nom_url']; $requete="SELECT COUNT(url) FROM table_utilisateur WHERE url='".$nom_url."'"; $result=$idcom->query($requete); if(!$result){ $mes_erreur=$idcom->errorInfo(); echo "Lecture impossible, code", $idcom->errorCode(),$mes_erreur[2];} else{ $nbart=$result->rowCount(); $tabresult=$result->fetchAll(PDO::FETCH_ASSOC); $titres=array_keys($tabresult[0]); foreach($titres as $nomcol){} for($i=0;$i<$nbart;$i++){ foreach($tabresult[$i] as $valeur) { if($valeur >= 0 && $valeur < 1) { echo '<p>Ce nom est disponible</p>'; } else { echo '<p style="color:red"><strong>Ce nom n´est pas disponible.</strong></p>'; } }}} } ?> </div>
D’avance merci….
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 <!--Début div cache--> <div id="contenu1"> <article style="text-align:center"> <fieldset><br><form name="url" method="post" action="<?php echo htmlentities($_SERVER['PHP_SELF']); ?>"> <input title="Noter le nom que vous désirez voir apparaître" type="text" name="nom_url" value="<?php if(isset($_POST["nom_url"])){ $nom_url = $_POST['nom_url']; $nom_url = htmlspecialchars($nom_url); $nom_url = stripslashes($nom_url);} ?>" size="30" maxlength="40"/> <input alt="" style="cursor:pointer; background-color:#FF9900" name="bouton_valider" type="submit" value="vérifier la disponibilité"/> </form></fieldset> </article> </div> <!--Fin div cache --> </div>
Bien cordialement.
Bruno
Partager