Prévisualiser un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Prévisualiser un formulaire

par cmoi » 17 janv. 2007, 22:38

Petite question: pourquoi le nom de la table provient d'une variable ? tu as plusieurs tables identiques ??
Oh c'est tout bête. N'y connaissant rien, au début j'ai réutilisé par copier/coller ce que j'ai trouvé. Et comme ça marche, je n'ai pas cherché plus loin.
Mais, maintenant que j'en sais beaucoup plus (!! :wink: ), effectivement, l'utilisation d'une variable ne s'impose pas.

par Truc » 17 janv. 2007, 20:32

P.S : On doit pouvoir le faire sans alias (AS nb) mais je ne suis plus sûr de la syntaxe, donc j'ai préféré mettre cela ^^
La syntaxe serait :
$nb['COUNT(*)']
attention il manque un mysql_fetch_* dans ton exemple :wink:

@cmoi
Pourquoi placer la table dans une variable ?!! :roll: :roll:
Petite question: pourquoi le nom de la table provient d'une variable ? tu as plusieurs tables identiques ??

par Ultim4T0m » 17 janv. 2007, 18:34

C'est en effet une des possibilités.

Tu peux également utiliser COUNT :
<?php 
    $table = "organismes";  
    $nb = mysql_query("SELECT COUNT(*) AS nb FROM ".$table." WHERE valid=1");
    echo '<b><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">'.$nb['nb'].'</font></b>'; 
?>
P.S : On doit pouvoir le faire sans alias (AS nb) mais je ne suis plus sûr de la syntaxe, donc j'ai préféré mettre cela ^^

par cmoi » 17 janv. 2007, 18:01

question subsidiaire : j'ai besoin de compter le nombre de lignes qui contiennent valid=1 ; comment fait-on ça stp ?
Encore une fois essaie de trouver des solution par toi même au lieu de poster pour chaque ligne de code que tu fera.
Tu veras c'est d'autant plus jouissif 8-)[/quote]
     <?php 
    $table = "organismes";  
    $nb = mysql_num_rows(mysql_query("SELECT REF FROM $table WHERE valid=1"));
	echo '<b><font face="Arial, Helvetica, sans-serif" size="2" color="#666666">'.$nb.'</font></b>'; 
?>
Voilà la bonne réponse !!

par Truc » 16 janv. 2007, 22:33

Mais je ne comprends pas pourquoi dans ce cas on ne met pas "."
Tu le fait exprès ?!!!
question subsidiaire : j'ai besoin de compter le nombre de lignes qui contiennent valid=1 ; comment fait-on ça stp ?
Encore une fois essaie de trouver des solution par toi même au lieu de poster pour chaque ligne de code que tu fera.
Tu veras c'est d'autant plus jouissif 8-)

par iclo » 16 janv. 2007, 20:44

Petite question: pourquoi le nom de la table provient d'une variable ? tu as plusieurs tables identiques ??

par Ultim4T0m » 16 janv. 2007, 20:44

Pour compter le nombre de lignes, regarde la fonction COUNT() en SQL.

Pour le ".", revois les bases de la concaténation ;)

http://phpdebutant.org/article55.php

par cmoi » 16 janv. 2007, 20:40

Super ça marche. Merci.
Mais je ne comprends pas pourquoi dans ce cas on ne met pas "."

question subsidiaire : j'ai besoin de compter le nombre de lignes qui contiennent valid=1 ; comment fait-on ça stp ?

par Ultim4T0m » 16 janv. 2007, 20:29

Hum, et si le problème venait de ça : "." ??

Au niveau de la syntaxe, c'est cette requête qu'il faut faire :
$sql = "SELECT * FROM " . $table." WHERE valid=1"."ORDER BY societe" ;
Mais cela équivaut à

Code : Tout sélectionner

SELECT * FROM " . $table." WHERE valid=1ORDER BY societe
Ca ne veut pas dire grand chose...

Donc :
$sql = "SELECT * FROM " . $table." WHERE valid=1 ORDER BY societe" ;

par cmoi » 16 janv. 2007, 19:58

ok je vais administrer cela depuis phpmyadmin.

cela signifie que le where valid=1, je dois le mettre quelque part. J'ai essayé
 $sql = "SELECT * FROM " . $table." ORDER BY societe"."WHERE valid=1" ; 
et
 $sql = "SELECT * FROM " . $table." WHERE valid=1"."ORDER BY societe" ; 
Aucune des 2 solutions ne va. Quel est le problème ?

par iclo » 15 janv. 2007, 20:19

donc et pour résumer, ça veut dire que les infos vont du formulaire à une page admin.php et de cette page vers la base.
Et donc le champ VALID de la base n'a plus lieu d'être.
Prends une feuille de papier et fais un schéma de ton application, pour avoir une vue d'ensemble de ce que tu souhaites obtenir, sinon tu vas vite te perdre.

Dans le cas présent, tu ne vas pas rediriger l'utilisateur vers une page d'administration, à laquelle seul toi devrait avoir accès

1) un utilisateur encode des données, elles sont insérées dans la base, avec le champ "valid" à 0. (un insert dans la base de donnée)

2) l'administrateur peut consulter sur une page "protégée" les enregistrements qui ne sont pas encore validés (dont le champ valide est à 0) et peut choisir de les valider un à un (faire passer le champ valide de 0 à 1 (Un update dans la base de donnée)

3) une page du site peut afficher les enregistrements validés (champ "Valide" à 1) (un select sur la base de donnée avec une clause where pour ne prendre que les enregistrements validés.

par Ultim4T0m » 15 janv. 2007, 20:16

Non.

Ca signifie que les infos vont de ton formulaire.php à ta base de donnée.

Et toi, un jour où t'as un peu de temps devant toi, tu te dis "Tiens, et si j'allais valider les formulaires qui ne le sont pas encore ?!" tu vas vers ta partie Admin, comportant une liste des validations à faire (WHERE valid=0)... Les données sont dans ta table à ce moment là.

Avec ton formulaire administration, tu peux modifier les donner, et valider (ou supprimer, etc. mais ça c'est toi qui vois ;)), ce qui aura pour effet de modifier les données déjà présentes dans la table, les rendant ainsi visibles par tout le monde (puisqu'au préalable, lors de l'affichage, ta requête doit comporter un WHERE valid=1)

Est-ce plus clair ?

par cmoi » 15 janv. 2007, 19:28

donc et pour résumer, ça veut dire que les infos vont du formulaire à une page admin.php et de cette page vers la base.
Et donc le champ VALID de la base n'a plus lieu d'être.

par Ultim4T0m » 15 janv. 2007, 18:53

Hum, tu peux reformuler la première question ?
Par ailleurs, dans ma page php, j'ai des conditions pour vérifier que telle ou telle ligne du formulaire ne reste pas vide. Là encore je constate que ma table se remplit. Est-ce qu'il faut mettre une condition aussi pour la connexion (apparemment oui) ?
Pour ce qui est de ta partie Admin, iclo t'as parlé de protéger ton dossier admin avec un .htaccess.

Le fichier php à faire est tout bête, y'a pas grand chose de plus que ce que tu sais apparemment faire, à savoir récupérer des valeurs dans une table, les afficher dans des input pour pouvoir les modifier, pouvoir valider les changements, mettant ainsi à jour la table pour l'enregistrement en question.

par cmoi » 15 janv. 2007, 17:15

donc dans ma base, j'ai créé un champ VALID avec pour valeur 0. J'ai testé le formulaire en le remplissant : tout est en ligne !

Par ailleurs, dans ma page php, j'ai des conditions pour vérifier que telle ou telle ligne du formulaire ne reste pas vide. Là encore je constate que ma table se remplit. Est-ce qu'il faut mettre une condition aussi pour la connexion (apparemment oui) ?

Et enfin, effectivement, il serait mieux que je créé une page d'administration. y a-t-il un tuto à suivre ?

Et merci !!! :D