Version complète: sur le forum Webmaster Hub : Formulaire anti doublon
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
ouarzazat
Salut,

comment vous dire... j'pête un boulard j'en peux plus je bloque AIDEZ MOIII !!!
wink.gif ça fait du bien !

Introduction:

je crée un formulaire (php) afin d'enregistrer des données dans ma base (mysql).
Jusque là tout va bien.

J'ai fini mon formulaire il est beau, ergonomique et en plus il enregistre tout bien dans ma base, bref j'le kiffe.

Et voilà ma prise de gueule du jour:
je souhaite vérifier si l'enregistrement que je suis en train de saisir n'a pas déjà été enregistré dans la base (je répertorie des sites web).

Donc sous le champ où je saisie l'url, par exemple, du site que je veux répertorier dans la base, je veux insérer un lien text "vérifier" dont la cible serait verification.php?url=la_valeur_du_champ_URL. Cette page verification.php s'ouvrant sous forme de popup me dirait si j'ai déjà repertorié ce site.
Je pense qu'il faut combiner php et jscript.

Voyez vous mon souci?

Le coup du lien dynamique c'est à peu près la seule idée qui me soit venue par rapport à mes compétences en programmation, mais voilà je suis encore trop léger blush.gif

En fait le vrai vrai bon kiffe serait qu'une fois que j'ai fini de saisir l'url (avec un onblur par exemple) le résultat de la vérification s'affiche cash sous le champ, ça ça serait la classe mon vieux!!

HEEEEEEEEEEEELLLLLLLLPPPPPPPPP !!!!!!!
Merci à vous
Théo B.
Je prends la deuxieme solution.

CODE
<html>
<head>
<script type="text/javascript">
function Calque(texte)
    {
    document.getElementById('urlchamps').innerHTML = texte;
    }

function Url(url)
    {
    if(url!= '')
              {
              if(texte = Trouve('verification.php?url='+url))
                        {
         if(texte==0)
              Calque('<strong>'+url+' :</strong> Trop tard');
         else if(texte==1)
              Calque('<strong>'+url+' :</strong> Assez tot');
         else
              Calque('Requete en cours de traitement...');
                        }
              }

    }

function Trouve(fichier)
    {
    if(window.XMLHttpRequest)
         xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject)
         xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else
         return(false);
    xhr_object.open("GET", fichier, false);
    xhr_object.send(null);
    if(xhr_object.readyState == 4) return(xhr_object.responseText);
    else return(false);
    }
</script>
</head>
<body><form>
<input type="text" name="url" onKeyUp="Url(this.value)" />
<div id="urlchamps"></div>
</form>
</body>
</html>


Sachant que ton fichier vérification.php, si $_GET['url'] est pris, retourne 0, sinon 1.
AJAX, la fete des fleurs rolleyes.gif

//EDIT : quelques incohérences, et une petite simplification sur le code.
ouarzazat
Déjà, merci beaucoup pour ta réponse, même si ça a l'air d'être un jeu d'enfant pour toi je vois que tu as pris ça au sérieux et ça fait plaisir!

J'ai une question bonus par rapport à:
"Sachant que ton fichier vérification.php, si $_GET['url'] est pris, retourne 0, sinon 1."
Que veux tu dire par "si $_GET['url'] est pris"?
En fait pour moi $_GET['url'] quoiqu'il arrive sera pris, après il faut savoir si l'url existe ou non.

Pourrais tu m'expliquer s'il te plaît, voire m'écrire grosso modo ce que toi tu coderais dans le verif.php ?

Meric pour ton aide,
a+
Théo B.
Ok Ok.

Alors, grosso modo :
<?
SI l'url existe :
echo 0;
SINON :
echo 1;
?>

Plutot simple non ;p ?
Après, le navigateur va lire ton fichier à chaque entrée dans le formulaire et voir si verification.php?url=l'urlentrée retourne 0 ou 1.
Si elle retourne 0, un message est affiché disant que l'url existe, sinon le message dit qu'elle n'existe pas.
ouarzazat
Désolé mais ça ne marche pas ...

Voilà le code que je met dans verification.php:

CODE
$url = $_GET['url'];

$verif=mysql_query("SELECT url FROM tab_description WHERE url=$url");
if ($verif != "")
{echo 0;}
else
{echo 1;}



Pour la partie formulaire j'ai pris exactement le code que tu as posté.

La fête des fleurs c'est pas pour moi on dirait smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.