PHP|Débutant :: Forums

Advertisement

Besoin d'aide ? N'hésitez pas, mais respectez les règles

Vous n'êtes pas identifié(e).

#101 16-10-2014 18:45:36

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

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 wink
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

Hors ligne

#102 17-10-2014 14:26:25

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour,

Il faut que le check_entries existe en effet et qu'il retourne true. Vous pouvez le supprimer aussi, mais il est là pour des questions de sécurité (éviter les risques d'injection et attaques XSS principalement), donc c'est vous qui voyez.

Vous pouvez m'expliquer aussi pourquoi vous avez remis jQuery(function() dans votre javascript?

++

Dernière modification par Jc (17-10-2014 15:07:32)


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#103 18-10-2014 13:11:11

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour JC,

Le fichier script ne contient pas de jQuery ? voir  ci-dessous :

function submit_form()
{
[color=#b8b8b8]// RECUP informations saisies dans le formulaire[/color]
  var nomprenom=$('#form_nomprenom').val();
  var email=$('#form_email').val();
  var telephone=$('#form_telephone').val();
  var typecontact=$('#form_typecontact').val();

[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 :

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 +']');} .....

== > 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 ?

// RECUP informations saisies dans le formulaire
  var nomprenom=$('#form_nomprenom').val();
  var email=$('#form_email').val();
  var telephone=$('#form_telephone').val();
  var typecontact=$('#form_typecontact').val();

ou le traitement qui ne se fait pas correctement ?

Les données envoyées:

 formdata :{ fn:'validate_form', NOMPRENOM:nomprenom, EMAIL:email, TELEPHONE:telephone, TYPECONTACT:typecontact, sid:Math.random()},
    type: 'post',

la validation

switch($fn) // ==> COMPARAISON 'FN' AVEC QUELLES VALEURS ?  ==>  exécution code à partir de quelles valeurs ?
{
  default: print json_encode(array('message'=>'Fonction Ajax inconnue / non gérée.'));exit;
  // L'instruction break permet de sortir d'une structure for, foreach, while, do-while ou switch.
  break;
  // ???????????????
  case 'validate_form':

Ce que je me demande est : quelles valeurs sont comparées avec switch ?

Et puis, c'est bien

if (!isset($_POST['fn']) || empty($_POST['fn']))
// json_encode — indique la représentation JSON de 'fn'
{print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-1)'));exit;}

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

  try
  {
  $result=$PDOInstance->query("INSERT INTO confid (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;
} // FIN VALIDATION DONNÉES = OK

==> à 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

Hors ligne

#104 18-10-2014 13:36:30

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour,

if (!isset($_POST['fn']) || empty($_POST['fn']))
// json_encode — indique la représentation JSON de 'fn'
{print json_encode(array('message'=>' Erreur dans les paramètres soumis au serveur (-1)'));exit;}

Non json_encode est la pour encoder le retour serveur (le print) au format JSON pour qu'il soit lu et interprétable directement au niveau javascript dans l'event complete de l'appel ajax.

Ensuite oui il faut que la lib JQuery soit chargée dans le header de votre html.
Vérifiez qu'il n'y a pas d'erreur au niveau de votre script javascript avec la console.

Bon week-end.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#105 18-10-2014 21:25:04

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Protéger par un formulaire toutes les IHM d'une même session php

Je pense avoir trouvé, j'avais complètement oublié, vu que je n'ai plus ce genre de problèmes depuis longtemps.
Votre fichier php formvalidation.php doit être encodé en UTF-8 sans BOM et votre PHP doit être configuré en UTF-8 par défaut, sinon PHP ne peut recevoir la requête ajax envoyée en UTF-8.

Bon dimanche.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#106 19-10-2014 19:00:21

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

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 :

this page using already using Jquery v1.10.2 et moi je suis en <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></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 :

If <script> tags have a 'type' attribute, it should equal 'text/javascript' or 'application/javascript'. Also scripts must be parsable (syntactically correct).

Et puis avec l'outil FF, toujours sur le script,  j'ai :

[19:23:07,868] 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********/scriptformulaireprive.js

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

Hors ligne

#107 20-10-2014 11:51:18

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour,

Pourtant le pensais Jquery.. inactif depuis que je l'avais enlevé ?

Je vous invite à relire ce que je vous ai expliqué, je me doutais bien que vous n'aviez pas compris.... la structure que vous avez enlevé est incorrecte c'est tout. Votre javascript utilise jquery partout, il faut donc le laisser. Gardez juste le fichier le plus réçent.

En ce qui concerne la vérification de l'encodage, vérifiez bien que le BOM est enlevé.

JSON= JavaScript Object Notation

Bonne journée.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

#108 21-10-2014 17:55:29

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour JC,

un point sur les modifs:

Fichiers connexion bd ==> Encodé en UTF8

<?php
session_start();
[color=#0a23ff]mb_internal_encoding("UTF-8");// indique d'utiliser l'encodage UTF-8[/color]
require("authentification.php");
if(Authentification::isLogged())
{
$DSN_string='mysql:host=**********.eu.mysql;dbname=*************_eu';
$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();}
    }
else{header('Location: login************.php');
}
?>

Fichier html submit - partie PHP -

<?php
session_start();
[color=#0921f0]header("Content-type: text/html; charset=utf-8" );
mb_internal_encoding("UTF-8"); // sinon reste par defaut en iso ISO-8859-1
echo mb_internal_encoding(); //affiche  ISO-8859-1[/color]
require("authentification.php");
if(Authentification::isLogged()){ }else{header('Location: loginsecure.php');}
?>

Fichier html submit - partie HTML -

[color=#0922f5]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">[/color]
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> <!-- OK -->
<!--<meta http-equiv="pragma"  content="no-cache"/> <!-- précise pas de svg dans cache navigatuer ==> pas memo dans fichier temporaire -->
<meta http-equiv="Expires" content="-1" /> <!-- précise date expiration page -->
<title>FORMULAIRE DE DEMANDE D'INFORMATION************</title>
<meta name="description" content="rextre  refrencement" /> <!-- OK -->
<!--<meta http-equiv="Cache-Control" content="must-revalidate, max-age=0, public" />-->
<link rel="stylesheet" href="//***********.eu/onewebstatic/e5de4412f9.css" />
<meta name="MobileOptimized" content="320" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=0" />
<link rel="stylesheet" href="//*********.eu/onewebstatic/0f61860530.css" />
<!-- AJOUT jQuery-->
[color=#0c1cf5]<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js'></script>[/color]
<!-- AJOUT js-->
[color=#0f16f5]<script src="http://********.eu/session*********/scriptformulaire*********.js"></script>[/color]
<!-- fin AJOUT -->
<!--<link rel="stylesheet" href="//*************.eu/onewebstatic/a5a436fc4c.css" />-->
</head>
<body>
<div style="width:900px;min-height:50px;text-align:center;  font-family:Arial;
  font-weight:bold;
  font-size:20px;
  color:#800000;">
<?php
echo "Votre IP est $_SERVER[REMOTE_ADDR]";
?>
</div>
<div>
    <input  id="form_nomprenom" class="form_nomprenom" placeholder="Vos Nom Prénom" maxlength="25" />
    <input  id="form_email" class="form_email" placeholder="adresse_courriel" maxlength="50" />
    <input  id="form_telephone" class="form_telephone" placeholder="Telephones" maxlength="50" />
    <input  id="form_typecontact" class="form_typecontact" placeholder="Statut" maxlength="50" />
    <button id="btn_submit" onclick="submit_form()">Envoyer</button>
 </div>      
    <footer>
    </footer>
</body>
</html>

script .js AUCUNE MODIFICATION

function submit_form(){
// RECUP informations saisies dans le formulaire
  var nomprenom=$('#form_nomprenom').val();
  var email=$('#form_email').val();
  var telephone=$('#form_telephone').val();
  var typecontact=$('#form_typecontact').val();
// ENVOI infos au serveur en ajax
  $.ajax
  (
      {
// url de la page de traitement ajax php AVEC require_once('bdconnect.php');
    url:'http://**********.eu/session*********/formvalidation********.php',
// données à transmettre
   formdata :{ fn:'validate_form', NOMPRENOM:nomprenom, EMAIL:email, TELEPHONE:telephone, TYPECONTACT:typecontact, sid:Math.random()},
    type: 'post',
    complete: function(xhr,result)
        {
// retour serveur au format JSON
   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 +']');}
        }
      }
    );
}

ET FICHIER VALIDATION Encodé et vérifié en UTF8 SANS BOM par Notepad ce ne change par ailleurs rien aux caractères du fichier

<?php
session_start();
//php formvalidation.php doit être encodé en UTF-8 sans BOM, vérifier Ok sans BOM avec notepad le 21 10 2014
// echo mb_internal_encoding(); //SI ACTIF EMPÊCHE LA VALIDATION DU FORMULAIRE
require("authentification.php");
if(!Authentification::isLogged()) { print json_encode(array('message'=>'Utilisateur non authentifié.'));exit; }
function validation_database($nomprenom,$email,$telephone,$typecontact)
{
require_once('bdconnect*******.php');
  try
  {
  $result=$PDOInstance->query("INSERT INTO confid (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;
} // FIN VALIDATION DONNÉES = OK
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) // ==> COMPARAISON 'FN' AVEC QUELLES VALEURS ?  ==>  éxécution code à partir de quelles valeurs ?
{
  default: print json_encode(array('message'=>'Fonction Ajax inconnue / non gérée.'));exit;
  // sortie du switch.
  break;
  case 'validate_form':
      // si données champs formulaire inexistantes ou différents des datas du formulaire
    if(!isset($_POST['NOMPRENOM']) || !isset($_POST['EMAIL']) || !isset($_POST['TELEPHONE']) || !isset($_POST['TYPECONTACT']))
    //if(!isset($_POST['nomprenom']) || !isset($_POST['email']) || !isset($_POST['telephone']) || !isset($_POST['typecontact']))
    //= erreur de champs de données
    {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'];
    // VALIDATION CHAMPS DONNÉES sinon sortie
    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;}
    // VALIDATION BD sinon sortie
    if (validation_database($nomprenom,$email,$telephone,$typecontact)===false)
    {exit;}
    print json_encode(array('message'=>'ok'));
}
?>

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

Hors ligne

#109 24-10-2014 13:26:09

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

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

Hors ligne

#110 26-10-2014 21:10:28

pierrot35
Membre
Inscription : 16-08-2014
Messages : 63

Re : Protéger par un formulaire toutes les IHM d'une même session php

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 :

//EXTRACTION variables cfg ==>  ajout dans JS d'origine
    var TRVar = $("#cfg-element-35-7").val();
    var TRVarEmail = $("#cfg-element-35-37").val();
    var TRVarTelephone = $("#cfg-element-35-41").val();
 [color=#a6a6a6]   //var TRVarIP = $("#iptest").val();
    //var TRVarIP = 'testIP';
    //$TRvarIp = 'testIP';[/color]
    var TRVarInvestPrive = $("#cfg-element-35-39-0").val();
    var TRVarInvestInstitution = $("#cfg-element-35-39-1").val();
    var TRVarInvestCroissance = $("#cfg-element-35-39-2").val();
    var TRVarCreatEntreprise = $("#cfg-element-35-39-3").val();
    var TRVarParticipActif = $("#cfg-element-35-39-4").val();
    var TRVarMarqueBlanche = $("#cfg-element-35-39-5").val();
   
jQuery.post('cfg-contactform-35/inc/form-validation.php', [color=#a6a6a6]// validation d'origine[/color]
{
'captcha_img':captcha_img,
'captcha_input':captcha_input,
'form_value_array':form_value_array,
'TRVariable':TRVar,
'VariableEmail':TRVarEmail,
'VariableTelephone':TRVarTelephone,
[color=#adadad]//'VariableIp':TRVarIp, // encours d'intégration[/color]
'VarInvestPrive':TRVarInvestPrive,
'VarInvestInstitution':TRVarInvestInstitution,
'varInvestCroissance':TRVarInvestCroissance,
'VarCreatEntreprise':TRVarCreatEntreprise,
 'VarParticipActif':TaVarParticipActif,
'VarMarqueBlanche':TRVarMarqueBlanche,
'deleteuploadedfile':deleteuploadedfile_value
},

Puis ajout dans le traitement PHP d'origine en conservant tel quel mon fichier bdconnect.php

[color=#bababa]// Ajout dans le PHP d'origine
                                //'TaVariable':TaVar,
        //'VariableEmail':TaVarEmail,
        //'VariableTelephone':TaVarTelephone,;
        //'VarInvestPrive':TaVarInvestPrive,
        //'VarInvestInstitution':TaVarInvestInstitution,
        //'varInvestCroissance':TaVarInvestCroissance,
        //'VarCreatEntreprise':TaVarCreatEntreprise,
              //'VarParticipActif':TaVarParticipActif,
        //'VarMarqueBlanche':TaVarMarqueBlanche,[/color]
$nomprenom = isset($_POST['TaVariable'])?$_POST['TaVariable']:'sans valeur nomprenom';
$email = isset($_POST['VariableEmail'])?$_POST['VariableEmail']:'sans valeur email';
$telephone = isset($_POST['VariableTelephone'])?$_POST['VariableTelephone']:'sans valeur tel';
$InvestPrive = isset($_POST['VarInvestPrive'])?$_POST['VarInvestPrive']:'sans valeur';
$InvestInstitution = isset($_POST['VarInvestInstitution'])?$_POST['VarInvestInstitution']:'sans valeur Inv Inst';
$InvestCroissance = isset($_POST['varInvestCroissance'])?$_POST['varInvestCroissance']:'sans valeur Inv Croiss';
$CreatEntreprise = isset($_POST['VarCreatEntreprise'])?$_POST['VarCreatEntreprise']:'sans valeur Creat Ent';
$ParticipActif = isset($_POST['VarParticipActif'])?$_POST['VarParticipActif']:'sans valeur Part Actif';
$MarqueBlanche = isset($_POST['VarMarqueBlanche'])?$_POST['VarMarqueBlanche']:'sans valeur Marq Blanc';
//$nomprenom = isset($_POST['cfg-element-35-7'])?$_POST['cfg-element-35-7']:'No_Value';
[color=#b5b5b5]//connexion directe bd[/color]
require_once('bdconnectsecure.php');
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();}
$result=$PDOInstance->query("INSERT INTO matable (nomprenom,email,telephone,InvestPrive,InvestInstitution,InvestCroissance,CreatEntreprise,ParticipActif,MarqueBlanche) VALUES('$nomprenom','$email','$telephone','$InvestPrive','$InvestInstitution','$InvestCroissance','$CreatEntreprise','$ParticipActif','$MarqueBlanche')");

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

Hors ligne

#111 10-11-2014 07:31:50

Jc
Membre
Lieu : Zillisheim - Alsace
Inscription : 15-04-2010
Messages : 1 629
Site Web

Re : Protéger par un formulaire toutes les IHM d'une même session php

Bonjour,

Merci pour ton retour, le plaisir a été pour moi smile
Sinon, pour Notepad++ il y a en effet une différence d'action entre changer l'encodage à l'affichage et à l'écriture du fichier (format fichier). Faudrait consulter la notice.

Bonne journée.


POO PHP+Ajax en MVC avec PDO et Bases de données épaisses  : What else?

Hors ligne

Pied de page des forums