PHP|Débutant :: Forums

Advertisement

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

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

#1 10-04-2016 21:56:50

Gaston39
Membre
Inscription : 10-04-2016
Messages : 5

Récupération des données d'un formulaire

Bonjour,

Je sais récupérer les données d'un formulaire PHP dans une base de données MySQL lorsque je créer la page du formulaire.
Mais là, je suis bloqué car je dois récupérer les données d'un formulaire HTML d'un portail captif qui enregistre les logs de connexion sur un NAS.
Donc je n'ai pas le droit de trop modifier le fichier de base.

Je souhaite créer un fichier nommé ajout.php pour récupérer les champs du formulaire, mais lorsque je regarde le fichier HTML du portail captif, je n'arrive pas à les identifier.

Pouvez-vous me guider ?

Voici un bout du code du formulaire ci-dessous :

         
      <form class="loginHotel activeHotel" method="post" action="ajout.php" name="form1">
        <div class="hloginTop">
          <div class="hlogo"></div>
        </div>
          <div class="Titletextword">
            Conditions d'utilisation d'Internet
          </div>
          <div align="center">
            <label>(Merci de bien vouloir remplir le formulaire)</label>
          </div>
          <div>
          <div>
        <table width="320" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
          <td id="td1">Nom :</td>
          <td colspan="2"><input type="text" name="field1" id="field1"/></td>
          </tr>
          <tr>
          <td id="td2">Prénom :</td>
          <td colspan="2"><input type="text" name="field2" id="field2"/></td>
          </tr>
          <tr>
          <td id="td3">Téléphone :</td>
          <td colspan="2"><input type="text" name="field3" id="field3"/></td>
          </tr>
          <tr>
          <td id="td4">Ville :</td>
          <td colspan="2"><input type="text" name="field4" id="field4"/></td>
          </tr>
          <tr>
          <td id="td5">E-mail :</td>
          <td colspan="2"><input type="text" name="field5" id="field5"/></td>
          </tr>
        </table>
        <input type="hidden" name="fieldname" value=""/>
        <input type="hidden" name="agree" value="Agree"/>
        </div>
        <div class="bottom">
          <input type="button" name="disagree" onclick="doClose();" value="  Refuser  "  class="buttonBtoom">
          <input type="button" name="btn" value="  Accepter  "  onclick="sendSubmit();" class="buttonBtoom">
          <div class="clear"></div>
        </div>
      </form>
 

Hors ligne

#2 11-04-2016 08:28:59

tof73
Membre
Inscription : 21-12-2014
Messages : 156
Site Web

Re : Récupération des données d'un formulaire

le nom des champs est dans name="nomduchamp"
donc $_POST['field1'] en php

Hors ligne

#3 11-04-2016 20:52:12

Gaston39
Membre
Inscription : 10-04-2016
Messages : 5

Re : Récupération des données d'un formulaire

Bonjour tof73,

Merci pour la réponse, je vais essayer et je reviens vers le forum pour vous donner le résultat.

Bonne soirée

Gaston

Hors ligne

#4 11-04-2016 21:29:48

Gaston39
Membre
Inscription : 10-04-2016
Messages : 5

Re : Récupération des données d'un formulaire

Bonsoir,

J'ai modifié mon fichier ajout.php, mais je ne dois pas faire ce qu'il faut.

Pouvez-vous m'aider ?

Voici le code complet des 2 pages :

accueil.html


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Accueil</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<link id="ua_image_id" rel="shortcut icon" href="images/favicon.ico" type="image/x-icon">
<link id="ua_css_id" rel="stylesheet" media="all" type="text/css" href="ua.css">
<script language="JavaScript">
  var external = getQueryString("gw_addr");
  var preview = (external!="preview");
  var url = window.location;
  /* Please do not rewrite this function */
  function css_rewrite(){
    var css = document.getElementById("ua_css_id");
    var image = document.getElementById("ua_image_id");
    var css_filename  = "customize/ua.css";
    var image_filename  = "customize/images/logo.ico";
    if (url.href.indexOf("file:///") == -1){
      if(external==""){
        css.href = css_filename;
        image.href = image_filename;
      }else{
        css.href = "ua.css";
        image.href = "images/logo.ico";
      }    
    }
  }
  css_rewrite();
  /* Please do not rewrite this function */
  function action(){
    document.form1.action = preview ? external +"/agree.cgi" : "";
    document.getElementById("uamask").style.display = preview ? "none" : "block";
  }
  /* Please do not rewrite this function */
  function getQueryString( paramName ){
    paramName = paramName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]").toLowerCase();
    var reg = "[\\?&]"+paramName +"=([^&#]*)";
    var regex = new RegExp( reg );
    var regResults = regex.exec( window.location.href.toLowerCase() );
    if( regResults == null ) return "";
    else return regResults [1];
  }
  /* close window function */
  function doClose(){
    var r=confirm("La fenêtre va se fermer.")
    if (r == true){
      window.opener=null;
      window.open("","_self");
      window.close();
    }
  }
  function sendSubmit(){
    var f1 = document.getElementById("field1").value;
    var f2 = document.getElementById("field2").value;
    var f3 = document.getElementById("field3").value;
    var f4 = document.getElementById("field4").value;
    var f5 = document.getElementBuId("field5").value;
    if(f1=="" || f2=="" || f3=="" || f4=="" || f5==""){
      alert("Veuillez remplir vos informations personnelles");
    }else{
      var field = 6; /*If you want to change the number of columns, please rewrite field value.*/
      var lable = "";
      for(var i=1; i <= field; i++){
        var table = document.getElementById("td"+i);
        lable += table.innerHTML + "!@#";
      }
      /*get label value*/
      document.form1.fieldname.value = lable;
      document.form1.submit();
    }
  }
</script>
</head>
<body class="bg" onload="action();">
<div class="wrapper" >
  <div class="content">
    <div id="form_wrapper" class="form_wrapper">
      <form class="loginHotel activeHotel" method="post" action="ajout.php" name="form1">
        <div class="hloginTop">
          <div class="hlogo"></div>
        </div>
          <div class="Titletextword">
            Conditions d'utilisation d'Internet
          </div>
          <div align="center">
            <label>(Merci de bien vouloir remplir le formulaire)</label>
          </div>
          <div>
          <div>
        <table width="320" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
          <td id="td1">Nom :</td>
          <td colspan="2"><input type="text" name="field1" id="field1"/></td>
          </tr>
          <tr>
          <td id="td2">Prénom :</td>
          <td colspan="2"><input type="text" name="field2" id="field2"/></td>
          </tr>
          <tr>
          <td id="td3">Téléphone :</td>
          <td colspan="2"><input type="text" name="field3" id="field3"/></td>
          </tr>
          <tr>
          <td id="td4">Ville :</td>
          <td colspan="2"><input type="text" name="field4" id="field4"/></td>
          </tr>
          <tr>
          <td id="td5">E-mail :</td>
          <td colspan="2"><input type="text" name="field5" id="field5"/></td>
          </tr>
        </table>
        <input type="hidden" name="fieldname" value=""/>
        <input type="hidden" name="agree" value="Agree"/>
        </div>
        <div class="bottom">
          <input type="button" name="disagree" onclick="doClose();" value="  Refuser  "  class="buttonBtoom">
          <input type="button" name="btn" value="  Accepter  "  onclick="sendSubmit();" class="buttonBtoom">
          <div class="clear"></div>
        </div>
      </form>
    </div>
  <div class="clear"></div>
  </div>
</div>
<div id="uamask" class="uamask"></div>
</body>
</html>
 

ajout.php


 <?php

if(isset($_POST['field1']))      $nom=$_POST['field1'];
else      $nom="";

if(isset($_POST['field2']))      $prenom=$_POST['field2'];
else      $prenom="";

if(isset($_POST['field3']))      $tel=$_POST['field3'];
else      $tel="";

if(isset($_POST['field4']))      $ville=$_POST['field4'];
else      $ville="";

if(isset($_POST['field5']))      $email=$_POST['field5'];
else      $email="";

if(empty($nom) OR empty($prenom) OR empty($tel) OR empty($ville) OR empty($email))
    {
    echo '<font color="red">Attention, tous les champs sont obligatoire !</font>';
    }


else    
    {

$db = mysql_connect('localhost', 'root', 'password')  or die('Erreur de connexion '.mysql_error());


    mysql_select_db('db_host',$db)  or die('Erreur de selection '.mysql_error());
   

    $sql = "INSERT INTO infos_tbl(id, nom, prenom, tel, ville, email) VALUES('','$nom','$prenom','$tel','$ville','$email')";
   

    mysql_query($sql) or die('Erreur SQL !'.$sql.'<br>'.mysql_error());


    echo 'Vos infos on été ajoutées.';

    mysql_close();
    }
?>
 

Hors ligne

#5 12-04-2016 08:42:54

Jc2
Membre
Lieu : Zillisheim - Alsace
Inscription : 23-03-2016
Messages : 12
Site Web

Re : Récupération des données d'un formulaire

Bonjour,

Attention, dans cette ligne:


$sql = "INSERT INTO infos_tbl(id, nom, prenom, tel, ville, email) VALUES('','$nom','$prenom','$tel','$ville','$email')";
 

si le nom ou prénom voir la ville contiennent une apostrophe, cela générera une erreur. Il vous faut échapper les chaînes avec addslashes().

De plus le formulaire n'est pas soumit en http mais en javascript via la fonction sendSubmit() et donc peut être à un autre fichier que ajout.php

++

Hors ligne

#6 12-04-2016 18:04:49

Gaston39
Membre
Inscription : 10-04-2016
Messages : 5

Re : Récupération des données d'un formulaire

Bonjour JC2,

Merci pour ces infos !
Que me conseillez-vous, je ne suis pas programmeur ni informaticien, c'est juste que je souhaite me mettre en conformité avec la loi sur l'enregistrement des logs de connexion sur un hot spot WiFi gratuit dans mon établissement en obligeant l'utilisateur à entrer quelques informations personnelles de façon à mettre à jour mon fichier client, car mon prédécesseur ne le faisait pas.
Dois-je tout reprendre en risquant de ne plus pouvoir enregistrer les connexions sur le NAS ou de corriger les pages par défaut du fabricant du hot spot ?
J'aimerais quand même réussir à modifier la page d'accueil de façon à avoir les Nom, Prénom, téléphone, mail, et la ville de mes clients.

Bonne soirée,

Gaston

Hors ligne

#7 12-04-2016 20:33:38

Jc2
Membre
Lieu : Zillisheim - Alsace
Inscription : 23-03-2016
Messages : 12
Site Web

Re : Récupération des données d'un formulaire

Bonsoir,

Votre démarche est bonne, cependant cela vous responsabilise aussi vis-à-vis de vos clients car vous vous devez de protéger leur informations personnelles, via une connexion sécurisée (https).

Bonne soirée

Hors ligne

#8 13-04-2016 11:26:33

Gaston39
Membre
Inscription : 10-04-2016
Messages : 5

Re : Récupération des données d'un formulaire

Bonjour JC2,

Oui en effet, le Hot Spot fourni bien une connexion sécurisée en https.
C'est pour cela que je souhaite juste arriver sur une page HTML via le portail captif.
Celle-ci rappelle les conditions d'utilisation de la connexion Internet dans nos locaux avec un formulaire simple Nom, prénom, téléphone, ville et mail pour alimenter mon fichier clients par la même occasion.
J'utilise les données remplies par les utilisateurs uniquement dans un but de statistiques et de suivi de qualité de nos services.
Un questionnaire de satisfaction sera envoyé par mail à nos clients pour l'amélioration de nos services et l'évaluation de notre structure d'accueil.

Merci pour votre réponse,

Cordialement,

Gaston

Hors ligne

Pied de page des forums