Vous n'êtes pas identifié(e).
Bonjour,
mon problème est résolu
cordialement
Pierrot
je pourrai peut être mettre mes liens vidéos dans un fichier protégé par l'authentification php ? auquel cas seuls ce qui auraient accès aux sessions protégées pourraient aller directement sur les vidéos ? je me trompe ?
Bonjour JC,
Ça marche parfaitement , dire que je m'étais embarqué dans du videoform /JS/ etc... puisque les href ne fonctionnaient pas pour le vidéos..
C'est en fait beaucoup plus simple.
J'ai fait une mosaïque de 9 écrans en ajoutant un poster "Titre de la vidéo" sur chaque écran, et lorsque l'on clique sur l'écran la vidéo se lance, cela m'évite d'avoir à ajouter des titres extérieurs.
Je te présente mes codes ci dessous, seulement les 6 premiers, les autres étant identiques :
J'ai juste un petit souci, lorsque les vidéos arrivent à leurs termes, je n'ai plus mon poster "Ecran Titre", mais un écran noir, si bien que si je voulais revoir la 2nd par exemple, je ne sais plus à quoi elle correspondait.
Concernant la sécurité, j'ai essayé d'obtenir l'url des vidéos, mais elle n'apparaissent pas, à priori (?), seule les src apparaissent, pourrait on "remonter" dans le site par ce chemin ?
Si j'ajoute à l'url de la page du site la src de la vidéo, j'arrive à la voir directement à l'écran, je suis dons dans ma session protégée sans avoir à m'identifier, est ce que cela représente un danger ?
Mes Ecrans Titre et mes vidéos sont pourtant dans l'arborescence des sessions protégées.
Ça me paraît simple cette fois ..trop simple.. mais j'attends tes observations..
Pierrot
Bonjour Jc,
Sacrément content de te "revoir", je ne voulais pas "t’embêter" vu le temps que tu avais déjà passé sur mes difficultés.
Je reprends donc tout au départ, mais auparavant pourrais tu m'indiquer si mes explications étaient claires, mon langage est toujours que celui d'un autodidacte.
Bien, mes manches sont relevées.
Ma situation : mes vidéos sont sur mon site, dans les 3 sessions sécurisées. Je reste bloqué sur les vidéos, les PDF eux se chargent bien avec href="#" et mes onclick(s), mais je vais les changer et passer en widget PDF, à priori c'est encore plus simple d’après ce que viens de voir.
Concernant le XMLHttpRequest, j'avais compris que cela était possible puisque l'échange de données étaient faites uniquement sur mon domaine, c'est à dire que mes fichiers vidéos et Pdf étaient sur mon serveur et non sur un autre domaine type YouTube.
Les href="#" et mes onclick(s) sur mes Pdf marchent impeccablement bien dans mes iframes. C'est ça que je ne comprenais pas, pourquoi ça fonctionne avec les Pdf et pas avec les href="#" et mes onclick(s) sur vidéos ?, je croyais que c'était la même chose.
lien =https://www.video2brain.com/fr/tuto/jsonp-ou-le-cross-domain
Et comme ça marchait pour les PDF, je me suis dit qu'ainsi j'éviterai de m'engager dans des savoirs JSONP trop inaccessibles pour moi, en restant centré sur la même recette mais "en vidéo".
Malheureusement, je trouve pas la solution.
Au départ, j'avais bien tenté avec <video></video>, la fenêtre s'ouvrait mais sans la video, alors j'ai laisser tomber puisque à contrario en iframe cela fonctionnait, et me "battais" avec les iframe(s?) depuis.
Je ne souhaite pas diffuser mes vidéos sur youtube, certaines sont confidentielles.
Juste une question subsidiaire, que ce soit des formats vidéos ou des présentations powerpoint, ce sera la même procédure ?
Je vais te suivre .. certes, c'est plutôt l'inverse , et te ferai un point le temps que je retravaille les codes <video></video> pour voir ou ça n'allait pas à l'origine.
Bonne soirée
Merci
pierrot
Ps: mes 3 sessions sécurisées sont impeccables, j'en suis "très fier" une connaissance informatique à essayé d'y entrer (avec mon accord) et il n'a pas réussi.. J'ai pourtant eu qq difficultés ensuite : alors que chaque session était dans un dossier différent, lorsque l'une d'entr'elle était loguée, les autres l'étaient aussi, j'ai donc refait des intitulés différents des fichiers et tout est devenu normal, y compris les enregistrement mysql ( sauf le checkbox à choix multiples ou mysql enregistre toutes les options qu'elles soient cochées ou pas, mais cela n'est pas d'une grande importance, donc dans la file d'attente..), mais c'est déjà de l'histoire presque ancienne
Bonjour à tous,
je ne sais pas dans quel forum poser mes questions, n'ayant pas trouvé de thèmes qui correspondent à ce que je cherche.
Voila ma difficulté :
Je quasiment fini un site internet, avec 3 sessions privées ( login + mdp) en lien avec mysql ( bien aidé par JC que je remercie).
Je voudrais ouvrir dans mes iframes soit des documents, soit des vidéos.
Concernant l'ouverture des documents dans mes iframes, pas de soucis particulier, mes difficultés viennent de l'ouverture des videos en mp4
Ce que je souhaiterai est, que selon chaque onclick, j'ouvre une vidéo différente dans la même iframe.
Actuellement j'en suis à ce niveau ( certains codes"rémaménagés" issus de divers forum, aucun ne me permet d'aboutir en totalité).
Dans le header de mon IHm, mon script :
Mon php concernant l'ouverture des documents :
Mon php concernant l'ouverture des vidéos qui ne marchent pas
Enfin mon html concernant uniquement les vidéos ( l'ouverture des document fonctionne correctement)
Voila ce que j'obtiens, j'ai aucune ligne dans mon fichier VideoTest.mp4 .. :
J'ai essayé ceci qui m'affiche bien ma vidéo en Iframe :
J'ai essayé aussi ceci , mais je ne peux pas utiliser les onclick(s) pour ouvrir chaque vidéo dans la même iframe :
et son code html
Peut être pouvez vous me mettre sur la voie, simplement .. , j'ai, me semble t'il, tout mais dans le désordre..
Merci par avance
Pierrot
ps: je ne veux pas "transiter" par youtube ...
Bonsoir JC,
Ça marche, à ma façon..
Je crois que l'erreur vient du fait que, dés le départ les variables n'étaient pas récupérées, donc après relecture(s) du Jquery initial... j'ai vu que les éléments du formulaire étaient tous stockés dans une variable "form_value_array"
J'ai bien essayé de récupérer les variables individuellement, mais en vain, je suis donc reparti à nouveau sur la gestion de mes propres variables directement dans le Js du formulaire initial, c'est à dire que j'ai extrait des codes parmi ceux que vous m'aviez indiqués, et, sans toucher à l'input HTML d'origine, modifié le JS d'origine et le traitement php également d'origine, comme suit :
Puis ajout dans le traitement PHP d'origine en conservant tel quel mon fichier bdconnect.php
Voila, comment ça fonctionne, je sais.. c'est du "minimum syndical", mais je pense avoir tout tenté à mon niveau, alors je m'en contenterai.
Tous les champs formulaires sont déjà contrôlés par le JS ( y compris checkbox, sélections multiples, textarea, captacha,..etc), et j'ai mis tout mes champs tables en Varchar.
Cela est devenu une banalité .. mais je vous remercie pour votre concours, même si l'acquis peut vous paraître insignifiant, c'est quand même grâce à cela que j'ai pu comprendre le processus et modifier les fichiers existants.
Si vous avez un ajout de sécurité à m'indiquer, sans "casser" mon petit boulot, n'hésitez pas, je reste à l'écoute.
Un jour je reprendrai vos codes pour travailler, mais pas tout de suite, je pense qu'une partie de ma difficulté venait aussi ( en sus) de la config de mon hébergeur, qui ont simplement "bottés" en touche lorsque je posais des questions..Le fichier sans BOM se remet en utf8 "normal" tout seul ?
Bien sincèrement
Pierrot
Bonjour JC,
Je n'ai toujours pas résultats, je vais refaire un nouveau dossier de fichiers "neufs" pour tenter un dernier essai, mais je n'y crois plus, c'est vraiment pour ma conscience.
Je crois que lorsque je recopie mes fichiers (ré)encodés avec notepad, ceux-ci ne sont pas enregistrés avec l'encodage modifié.
Dans tout les cas, je tiens cordialement à vous remercier pour vos efforts avec une infinie sincérité, il est rare de "rencontrer" un appui tel que le votre.
Pour moi c'est un échec, mais vous aurez fait votre possible sans compter.
Si ma dernière tentative fonctionnait, je vous préviendrais, je vais aussi voir du coté apache, je ne sais pas si c'est conforme.
Donc, pour la énième fois, vraiment, merci
Pierrot
Bonjour JC,
un point sur les modifs:
Fichiers connexion bd ==> Encodé en UTF8
Fichier html submit - partie PHP -
Fichier html submit - partie HTML -
script .js AUCUNE MODIFICATION
ET FICHIER VALIDATION Encodé et vérifié en UTF8 SANS BOM par Notepad ce ne change par ailleurs rien aux caractères du fichier
Voila, si tout est ok, le résultat est le même :
==> 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)]
En console:
validation.php utf8 sans BOM = erreur
L'encodage de caractères du document HTML n'a pas été déclaré. Le document sera affiché avec des caractères incorrects pour certaines configurations de navigateur si le document contient des caractères en dehors de la plage US-ASCII. L'encodage de caractères de la page doit être déclaré dans le document ou dans le protocole de transfert. @ http://*****.eu/session************/****validation*********.php
- réseau => idem = data néant
Script .js
Avec javasriptdeobfuscator, il y aurait un souci avec : "complete: function(xhr,result)" lorsque le lance le submit
Avec Chrome : " The following resources are missing a cache expiration that do not specify and expiration may not be cached by browsers"
+
L'encodage de caractères d'un document en texte brut n'a pas été déclaré. Le document sera affiché avec des caractères incorrects pour certaines configurations de navigateur si le document contient des caractères en dehors de la plage US-ASCII. L'encodage de caractères du fichier doit être déclaré dans le protocole de transfert ou le fichier doit utiliser une marque d'ordre des octets (BOM) comme signature d'encodage. @ http://*****.eu/session*********/scriptformulaire****.js
Je vais télécharger des logiciels d'analyse ou voir avec ubuntu ce que je peux faire.
J'ai tenté de multiples codes.. en vain, je ne le note pas ici, c'est du Zola..
Je continue encore 48 h, après cela j'abandonne, j'en suis désolé... tout ce boulot pour rien.. mais je n'irai pas plus loin, comme vous le dites, je ne comprends pas, alors c'est pas la peine d'insister.
J’espère que cela servira à quelqu'un et que quelqu'un de plus doué reprendra tout ça.
Merci
Pierrot
Bonjour Jc
merci beaucoup, je me doutais qu'il y avait quelquechose dans l'encodage ( je l'avais lu sur internet) mais j'avais un immense doute sur ce que j'avais compris , je vois ça demain, ce soir c'est pause.
j'étais encore en recherche de solution avec la console de firebug et j'ai un message qui me dit lorsque je lance le script :
Pourtant le pensais Jquery.. inactif depuis que je l'avais enlevé ?
Je vais mettre cela aussi à jour.
J'ai aussi ceci, toujours sur le script :
Et puis avec l'outil FF, toujours sur le script, j'ai :
Je vais passer tout mes fichiers sur bluefish ou notepad pour vérifier l'encodage utf8, j'ai pas l'impression que cela est valide partout.
Je pense que cette fois j'approche, je ne vois pas ce qu'il pourrait y avoir d'autres, tout ça m'a fait "potasser" des quantités d'info, il reste juste Json qui n'est pas encore très clair pour moi.
Bonne soirée, ou bonne journée,
pierrot
Bonjour JC,
Le fichier script ne contient pas de jQuery ? voir ci-dessous :
[color=#bababa]// Ultérieurement vérif info saisies (format nombre/email)
//if (verification_saisie(nomprenom,email,telephone,typecontact)===false){return false;}
// ENVOI infos au serveur en ajax[/color]
$.ajax
(
[color=#b8b8b8] //function ajaxSuccess ()
//{alert(this.responseText);} [/color]
{
[color=#b3b3b3]// url de la page de traitement ajax php AVEC require_once('bdconnect.php');[/color]
url:'http://*************.eu/sessionsecure/formvalidationsecure.php',
[color=#b5b5b5]// données à transmettre[/color]
formdata :{ fn:'validate_form', NOMPRENOM:nomprenom, EMAIL:email, TELEPHONE:telephone, TYPECONTACT:typecontact, sid:Math.random()},
type: 'post',
complete: function(xhr,result)
{
[color=#b8b8b8]// retour serveur au format JSON[/color]
var RETOUR_SERVEUR=jQuery.parseJSON(xhr.responseText);
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 erreur suivante: [' + RETOUR_SERVEUR.message +']');}
}
}
);
}
Comme je vous l'ai indiqué, j'ai isolé mes fichiers dans un dossier "sessionsecure" et changé les noms de chacun :
- demandeinformationsecure.php remplace demandeinformations.php
- scriptformulaireprive.js remplace scriptformulaire.js
- formvalidationsecure.php remplace formvalidation.php
- loginsecure.php remplace login.php
Les liens entr'eux étant reconstitués, j'obtiens le même message : 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)]
+
Vérification avec Réseau / paramètres = idem pas de données
Si je synthétise (avec des mots simples) :
Mon html va bien chercher le scriptformulairesecure.js, qui à son ouvre le traitement formvalidationsecure.php en lui transmettant mes données en Ajax, et récupère la validation du formulaire.
Dans le script existent des alertes :
== > le traitement échoue puisque les données envoyées par le script ne sont pas bonnes, et le retour provoque l'erreur que l'on connaît, jusque là, est ce que je me trompe ?
Est ce que se sont les données qui ne sont pas bonnes, ou une mauvaise récupération ?
ou le traitement qui ne se fait pas correctement ?
Les données envoyées:
la validation
Ce que je me demande est : quelles valeurs sont comparées avec switch ?
Et puis, c'est bien
qui m'envoie dans les cordes à chaque fois , puisque "fn" inexistant, non ?.. ça part de là ..
Préalablement à cela Si mes données étaient fausses, les alertes de validation l'indiquerait
==> à priori :
- mauvaise validation bd = erreur <=> à contrario pas de message donc validation bd Ok, mais si les données étaient nulles ou vides avec un formulaire validé ?
- mauvaise soumission du 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)]" , pour moi ce serait ou l'acte soumission ou les données qui sont comparées qui ne vont pas ==> pas de données
- quelles données sont engagées en validation ?
Bref, je croyais avoir compris le flux entre script et validation, et bien du coup j'ai maintenant un sacré doute ..
Remarque
Dans mon code je remarque que le $ devant ajax "( $.ajax)" ainsi que dans "var nomprenom=$('#form_nomprenom').val();" sont de couleurs bleue claire, je me demande si cela est normal ?
Simple.. je sens le problème par là .. bien sûr le ressenti et l'informatique ...
Pierrot
Bonsoir JC,
J'ai changé tout les noms des fichiers .php.js .html, et repositionné ces fichiers dans un nouveau dossier.
A priori il ne devrait plus avoir de requête "invisible", pourtant quand je passe le formulaire en analyse ( réseau), j'ai pas de data dans les paramètres,.. pourtant, elle tourne
Je pensais que casser tout les liens précédents aurai pu agir, mais rien n'y fait, je suis toujours au même point.
J'ai contacté mon hébergeur et lui exposé la difficulté, ce n'est qu'une hypothèse, mais .. on verra.
Cela ne pourrait pas être simplement un problème d'encodage (utf8) php/pdo/mysql/..?
J'ai remarqué que même si je n'entre pas de texte dans les champs du formulaire, le résultat était identique au fait de remplir ces mêmes champs.
Il y a bien quelque chose qui ne va pas, maintenant que j'ai compris la méthode, je comprends pas pourquoi ça marche pas, .. ça devrait marcher.. en fait c'est pas si sorcier en terme de logique.
C'est pas le check entries qui ferait cela, même si il intervient après l'erreur ?
Pour ce soir, c'est bon, je reprends demain, je vais finir par trouver
Bonne soirée
pierrot
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...
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
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
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
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..
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
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 ..
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" ..
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'));
}
}
?>
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
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
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
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
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