<¿? test de formulaire ?¿>

Mammouth du PHP | 601 Messages

21 juin 2006, 01:40

Bonjour,
j'ai un formulaire et je voudrai tester l'email et le pseudo si ils sont remplis en php, mais je n'y arrive pas, en faite ou dois je mettre le code.
dans action je n'appelle pas la même page.
Est ce une erreur, j'ai vu à droite à gauche, faire sa dans des fonctions ?
Avec des vérifications qui fonctionne mais peux t'on vérifier les données avant l'envoie sans le faire dans une fonction ?
http://creatif-web.be/projet/projet.php
ex:
if ($projet == '' and $pseudo == '') {
print "Veuillez remplir le projet et le pseudo, merci";
} else return true;
Merci d'avance :wink:
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Invité
Invité n'ayant pas de compte PHPfrance

21 juin 2006, 08:35

sinon un
$pseudo != empty
le mieux etant de le faire en javascript.

Mammouth du PHP | 965 Messages

21 juin 2006, 08:41

C'etait moi au dessus, donc en fait tu dois passer tes données par un formulaire pour pouvoir les tester ensuite genre :
if($_POST['pseudo'] != empty)
  {
      echo "votre pseudo est".$_POST['pseudo'];
  }
Tu ne peux pas le tester sur la page même, les donnée sont envoyé par formulaire en POST OU GET je t'ai mis l'exemple par POST car plus securisé mais le mieux reste de faire les verrification de champ en javascript.

Une fois verrifié en javascript tu peux retester en php pour bien verrifier les informations pour ca pas de soucis ?

Si tu as des questions pose toujours.

Mammouth du PHP | 601 Messages

21 juin 2006, 14:07

le javascript peux se désactivé et ensuite, on peux très bien imaginer de 'l'insertion massive de donnée, très mauvaise option.
Se que j'essaie d'avoir est une vérification avant l'envoie, afin d'obliger l'utilisateur à remplir tel champs ou tel e-mail (avec un regex).
Mais ou dois je l'insérer avants l'envoie, donc, sa va ressembler à quelquechose comme sa :
(pris dans la faq)
if(isset($_POST['envoi']))
{
    /* Récupération des données du formulaire */
    $prenom    = isset($_POST['prenom'])    ? trim($_POST['prenom'])    : "";
    $nom       = isset($_POST['nom'])       ? trim($_POST['nom'])       : "";
    $telephone = isset($_POST['telephone']) ? trim($_POST['telephone']) : "";
    $email     = isset($_POST['email'])     ? trim($_POST['email'])     : "";
    $url       = isset($_POST['url'])       ? trim($_POST['url'])       : "";
    $lang      = isset($_POST['lang'])      ? $_POST['lang']            : "";
    $ville     = isset($_POST['ville'])     ? trim($_POST['ville'])     : "";
    $remark    = isset($_POST['remark'])    ? trim($_POST['remark'])    : "";
    $musik     = isset($_POST['musik'])     ? $_POST['musik']           : null;
    $age       = isset($_POST['age'])       ? $_POST['age']             : "";

    /**
     * Définition des variables servant au traitement de l'adresse électronique et du numéro de
     * téléphone: on utilise ici des expressions régulières.
     */
    $valid = "#^[^-_\.][a-z0-9-_\.]+[^-_\.]@[^-_\.][a-z0-9-_\.]+[^-_\.]\.[a-z]{2,4}$#";
    $phone = "#^\d{6,10}$#"; 
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Mammouth du PHP | 1353 Messages

21 juin 2006, 14:17

vérification avant l'envoie
Si par verification avant l envoi tu parles avant que l'utilisateur ne valide le formulaire (submit) en php c'est impossible, seul le javascript te le permet.

Par contre tu peux tout a fait aller vers une autre page, vérifier les variables envoyées par ton formulaire et si elles ne te conviennent pas (vides ou mauvais format ou autre) retourner à la page de ton formulaire (avec un header("Location : mapage.php"); ) et afficher un message (par exemple tu fais le header vers mapage.php?erreur=pseudo ce qui te permettra d afficher "Le pseudo n etait pas correct, recommencez svp."
Tell me and I forget. Teach me and I remember. Involve me and I learn.

Eléphanteau du PHP | 22 Messages

28 juin 2006, 13:30

Si par verification avant l envoi tu parles avant que l'utilisateur ne valide le formulaire (submit) en php c'est impossible, seul le javascript te le permet.

Par contre tu peux tout a fait aller vers une autre page, vérifier les variables envoyées par ton formulaire et si elles ne te conviennent pas (vides ou mauvais format ou autre) retourner à la page de ton formulaire (avec un header("Location : mapage.php"); ) et afficher un message (par exemple tu fais le header vers mapage.php?erreur=pseudo ce qui te permettra d afficher "Le pseudo n etait pas correct, recommencez svp."
Sans aucunes prétentions tu as tout à fait raison seulement un problème se pose !

Quand tu fait un "header" cela n'équivaut pas à un "back page" donc les données déjà ecrites dans le formulaire ne sont pus présentes.

Donc une solution ( qui n'est pas forcement la meilleure ) c'est de faire un GET : un exemple t'en diras plus.

Ton verif.php (Page de verif)
$prenom = $_POST['prenom'];
$nom = $_POST['nom'];
$rue = $_POST['rue'];
$numero = $_POST['numero'];
$ville = $_POST['ville'];
$cp = $_POST['code_postal'];
$pays = $_POST['pays'];
$email = $_POST['mail'];
$login = $_POST['login'];
$mdp = $_POST['mdp'];
$verif = $_POST['verif_mdp'];



if(empty($prenom) or empty($nom) or empty($rue) 
	or empty($numero) or empty($ville) or empty($cp) or empty($pays) or empty($email) or empty($login) or empty($mdp))
{
	header('Location: enregistrement.php?err=vide&login='.$login.'&mdp='.base64_encode($mdp).'&verif_mdp='.$verif.'&email='.$email.'&prenom='.$prenom.'&nom='.$nom.'&rue='.$rue.'&numero='.$numero.'
	&ville='.$ville.'&code_postal='.$cp.'&pays='.$pays.'');
}

Tu récupéres sur ton formulaire avec tes variable "GET"

exemple:
<input type="text" value="<?php echo $_GET['login'];?>" name="login" maxlength="70">
et pour le pass un "base64_decode()" suffit

Voila :)

Mammouth du PHP | 601 Messages

28 juin 2006, 17:06

je ne vais pas parler à sa place mais la transmission est implicitement get bah ou post.
en faite je valide puis je traite l'existence ou autre de la variable passer en $_GET[''], effectivement c'est exactement la même chose qu'une fonction de formulaire du type qu'on trouve dans la faq.
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"

Invité
Invité n'ayant pas de compte PHPfrance

28 juin 2006, 17:21

Oui c'est vrai que je l'ai citer,
Mais la réponse était surtout destiner à toi artotal :)

Pour un traitement sur une même page, je ne vois que comme solution
Le « JavaScript » malheureusement il peut-être désactivé !

Sinon il vrai que l’on peux arriver à de belles choses comme par exemple avec « Ajax »

Bon codage ;)

Mammouth du PHP | 601 Messages

28 juin 2006, 17:28

merci ;-))))))
http://xavier-artot.com
¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·²°'´¨'°-.,¸¸,.-·°'´¨
système d'exploitation "Ubuntu 7.10"