8791 sujets

Développement web côté serveur, CMS

Tout d'abord, bonjour à tous, puisque je suis nouveau sur ce forum même si je viens faire un tour sur le site régulièrement. Smiley lol

J'ai un problème à régler concernant l'écriture d'un script php et html.

Il s'agit d'une tribune libre, où on peut entrer un pseudo et rentrer son message donc 2 champs. J'ai une seule et même page qui gère, à l'aide de ce ptit script php, les doublons, afin d'éviter que l'utilisateur poste 2x le même message.

Mais voilà, mon script php est au début de ma page alors que mon formulaire et à la suite du script php.

Je souhaite gérer un message d'avertissement en cas de doublons, qui s'afficherait 'graphiquement' à côté du formulaire, (en dessous ou a côté d'un champ quoi).

J'ai pensé à faire une div avec un display none, puis en cas de doublons, je la passe en display block ou inline.

Faut'il une fonction? javascript ou php? et de quelle manière pourrais-je imbriquer tout çà?

Celà fait beaucoup, merci d'avance pour la gène occasionnée! Smiley biggol
Modérateur
Hello, Smiley smile

Si tu traites ton formulaire sur la page qui le contient, tu peux adopter un modèle de ce type :
[#blue]<?php

header('Content-type: text/html; charset=utf-8');

$submit = isset($_POST['connexion']) ? $_POST['connexion'] : '';
$pseudo = $pwd = $msgPseudo = $msgPwd = $erreur = false;

if($submit == 'Connexion') {
     if(($pseudo = isset($_POST['pseudo']) ? trim($_POST['pseudo']) : '') == '') {
          $erreur = true;
          $msgPseudo = '<strong>Vous devez indiquer un pseudo.</strong>';
     }
     if(($pwd = isset($_POST['pwd']) ? trim($_POST['pwd']) : '') == '') {
          $erreur = true;
          $msgPwd = '<strong>Vous devez indiquer un mot de passe.</strong>';
     }
     // etc...
}

function error($erreur, $msg, $var) {
     if($erreur == true) {
          if($msg != false)
               echo 'class="error" ';
          echo $var != '' ?
               'value="' . htmlspecialchars($var) . "\" />\n":
               "/>$msg\n";
     } else
          echo "/>\n";
}

?>[/#]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
                      "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
	<head>
		<meta http-equiv="content-type" content="text/html; charset=utf-8" />
		<title>Exemple</title>
		<style type="text/css"><!--

.error { border: 1px solid red; }
strong { color: red; margin-left: 10px; }

		--></style>
	</head>
	<body>

<form action="[#blue]<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>[/#]" method="post">
     <fieldset><legend>Formulaire d'identification</legend>
          <div>
               <label for="pseudo">Pseudo : </label>
               <input type="text" size="40" id="pseudo" name="pseudo" [#blue]<?php error($erreur, $msgPseudo, $pseudo); ?>[/#]
          </div>
          <div>
               <label for="pwd">Mot de passe : </label>
               <input type="password" size="40" id="pwd" name="pwd" [#blue]<?php error($erreur, $msgPwd, $pwd); ?>[/#]
          </div>
          <div>
               <input type="submit" name="connexion" value="Connexion" />
          </div>
     </fieldset>
</form>

	</body>
</html>
Ce n'est qu'un exemple mais pour gérer les doublons, tu peux suivre le même principe, ce qui t'évite d'user de CSS (langage optionnel) pour planquer les infos.
Modifié par koala64 (22 Nov 2007 - 15:27)