Vous n'êtes pas identifié(e).
PDO (?)
Pourquoi l'enregistrement en bd ci-dessous n'est pas dans mon php ?:
// dans votre code maintenant (en dehors de connect_db.php)
$result=$PDOInstance->query("INSERT INTO matable (nomprenom,email,telephone,typecontact) VALUES ('$nomtobase','$email','$telephone','$typecontact')";
Je vois bien que je vais charger la bd, mais $result=$PDOInstance ->query..j'avais pas encore vu
Je stocke la variable $result pourquoi faire ? lancer une requête ?
ENCORE.. vu l'heure après il me reste les incantations:)
que fait la fonction du script : complete: function(xhr,result)
.............
juste une faute de débutant dans le js, celles là je sais les trouver ..
if (RETOUR_SERVEUR.message==='ok'){ alert('votre formulaire a bien été validé en base de données.'); } else { alert('Une erreur est survenue lors du traitement de la soumission de votre formulaire avec l'erreur suivante: [' + RETOUR_SERVEUR.message +']');}
Ce ' est à enlever
Pierrot
Hors ligne
Bonjour,
if (RETOUR_SERVEUR.message==='ok'){ alert('votre formulaire a bien été validé en base de données.'); } else { alert('Une erreur est survenue lors du traitement de la soumission de votre formulaire avec l'erreur suivante: [' + RETOUR_SERVEUR.message +']');}
Ce ' est à enlever
Non il n'est pas à enlever. Petite faute d'innatention cependant, voici la ligne corrigée:
que fait la fonction du script complete?
=> Lire les commentaires et le code présents dans la fonction....
Pour PDO =>Lire la doc.
Dans $result vous récupérez les résultat de la requete (le recordset). Ici comme c'est une requete d'insert vous aurez juste l'information du résultat de l'insert que vous n'avez pas besoin d'utiliser dans ce cas. Mettez l'instruction dans un bloc try catch en cas c'est mieux avec PDO.
Pourquoi l'enregistrement en bd ci-dessous n'est pas dans mon php ?:
Il reste dans votre code PHP mais pas dans l'include de connection à la BD, car vous etes censé faire du développement en orienté objet et donc dans un environnement MVC, c'est la couche modèle qui est censé requeter la BD et pas le controleur ajax directement. On ne mélange pas au niveau fonctionnel le code, il ne s'agit pas de faire du procédural....
En attendant, vous pouvez le laisser là où il est c'est suffisant pour faire fonctionner le code fourni.
++
Dernière modification par Jc (09-10-2014 05:11:11)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonsoir JC,
Je reviens vers vous pour une dernière tentative.
Si je n'y arrive pas cette fois j'abandonne, malgré que je pense avoir maintenant, pour l'essentiel, compris le cheminement de l'information et des inter-actions avec ajax.
Je reviendrai vers AJAX / PDO, mais pas tout de suite.
Ce ne sera pas faute de vos efforts, ni de votre patience, mais j'arrive maintenant à des "singleton"..
J'aurai essayer, j'en ai parlé ce matin avec une connaissance que je pense qualifiée, il avait néanmoins des difficultés à répondre simplement à mes questions sans m'embarquer dans des explications que je sentais bien confuses... débutant OUI, mais pas ... quand même.
Je ne veux plus vous faire perdre votre temps et comprends bien que vous n'avez pas que ça à faire, même si pour vous il suffit d'ouvrir le robinet pour faire couler du code.
Je pense que Mk saura tirer profit de ce que vous avez fait et cela servira à bien d'autres.
Je vous indique donc tout mes derniers codes, il y a qqchose qui ne passe pas, si je suis tout prés, j'y retourne, sinon c'est tant pis pour moi.
Mon appel AJAX ==> HTML, pas d'envoi quand je clique
La gestion de l'appel par le script "scriptformulaire.js"
function verification_saisie(nomprenom,email,telephone,typecontact)
{
[i][color=#a6a6a6]// en attente
//var error_notfound=false;
// code de vérification de saisie.
// à ajouter ultérieurement en vérif champs
// $nomprenom = isset($_POST["nomprenom"]) ? $_POST["nomprenom"] : ""; // test
// $email = isset($_POST["email"]) ? $_POST["email"] : ""; // test
// $telephone = isset($_POST["telephone"]) ? $_POST["telephone"] : ""; // test
// $typecontact = isset($_POST["typecontact"]) ? $_POST["typecontact"] : ""; //
// if($nomprenom == "" || $email == "" || $telephone == "" || $typecontact == "")
// {
// echo "Veuillez remplir tous les champs !";
// }
// fin ajout verif champs
// retourne false si erreur trouvée, sinon retourne true.
// retourne false si erreur trouvée, sinon retourne true.
return error_notfound;[/color][/i]
}
);
La validation PHP avec form-validation.php
POUR INFO
//http://studio.jacksay.com/tutoriaux/php/connection-mysql-avec-pdo
Ma connexion bd version PDO avec connectbd.php
==> PDO_err : invalid data source name Fatal error
try {
$result=$PDOInstance->query
("INSERT INTO confid (nomprenom, email, telephone, typecontact) VALUES ('$nomprenom','$email','$telephone','$typecontact')");
}
catch (PDOException $e)
{print 'PDO_err : '.$e->getMessage();
}
?>
Pierrot
Dernière modification par pierrot35 (09-10-2014 17:14:19)
Hors ligne
Bonjour,
Vous y êtes presque :
1) Dans votre code javascript ainsi que dans votre code connectdb, retirez
$result=$PDOInstance->query("INSERT INTO matable (nomprenom,email,telephone,typecontact) VALUES ('$nomtobase','$email','$telephone','$typecontact')";
cela n'a rien à faire là, cela doit se faire au niveau de PHP dans la fonction validation_database, après votre require_once('connect_db.php') pour le moins. Je vous rappelle que l'appel à la DB doit se faire à partir de PHP et que la variable $PDOinstance n'est connue de PHP qu'une fois l'include connect_db.php effectué.
De plus c'est cette ligne là qui bloque votre appel ajax au niveau javascript car cette ligne n'est pas du javascript et donc génère une erreur au niveau de votre javascript.
2) Le code connect_db.php doit être celui-ci
Voilà ni plus ni moins. L'intérêt de connect_db.php est d'avoir un seul lieu pour stocker les identifiants de connection dans tout son code et initier la connection à la base de données (pas de requête BD dans ce fichier). Il faudra mettre le fichier en lecture seule sur le serveur en plus. Parfois préciser le port n'est pas nécessaire si celui utilisé est le même que celui configuré par défaut dans MySQL.
PDO remplace MySQLi donc évitez d'utiliser les deux d'où le code que je viens de vous fournir.
Ce ne sera pas faute de vos efforts, ni de votre patience, mais j'arrive maintenant à des "singleton"..
C'est en effet la base dans une architecture web performante en PHP.
++
EDIT: Les erreurs commises correspondent aux endroits qui ne respectent pas la structure du code initiale que je vous ai fourni. Vous avez voulu changer les choses avant d'avoir compris la logique de fonctionnement du code initial.
Dernière modification par Jc (10-10-2014 11:20:58)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonsoir JC,
merci pour le ..Vous y êtes presque ..:)
J'ai suivi vos correctifs :
connectdb.php ==> à priori c'est maintenant Ok, OUFF
[color=#a3a3a3]// CONNEXION BD UNIQUEMENT, LA TABLE EST IMPLANTEE DANS LA VALIDATION PHP -------------------------------------------------
//PDO Crée mon instance PDO (uniquement connexion à la base) [/color]
$DSN_string='mysql:host=*****.eu.mysql;dbname=*****_eu'; // port= **** SI BESOIN
$USER_string='****_eu';
$PWD_string='****';
try {
$PDOInstance = new PDO($DSN_string, $USER_string, $PWD_string);
$PDOInstance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
}catch (PDOException $e){
print 'PDO_err : '.$e->getMessage();
die();
}
[i][color=#adadad]// vérif avec autre façon OK
//try {
// $dns = 'mysql:host=***********.eu.mysql';
/// $utilisateur = '************_eu';
// $motDePasse = '**************';
// $connection = new PDO( $dns, $utilisateur, $motDePasse );
//} catch ( Exception $e ) {
// echo "Connection à MySQL impossible : ", $e->getMessage();
// die();
//}[/color[/i]]
?>
Concernant l'appel d'Ajax par mon submit HTML:
ne lance pas le formulaire quand je clique, mais à priori cela viendrait du submitform (scriptformulaire.js), sinon je crois que le html cette fois devrait être aussi ok,
Par sécurité
le scriptformulaire.js actualisé ( vérif liens avec firebug.
Et enfin la validation php (form-validation.php) = {"message":" Erreur dans les param\u00e8tres soumis au serveur (-1)"}
Voila, j'ai juste cette erreur dans la validation php
{"message":" Erreur dans les param\u00e8tres soumis au serveur (-1)"}
J'avoue que je ne comprends pas trop ce que font ces codes 'fn'
)
Je me demande si cela ne provenait pas de là, mais pas sûr du tout..
Ou de
je trouve pas ce que c'est ==> http://php.net/manual/fr/book.pdo.php
merci,
Bon week end à vous
Pierrot
Dernière modification par pierrot35 (10-10-2014 18:36:51)
Hors ligne
Bonsoir
Concernant les includes dans votre header html je vous avais dit
Maintenant que j'ai vu votre header, il semblerait qu'il y ait deux fichiers js "redondants" à vérifier donc s'il n'y a pas moyen d'en faire un seul tout propre tout beau
: <script src="cfg-contactform-35/js/contactform.js"></script> et <script src="cfg-contactform-35/js/scriptformulaire.js"></script>
Donc pourquoi avoir maintenant
<script type="text/javascript" lang="fr-fr" src="libs/js/mabibliotheque.js"></script>
<script type="text/javascript" src="http://opuscloud.eu/IhmWebEditorBdnNew.php/scriptformulaire.js"></script>
J'avais appelé le fichier mabibliotheque.js mais vous l'appelez comme vous voulez par exemple scriptformulaire.js . Juste pour vous dire que vous l'appelez comme vous voulez, ce qui est important c'est que vous n'avez besoin que d'un seul fichier js pour gérer votre formulaire côté client.
Important! Enlevez ce que vous avez rajouté dans votre javascript : jQuery(function() {..... }) Cette écriture est erronée et ce que vous cherchez à faire en écrivant cela n'est pas justifié. Laissez juste le code que je vous ai donné rien de plus. Si vous voulez apprendre à écrire en orienté objet en javascript, difficile de vous l'expliquer dans un tuto ajax.... c'est un vaste sujet qui n'est pas le même.
Une fois ceci corrigé, sans rien changer au reste, dites moi si c'est ok pour vous niveau compréhension.
++
EDIT
J'avoue que je ne comprends pas trop ce que font ces codes 'fn'
C'est une "technique" de mon cru, si on peut appeler cela ainsi. Cela sert à créer une bibliothèque de fonctions managées au niveau du contrôleur ajax PHP. Cela permet beaucoup de choses dont :
- Cela structure le format des requêtes en JSON/JSONP qui sont acceptables par le serveur et permet de libérer le serveur au plus tôt de requêtes non conformes qui sont tentées de lui être passées.
- Donc ici seule la fonction ajax 'validate_form' est connue et sera acceptée.
Dernière modification par Jc (11-10-2014 00:06:48)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonsoir Jc,
J'ai repris vos codes "à la lettre" .
OUI, sincèrement, je pense avoir compris,au moins pour l'essentiel, mais je n'ai pas encore l'automatisme et suis obligé de (re)réfléchir chaque pas.
Mais si m'écarte un peu, je m'égare très vite de votre logique.
Pour revenir sur les codes.
CONNEXION BD, je les ai intégrés dans le code de sécurisation de la session == > à priori toujours OK
HEAD/ HTML
- Toujours le même souci, je clique sur bouton de l'IHM et rien ne se passe
- Modification du header ( j'avais compris qu'il fallait en plus un script bibli.. , j'avais trouvé cela étonnant.. je n'avais pas saisi que c'était votre exemple, c'est rectifié)
LE <head>
LA DIV / L'APPEL AJAX ==> scriptformulaire.js qui contient le submit_form
J'ai toujours pas compris le 'fn' , même si forcement je le retrouve en validation
data :{ fn:'validate_form', Nomprenom...,
je me demande si c'est pas ça qui génère l'erreur sur la validation php ( {"message":" Erreur dans les parametres soumis au serveur (-1)"} )
LE SCRIPT (submitform) nom de fichier :scriptformulaire.js, fichier complet de A à Z
- rectifié, Jquery enlevé
LA VALIDATION PHP avec insertion session sécurisée
- IDEM ==> ERREUR {"message":" Erreur dans les paramètres soumis au serveur (-1)"}, qui correspond au message après : if (!isset($_POST['fn']) || empty($_POST['fn']))...
Contrairement aux autres codes, celui là je ne le comprend pas du tout, et ne vais pas chercher à réutiliser ce code <..'fn'..> ailleurs tant que ne l'aurai "digéré"...
Je ne vois pas d’où ça vient, mais je crois que $result=$PDOInstance-> ne prends pas les values en compte
Dans la bd si je fais ==> print_r ($PDOInstance); ==> ça me donne PDO Object ( )
Je ne sais plus quoi vérifier, les codes sont je pense Ok
Bon dimanche ou début de semaine
Merci encore, je l'ai tellement écrit..
pierrot
Hors ligne
Bonsoir
- IDEM ==> ERREUR {"message":" Erreur dans les paramètres soumis au serveur (-1)"}, qui correspond au message après : if (!isset($_POST['fn']) || empty($_POST['fn']))...
Contrairement aux autres codes, celui là je ne le comprend pas du tout, et ne vais pas chercher à réutiliser ce code <..'fn'..> ailleurs tant que ne l'aurai "digéré"...
Au contraire laissez-le, cela permet d'avoir un code de déboggage très précis, et d'isoler très précisément le problème. Je ne vous ai rien dit jusqu'à maintenant car je souhaitais que vous trouviez tout seul l'origine du problème. Donc je vais vous l'expliquer. Cela veut dire qu'il doit y avoir une autre requête ajax qui doit partir au serveur (requête qui ne soumet pas le paramètre fn) d'où l'erreur. Pour savoir, allez par exemple sur internet explorer, tapez F12 lancez la capture script et la capture réseau, et cliquez sur votre bouton submit... si l'erreur se reproduit (ce qui devrait être le cas), cliquez sur l'appel du fichier validation_form.php, accédez à la vue détaillée, et regardez l'onglet "corps de demande", et vérifiez que l'ensemble des paramètres demandés soient bien présents. c'est comme cela que l'on débogge de l'Ajax.
Ensuite pouvez-vous m'expliquer ce que vient faire votre
else
{
header('Location: login.php');
}
Dans votre fichier ajax php????
Dernière modification par Jc (11-10-2014 18:42:14)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
Il y a un truc qui me semblait bizarre... Donc après avoir retiré tous vos commentaires de votre fichier de validation PHP (ajax) et refait les indentations correctement, je me suis rendu compte que votre fichier de traitement PHP est erroné et ne correspond pas à ce que je vous ai dit initialement. Donc votre problème venait de là.
Voici votre fichier PHP corrigé à nouveau.
Vous restera a créer votre fonction check_entries() qui n'existe pas encore, et qui va donc générer une erreur en l'état.
Bon dimanche
Dernière modification par Jc (12-10-2014 09:51:09)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour,
C'est bien ce qui me semblait, je ne comprenais pas pourquoi je trouvais ce 'fn' sans correspondance et me demandait comment il pouvait bien être validé.
Mais alors, c'était donc obligatoire d'avoir cette erreur, si vous voulez bien, plus tard, peut être pourriez vous me donner quelques détail sur ce procédé, pas maintenant je sais qu'il y avait une raison.
Pour le : else {header('Location: login.php');}
J'ai réintégré la sécurité de la session :
si pas logged ==> retour au login
Il va falloir que j'installe internet explorer sous ubuntu, je ne travaille qu'avec mozilla et testais le site sur le browser de microsoft avec un autre pc.
Pour le reste , j'y retourne tout de suite
Merci pour les explications sur le 'fn'.. , je ne comprenais plus.
Pierrot
Hors ligne
il n'y à pas un souci d'indentation sur le dernier code ? ou alors il manque quelque chose qui est passé " à l'as"
Si je le passe à Bluefish, il y a un problème ..
<?php
function validation_database($nomprenom,$email,$telephone,$typecontact)
{
require_once('bdconnect.php');
try
{
$result=$PDOInstance->query("INSERT INTO matable (nomprenom,email,telephone,typecontact) VALUES ('$nomprenom','$email','$telephone','$typecontact')");
}
catch(PDOException $e)
{
print json_encode(array('message'=>' Une erreur est survenue dans la validation en base de données (-4) '.$e->getMessage()));return false;
}
}
return true;
}
if (!isset($_POST['fn']) || empty($_POST['fn']))
{
print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-1)'));exit;
}
$fn=$_POST['fn'];
switch($fn)
{
default: print json_encode(array('message'=>'Fonction Ajax inconnue / non gérée.'));exit;
break;
case 'validate_form':
if(!isset($_POST['NOMPRENOM']) || !isset($_POST['EMAIL']) || !isset($_POST['TELEPHONE']) || !isset($_POST['TYPECONTACT']))
{
print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-2)'));exit;
}
$nomprenom=$_POST['NOMPRENOM']; $email=$_POST['EMAIL']; $telephone=$_POST['TELEPHONE']; $typecontact=$_POST['TYPECONTACT'];
if (check_entries($nomprenom,$email,$telephone,$typecontact)===false)
{
print json_encode(array('message'=>' Erreur dans le format des paramètres soumis au serveur (-3)'));exit;
}
if (validation_database($nomprenom,$email,$telephone,$typecontact)===false)
{
exit;
}
print json_encode(array('message'=>'ok'));
}
}
?>
Hors ligne
Bonjour,
Vous avez changé la syntaxe du fichier par rapport à ce que j'ai écris. Faites attention! normal qu'il y ait une erreur. Regardez mieux.
Vous devez retirer le header avec le login, comme je vous l'ai dit.
Avant de tout modifier, vous devez comprendre comment cela fonctionne....
Pour Firefox ou chrome ce n'est pas F12 mais Ctrl+Maj+I.
Dernière modification par Jc (12-10-2014 13:17:01)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Comprends plus, j'ai recopié le code du fichier directement sur " Voici votre fichier PHP corrigé à nouveau."
Je viens de le refaire à l'instant ayant eu un doute, c'est pareil, si je le lance tel que je le recopie ( juste en mettant à jour le nom de la table) je retrouve bien une erreur:
Parse error: syntax error, unexpected '}' in /customers/d/a/6/******.eu/httpd.www/IhmWeb......php/validationform.php on line 13
Dans le code que j'ai recopié il y a le "require("authentification.php"); if(!Authentification::isLogged()) .. exit;" avant ma function de validation, mais le header ==> est déjà enlevé.
J'y perd "mon latin" ..
Hors ligne
Comprends plus, j'ai recopié le code du fichier directement sur " Voici votre fichier PHP corrigé à nouveau."
Vous l'avez mal fait alors,
1) vous devez enlever le dernier } juste avant ?> EDIT: j'ai fait cette erreur aussi ^^
2) vous devez enlever } avant return true; dans la fonction validation_database() EDIT: celle qui vous bloque actuellement et qui est absente dans le code initial.
... faudra aussi que vous m'expliquiez ce que viennent faire ces b entre crochets dans votre code.... ca rend presque illisible le contenu
ND MK
tentative de mise en bold sur le forum, j'imagine.
je vais les supprimer.
Dernière modification par Jc (12-10-2014 15:15:48)
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Excusez moi pour les " b entre crochets", j'ai été trop vite en recopiant le code, il s'agit des codes caractères gras du forum.. je vais y remédier
Concernant les "}' en trop, ils sont dans votre code corrigé
Actuellement, il me semble que tout est conforme, syntaxe et contenu.
Je souhaite vérifier pas à pas pour tracer le processus, pour vérifier l'efficience des codes pas à pas, il faut que je trouve ou ça fonctionne pas.
J'ai commencé par la connexion bd, je sais que cela peut faire doublon.
J'ai créer un fichier php pour tester la connexion bd ( qui me resservira pour autre chose) Résultat = CONNEXION REUSSIE == > PAS DE PROBLEME de codage coté connexion
<?php
session_start();
require_once('bdconnect.php');
$link = mysql_connect("**********.eu.mysql", "**********_eu", "************")
or die("Impossible de se connecter : " . mysql_error());
echo 'Connexion réussie';
mysql_close($link);
?>
PARCONTRE Si j'inclus le même code dans La validation php : ==> "message":" Erreur dans les param\u00e8tres soumis au serveur (-1)"}
Il y a pas un souci, en fin je crois, pourquoi le test de connexion bd ne m'affiche rien dans ce cas ?
Concernant la validation des données,suite au code ci dessous code : Resultat = pas d'affichage de retour invalide ==> donc à priori c'est OK
ET je retombe sur le fameux 'fn'
Pour y voir plus clair j'ai neutralisé temporairement les codes "fn' et poursuit directement sur :
Résultat = {"message":" Erreur dans les param\u00e8tres soumis au serveur (-2)"}
Est ce que c'est normal, il y aurait une erreur de paramètres soumis au serveur ?
Pourtant ils ont l'air ok, si ma bd est bien connectée ..
Hors ligne
Bonsoir,
1) Faites-moi plaisir, arrêtez de mélanger les appels mysqli avec PDO même pour tester....
2) validation_database n'est exécuté que lorsque cette ligne est atteinte, pas avant : if (validation_database($nomprenom,$email,$telephone,$typecontact)===false){ exit;}
3) Si l'erreur -1 intervient, une fois le fichier PHP en ordre c'est que ce n'est pas la bonne requête ajax qui interroge ce fichier, ni plus ni moins. Et pour savoir quelle requête est envoyée au serveur il faut regarder la capture réseau, je vous l'ai déjà expliqué.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour JC,
je viens de reprendre ce que vous m'aviez indiqué, j'utilise la console de mozilla, et voila ce que j'obtiens :
Après lancement du submit avec remplissage des input ( demande informations.php) :
Sur la console : JS
[16:40:40,342] L'utilisation de « getPreventDefault() » est obsolète. Utiliser « defaultPrevented » à la place. @ http://*********.eu/IhmWeb*******.php/demande%20informations.php
[16:40:42,783] POST http://www.**********.eu/IhmWeb***********.php/formvalidation.php [HTTP/1.1 200 OK 238ms]
[16:40:42,970] TypeError: RETOUR_SERVEUR is null @ http://**********.eu/IhmWeb**********.php/scriptformulaire.js:33 LIgne 33 = if (RETOUR_SERVEUR.message==='ok')
Sur la console : Réseau
Dans l'ordre (je fais abstraction des css)
- URL de la requête http:// ****.eu/IhmWeb.......php/demande informations.php Méthode GET : demande informations.php Domaine ***.eu code de statut 200 ok type HTML
- Méthode GET : css....
- Jquery.min.js URL de la requête url de la requete : http://ajax.googleapis.com/ajax/libs/jq … ery.min.js Méthode GET code de statut 304 Not modified type JS
- scriptformulaire. js URL de la requête http:// ****.eu/IhmWeb.......php/scriptformulaire.js code de statut 304 Not modified type JS
- Méthode GET : css....
Voila ce que j'ai pu obtenir
Je continue à rechercher
pierrot
Hors ligne
J'ai ceci en lançant mon submit avec chrome :
XMLHttpRequest cannot load http://www.******.eu/IhmWeb******.php/formvalidation.php
Uncaught TypeError : Cannot read property 'messsage' of null --------------- scriptformulaire.js :33
Ù.ajax.complete --------------- scriptformulaire.js :33
0 --------------- scriptformulaire.js : 2
p.fireWith --------------- scriptformulaire.js : 2
w --------------- scriptformulaire.js : 4
d --------------- scriptformulaire.js : 4
Je voudrai spécifier qu'avant de faire les tests j'ouvre la session pour ne pas rester bloquer par le login
Cette fois avec chrome, j'ai pour formvalidation.php :
Method POST STATUS (canceled) Type : Pending Initiator : jquery.min.js:4 Script
Je continue..
Hors ligne
Bonjour,
1) vous n'avez pas relu ce que je vous ai dit à propos du débogage, et vous m'avez donné toutes les informations sauf celles demandées
lancez la capture script et la capture réseau, et cliquez sur votre bouton submit... si l'erreur se reproduit (ce qui devrait être le cas), cliquez sur l'appel du fichier validation_form.php, accédez à la vue détaillée, et regardez l'onglet "corps de demande", et vérifiez que l'ensemble des paramètres demandés soient bien présents
2) Tant qu'il y a des erreurs Javascript, rien ne fonctionnera
3) Il y a des informations intéressantes dans ce que vous avez fourni, comme par exemple ce que vient faire dans votre fichier scriptformulaire.js 'messsage' avec 3 s.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
bonjour,
Maintenant lorsque je rempli les champs du formulaire et que je valide "envoyer", au lieu qu'il se passe rien, ,j'ai une fenêtre qui s'ouvre et qui m'indique :
Concernat les infos visées par les codes MAJ +CTRL +I avec Firefox/Chrome :
J'ai icônes : "général", "média", "permissions", "sécurité", et ne pouvant obtenir les champs que vous spécifiez (la capture script et la capture réseau), j'y ai ajouté une extension, et voila ce que cela donne :
DEMANDEINFORMATIONS.PHP
/ demandeinformations.php sans validation des champs du formulaire
HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.29
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
Content-Length: 859
Accept-Ranges: bytes
Date: Tue, 14 Oct 2014 14:00:09 GMT
X-Varnish: 2513838574
Age: 0
Via: 1.1 varnish
Connection: keep-alive
+ liste requêtes
DEMANDEINFORMATIONS.PHP
/ demandeinformations.php avec validation des champs du formulaire
Affichage fenêtre erreur : "Une erreur est survenue lors du traitement de la soumission de votre formulaire avec erreur suivante: [ Erreur dans les paramètres soumis au serveur (-1)]"
Je me retrouve bien sur ma validation... après validation des champs du formulaire
HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.29
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
Content-Length: 85
Accept-Ranges: bytes
Date: Tue, 14 Oct 2014 14:05:07 GMT
X-Varnish: 2514295854
Age: 0
Via: 1.1 varnish
Connection: keep-alive
+ liste requêtes
FORMVALIDATION.PHP
/ formvalidation.php
http://***********.eu/IhmWeb*********** … dation.php
Message : {"message":" Erreur dans les param\u00e8tres soumis au serveur (-1)"}
HTTP/1.1 200 OK
Server: Apache
X-Powered-By: PHP/5.3.29
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Vary: Accept-Encoding
Content-Encoding: gzip
Content-Type: text/html
Content-Length: 85
Accept-Ranges: bytes
Date: Tue, 14 Oct 2014 14:10:31 GMT
X-Varnish: 2514778197
Age: 0
Via: 1.1 varnish
Connection: keep-alive
+ liste requêtes
SCRIPTFORMULAIRE.JS
/ scriptformulaire.js
HTTP/1.1 304 Not Modified
Server: Apache
Last-Modified: Tue, 14 Oct 2014 12:53:45 GMT
Etag: "a2e9442-d9b-505618175756b"
Vary: Accept-Encoding
Content-Type: application/javascript
Date: Tue, 14 Oct 2014 13:46:43 GMT
X-Varnish: 2512635145 2511837979
Age: 518
Via: 1.1 varnish
Connection: keep-alive
+ liste requêtes
Voila ce que j'ai, ce que je sais est que maintenant "sa passe" entre demandeinformations.php >>scriptformulaire.js>> formvalidation.php
Je vais essayer encore et encore pour d'autres infos sur la requête Ajax, il va probablement encore manquer qqchose..
Au demeurant, sil y an avait une autre, je me demande bien d’où elle pourrait venir ?
merci bien
pierrot
Dernière modification par pierrot35 (14-10-2014 18:28:02)
Hors ligne
Bonsoir,
Bon, c'est bien parce que c'est vous lol ^^
1) Si vous êtes sur Chrome
Tout en haut de la fenêtre à gauche vous avez deux icones puis, Elements et Network (ensuite : sources, timeline, ...) . Vous allez dans Network. Dans la liste de fichier, après avoir cliqué sur submit de votre formulaire, vous recherchez le fichier formvalidation.php dans la liste vous cliquez dessus. Apparaît alors une fenetre intégrée à droite. Vous restez sur l'onglet Headers et vous regardez le contenu de la section "Form Data" juste avant "Response Headers", et vous la copiez coller ici.
2) Si vous êtes sur Firefox
Après avoir cliqué sur le bouton submit, vous allez sur l'onglet Réseau (le dernier à droite juste après Profileur) et vous sélectionnez votre fichier formvalidation.php dans la liste. Dans la fenêtre de droite qui apparaît, vous sélectionnez l'onglet paramètres et vous copiez coller le contenu ici.
IMPORTANT
Si votre fichier formvalidation.php apparaît 2 fois dans votre liste, dites-le, et faites l'opération citée ci-dessus pour chacun d'eux en précisant quelles informations correspondent au premier appel (le formvalidation.php le plus en haut de la liste).
Merci.
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonjour Jc,
(re)merci pour le détail, j'ai trouver une autre fenêtre qui ressemble à ce que vous dites,
je vais tout refaire avec votre méthode
pierrot
Hors ligne
Voila le résultat :
1/ ouverture formulaire avec champs et submit
2/ ouverture de l'outil développement ... >> sur Réseau
3/ envoi du submit
4/ apparition fenêtre sur l'ihm formulaire : Une erreur est survenue lors du traitement de la soumission de votre formulaire avec erreur suivante: [ Erreur dans les paramètres soumis au serveur (-1)]
Je valide le "Ok" du message formulaire " une erreur.."
Résultats
Firefox
Puis Fenêtre de droite
Avec Chrome
Pas de section "Form Data" nulle part, ni sous FF, ni sous Chrome
C'est peut être du fait que je sois sous linux ?
Je vais chercher dans les paquets synaptic si je trouve qqchose pour obtenir que vous me demandez
pierrot
Hors ligne
Bonjour
Entêtes >> cookies >> >> paramètres >> réponses >> délais
PARAMETRES = Aucun paramètre pour cette requête
Bon bien c'est clair. Cela veut dire que vous avez une autre requête autre que celle de la validation de votre formulaire qui s'éxecute avant, et qui pointe sur formvalidation.php qui actuellement je le rappelle n'est prévue QUE pour gérer la validation de votre formulaire. Ce que je vois de plus logique, c'est que la requête qui gère votre captcha sur votre formulaire pointe également sur formvalidation.php
Merci de me confirmer cela.
++
POO PHP+Ajax en MVC avec PDO et Bases de données épaisses : What else?
Hors ligne
Bonsoir,
J'y avis pensé, alors j'avais déjà ôter de mon répertoire tout less anciens fichiers.
Je vais copier dans un répertoire "tout neuf" mes fichiers actuels ci-dessous :
- index HTML du site public pour le login/logout.php qui ouvrira ma session privée
- login/logout.ph
- demandeinformations.ph (mon formulaire)
- scriptformulaire.js
- formvalidation.php
- bdconnect.php pour le require_once
Normalement avec ça uniquement ça doit "tourner" sur les 4 champs nomprenom, ..
Dans le formulaire actuel, je ne me sert donc pas de l'ancienne ihm ( avec champs nom,.. textarea, chekbox, envoi/réception email,..)
Mon HTML formulaire à une seule div, celle que je vous ai communiquée.
Je n'ai plus de captcha non plus, seulement les 4 champs et le bouton de validation du submit.
J'avais par ailleurs modifié le nom de form_validation.php en formvalidation.php pour éviter de faire "des noeuds" avec l'ancien
Si j'isole les fichiers cités ci-dessus, il ne doit plus avoir de "perméabilité".
Je vais aussi simplifier le head du formulaire, il y a un paquet de liens qui ne doivent pas être là, pour déconnecter complètement ce nouveau répertoire.
Je vois ça demain, ce soir je ne sais plus comment je m’appelle..
Bonne soirée, merci
Pierrot
ps ; j'y pense, mon site public a aussi un formulaire, qui est toujours connecté avec les anciens fichiers.. et c'est lui qui me logue sur la session privée...
Hors ligne