probleme base de données

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 : probleme base de données

par delcedo galaxialord » 18 juin 2006, 00:52

:D Et s'il prend un submit !!! Quelle solution on lui proposera pour savoir si le formulaire est envoyé O:) ?

T'es fou de travailler si tard ! Tu fais des heures supp ? :)

Dans 15 ans on aura un navigateur intégré à notre cerveau qui permettra, par la pensée, de surfer sur le net (faudra que tous les "navigateurs cerveau" soit compatible XHTML !!! arf la misère...).

Ouh la la, vu ce que j'écris ca va être très gros dodo !

par Truc » 18 juin 2006, 00:41

De toute facon au choix du créateur du topic !
C'est sûr et il va revenir en disant "j'ai pris un bouton submit" classique :lol:

Et puis IE n'existera plus dans 15 ans :lol:

pas encore la fin de journée pour tout le monde :ordi:

par delcedo galaxialord » 18 juin 2006, 00:23

dakidoc :) le débat s'arrête, il doit certainement s'agir d'un oubli de Microsoft qui sera corrigé lors de la sortie finale ;). De toute facon au choix du créateur du topic ! Sur ce, bonne nuit je vais faire dodo :sleeping:

par Truc » 18 juin 2006, 00:13

lol On peut débattre longtemps comme ça.

Sous IE6 la variable $_POST['valider_x'] vaut "0" donc pas de problème. Maintenant si IE7 renvoie bien "null" je m'incline :wink:

par delcedo galaxialord » 17 juin 2006, 23:41

isset d'une variable NULL rend faux et pas vrai.
http://www.killersoft.com/misc/php_variable_tests.php

donc la macro n'est pas bonne (dsl d'insister :p)

par Truc » 17 juin 2006, 23:35

enfait isset() permet de tester l'existence de la variable donc à partir du moment où le formulaire est validé la variable existe.

J'ai juste oublié un isset(), corection:
$valide = (isset($_POST['valider_x'])) ? 1 : 0;

par delcedo galaxialord » 17 juin 2006, 23:22

Je peux plus faire les tests sur IE6 mais je pense que ca n'a pas du changer, la valeur par défaut doit être NULL ? Sinon mozilla et opera sont ok ;), mais bon je trouve que c'est jouer avec le feu, normalement il s'agit des coordonées de la position du clique, donc l'appuis sur la touche entrée ne devrait pas faire office d'un clique sur l'image ! Et puis je pense qu'il vaut mieux faire du code qui fonctionnera tout le temps.

Sinon bien vu pour le isset(), je savais pas que ca supprimait la notification :(

par Truc » 17 juin 2006, 23:13

D'ailleurs comment ferais tu (Truc) pour faire en une seule page la saisie des informations et le traitement sans avoir de notification PHP ?
Comme ceci:
$continue = (isset($_GET['continue'])) ? $_GET['continue'] : '';
tester l'existence de la variable avant utilisation

En ce qui concerne IE7 j'installe pas du MS béta :lol:
Mais si c'est exact le test tombe effectivement à l'eau :?

par delcedo galaxialord » 17 juin 2006, 22:33

Tu recommande de cacher les messages d'erreurs ?
avec "E_ALL & ~E_NOTICE & ~E_STRICT"... en tous cas il vaut mieux régler les problèmes au lieu de les cacher.
Je ne recommande pas de cacher les erreurs, mais les erreurs mineures qui ne sont que des notifications, je ne les considère pas comme étant importante.
D'ailleurs la majorité des serveurs, avec une installation par défaut, n'affiche pas les messages de notifications, donc je pense juste comme eux :)

utiliser le type "image" qui valide le formulaire.
PHP:
<input type="image" name="valider" value="valider" src="nom_de_l_image">
Sinon oui, tu as raison et c'est même plus ergonomique, l'utilisation des input image, j'y pense pas souvent :roll:
Seul problème, c'est que ta méthode PHP pour vérifier si le formulaire a été posté ne fonctionne pas :
si l'utilisateur appuie sur entrée : sous opera $_POST['valider_x'] = 0, IE7 $_POST['valider_x'] = NULL, et donc ta macro ne fonctionne pas.
De plus ta macro générera une notification elle aussi :) car le $_POST['valider_x'] n'est pas défini lorsque l'utilisateur rempli le formulaire.

D'ailleurs comment ferais tu (Truc) pour faire en une seule page la saisie des informations et le traitement sans avoir de notification PHP ?


Je conseille donc de mettre comme prévu au départ, action="Adresse.php?continue=CONTINUE", et de laisser le test (même s'il génère une notification (et modifie du coup ton php.ini pour supprimer ces notifications)), ou alors d'envoyer les données sur une autre page.

par Truc » 17 juin 2006, 21:13

Edit : ou si tu veux garder l'image : <img [...] onclick="document.getElementById('form1').submit(); />
ou utiliser le type "image" qui valide le formulaire.
<input type="image" name="valider" value="valider" src="nom_de_l_image">
La récupération se fera par
$valide = ($_POST['valider_x']) ? 1 : 0;
pour la syntaxe regarde ICI
La récupération d'un type image passe par les coordonnées du clic sur l'image d'où le "_x".

tu remplace donc le type "submit" par le type "image" et ce test:
if ($continuer=="CONTINU")
par:
if($valide)
dans l'action du form rien d'autre que le fichier de traitement:
action="Adresse.php"
par défaut ce serveur affiche les notifications (pas très importantes), pour résoudre ce problème
(...)
Tu recommande de cacher les messages d'erreurs ?
avec "E_ALL & ~E_NOTICE & ~E_STRICT"... en tous cas il vaut mieux régler les problèmes au lieu de les cacher.
il me mais Notice: Undefined index: continue in c:.... line 19
signifie que l'indice de $_GET['continue'] n'est pas définis tu n'as pas du le passer dans l'action ou avec "continueR" avec un "R"... plus nécéssaire avec le type image.

par delcedo galaxialord » 17 juin 2006, 20:55

Ok, mais donne le code source total de ta page, on pourra te le corriger et il sera pret pour demain ;)

Bonne nuit !

par Invité » 17 juin 2006, 20:52

Rien ne marche mais je sais que ce n'est pas de votre faute c'est moi qui doit mis prendre comme un manche bon j'arrete pour ce soir

Merci encore je continurai plus tard et je vous tiendrais au courant merci encore et bonne soirée à tous

par delcedo galaxialord » 17 juin 2006, 20:50

tu dois utiliser easyphp, par défaut ce serveur affiche les notifications (pas très importantes), pour résoudre ce problème :

1. Ouvre le fichier php.ini ou php.conf du serveur (dans le dossier d'installation de EasyPHP)
2. Recherche "error_reporting = " et remplace la valeur définie par : E_ALL & ~E_NOTICE & ~E_STRICT
3. Redémarre le serveur Apache et voilà ;)

Cela te permettra d'afficher uniquement les erreurs fatales et les warnings (les seules erreurs vraiment importantes)

par Invité » 17 juin 2006, 20:46

il me mais Notice: Undefined index: continue in c:.... line 19

par delcedo galaxialord » 17 juin 2006, 20:36

une autre modification aussi pour que ton script fonctionne : modifie "action="Adresse.php" par action="Adresse.php?continue=CONTINUE" et dans ton script PHP : if($continue==CONTINUE) par if($_GET['continue']=="CONTINUE")

tout devrait alors marcher ;)