Aller au contenu
  • Pas encore inscrit ?

    Pourquoi ne pas vous inscrire ? C'est simple, rapide et gratuit.
    Pour en savoir plus, lisez Les avantages de l'inscription... et la Charte de Zébulon.
    De plus, les messages que vous postez en tant qu'invité restent invisibles tant qu'un modérateur ne les a pas validés. Inscrivez-vous, ce sera un gain de temps pour tout le monde, vous, les helpeurs et les modérateurs ! :wink:

Messages recommandés

Posté(e)

:-?

Bonjour les zebulons,

 

J'ai une sans doute une erreur de code, mais je ne la trouve pas :

J'ai un espace membre, sur les pages dediées à l'espace membre j'ai inclus une petite fonction pour verifier que le connecté est bien inscrit :

<?PHP
// fichier fonctionAuxiliaires.php
function verif(){
if(!isset($_SESSION['idbees']))
{
exit ('Vous n\'êtes pas connecté au site.  Vous ne pouvez donc pas venir sur cette page.');
}
}
?>

 

Mais cela ne semble pas fonctionner avec cette page :

<?php

include('global/haut.php');

include('global/entete.php');

include('global/menus.php');

include('secu/fonctionsauxiliaires.php');
$_SESSION['idbees']=$_POST['idbees'];
verif();

?>

<!-- Le corps -->

      <div id="corps">

	<form action="trait-demandebe.php" method="post" enctype="multipart/form-data">
<?php  
     echo 'Bonjour ' . $_SESSION['idbees'] . ' vous êtes disponible :';	
?>

<fieldset><label><legend>

</legend></label>


<p><label> De la période du:</label>
<select name="j_d_p" id="j_d_p" > <?php
   for ($nombre_de_lignes = 1; $nombre_de_lignes <= 31; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select>
 <select name="m_d_p" id="m_d_p" > <?php
   for ($nombre_de_lignes = 1; $nombre_de_lignes <= 12; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select>
 <select name="a_d_p" id="a_d_p" > <?php
   for ($nombre_de_lignes = 2010; $nombre_de_lignes <= 2020; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select>
 au  <select name="j_f_p" id="j_f_p" > <?php
   for ($nombre_de_lignes = 1; $nombre_de_lignes <= 31; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select>
 <select name="m_f_p" id="m_f_p" > <?php
   for ($nombre_de_lignes = 1; $nombre_de_lignes <= 12; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select>
 <select name="a_f_p" id="a_f_p" > <?php
   for ($nombre_de_lignes = 2010; $nombre_de_lignes <= 2020; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?></select></p>

 <h6>merci de cocher la case des jours correspondants à vos disponibilités</h6>
<p><label for="lun">Lundi de:</label><input type="checkbox" /> <select name="lun_hdeb" id="lun_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h. <select name="lun_mdeb" id="lun_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="lun_hfin" id="lun_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h. <select name="lun_mfin" id="lun_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="mar" id="mar"  value="mar"/> <label for="mar">Mardi de</label> <select name="mar_hdeb" id="mar_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="mar_mdeb" id="mar_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="mar_hfin" id="mar_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="mar_mfin" id="mar_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="mer" id="mer" value="mer"/> <label for="mer">Mercredi de</label> <select name="mer_hdeb" id="mer_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="mer_mdeb" id="mer_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="mer_hfin" id="mer_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="mer_mfin" id="mer_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="jeu" id="jeu" value="jeu"/> <label for="jeu">Jeudi de</label> <select name="jeu_hdeb" id="jeu_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="jeu_mdeb" id="jeu_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="jeu_hfin" id="jeu_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="jeu_mfin" id="jeu_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="ven" id="ven" value="ven"/> <label for="jeu">Vendredi de</label> <select name="ven_hdeb" id="ven_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="ven_mdeb" id="ven_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="ven_hfin" id="ven_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="ven_mfin" id="ven_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="sam" id="sam" value="sam"/> <label for="sam">Samedi de</label> <select name="sam_hdeb" id="sam_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="sam_mdeb" id="sam_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="sam_hfin" id="sam_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="sam_mfin" id="sam_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
<p><input type="checkbox" name="dim" id="dim" value="dim"/> <label for="dim">Dimanche de</label> <select name="dim_hdeb" id="dim_hdeb"> 
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select> h <select name="dim_mdeb" id="dim_mdeb">
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>min. à<select name="dim_hfin" id="dim_hfin">
<?php
   for ($nombre_de_lignes = 6; $nombre_de_lignes <= 23; $nombre_de_lignes++)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
</select>h <select name="dim_mfin" id="dim_mfin" > 
<?php
   for ($nombre_de_lignes = 0; $nombre_de_lignes <= 55; $nombre_de_lignes+=5)
   {
      echo sprintf('<option value="'.$nombre_de_lignes.'">%02d</option>', $nombre_de_lignes);
   }
 ?>
 </select>min.</p>
</fieldset>
<p


       <input type="submit" value="Validez" />
       </p>

</form>

</div>

<br />
   <?php include("global/pdp.php"); ?>    

</html>

 

dont le traitement est :

<?php
try
{
   $bdd = new PDO('mysql:host=localhost;dbname=sport', 'root', '');
   $bdd -> setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

   //Pour catcher d'éventuelle erreurs supp 
   $req = "INSERT INTO demande(idbees, date_dp, date_fp, heure_lud, heure_luf, heure_mad, heure_maf, heure_med, heure_mef, heure_jed, heure_jef, heure_ved, heure_vef, heure_sad, heure_saf, heure_did, heure_dif)";
   $req .= " VALUES ";
   $req .= "(:idbees, :date_dp, :date_fp, :heure_lud, :heure_luf, :heure_mad, :heure_maf, :heure_med, :heure_mef, :heure_jed, :heure_jef, :heure_ved, :heure_vef, :heure_sad, :heure_saf, :heure_did, :heure_dif)";
   $req = $bdd -> prepare($req);

$req->bindValue(':idbees', $_SESSION['idbees'], PDO::PARAM_INT);

$date_dp = NULL;
   if(isset($_POST['a_d_p']) and isset($_POST['m_d_p']) and isset($_POST['j_d_p']))
       $date_dp =  $_POST['a_d_p']. '-' . $_POST['m_d_p']. '-' . $_POST['j_d_p'];
   $req->bindValue(':date_dp', $date_dp, PDO::PARAM_STR);
   $date_fp = NULL;
   if(isset($_POST['a_f_p']) and isset($_POST['m_f_p']) and isset($_POST['j_f_p']))
       $date_fp =  $_POST['a_f_p']. '-' . $_POST['m_f_p']. '-' . $_POST['j_f_p'];
   $req->bindValue(':date_fp', $date_fp, PDO::PARAM_STR);

   $heure_lud = NULL;
   $heure_luf = NULL;
   if(isset($_POST['lun']))
   {
       $heure_lud= $_POST['lun_hdeb']. ':' . $_POST['lun_mdeb']. ':' . "00";
       $heure_luf= $_POST['lun_hfin']. ':' . $_POST['lun_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_lud', $heure_lud, PDO::PARAM_STR);
   $req->bindValue(':heure_luf', $heure_luf, PDO::PARAM_STR);

   $heure_mad = NULL;
   $heure_maf = NULL;
   if(isset($_POST['mar']))
   {
       $heure_mad= $_POST['mar_hdeb']. ':' . $_POST['mar_mdeb']. ':' . "00";
       $heure_maf= $_POST['mar_hfin']. ':' . $_POST['mar_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_mad', $heure_mad, PDO::PARAM_STR);
   $req->bindValue(':heure_maf', $heure_maf, PDO::PARAM_STR);		

   $heure_med = NULL;
   $heure_mef = NULL;
   if(isset($_POST['mer']))
   {
       $heure_med= $_POST['mer_hdeb']. ':' . $_POST['mer_mdeb']. ':' . "00";
       $heure_mef= $_POST['mer_hfin']. ':' . $_POST['mer_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_med', $heure_med, PDO::PARAM_STR);
   $req->bindValue(':heure_mef', $heure_mef, PDO::PARAM_STR);	

   $heure_jed = NULL;
   $heure_jef = NULL;
   if(isset($_POST['jeu']))
   {
       $heure_jed= $_POST['jeu_hdeb']. ':' . $_POST['jeu_mdeb']. ':' . "00";
       $heure_jef= $_POST['jeu_hfin']. ':' . $_POST['jeu_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_jed', $heure_jed, PDO::PARAM_STR);
   $req->bindValue(':heure_jef', $heure_jef, PDO::PARAM_STR);

   $heure_ved = NULL;
   $heure_vef = NULL;
   if(isset($_POST['ven']))
   {
       $heure_ved= $_POST['ven_hdeb']. ':' . $_POST['ven_mdeb']. ':' . "00";
       $heure_vef= $_POST['ven_hfin']. ':' . $_POST['ven_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_ved', $heure_ved, PDO::PARAM_STR);
   $req->bindValue(':heure_vef', $heure_vef, PDO::PARAM_STR);		

   $heure_sad = NULL;
   $heure_saf = NULL;
   if(isset($_POST['sam']))
   {
       $heure_sad= $_POST['sam_hdeb']. ':' . $_POST['sam_mdeb']. ':' . "00";
       $heure_saf= $_POST['sam_hfin']. ':' . $_POST['sam_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_sad', $heure_sad, PDO::PARAM_STR);
   $req->bindValue(':heure_saf', $heure_saf, PDO::PARAM_STR);			

   $heure_did = NULL;
   $heure_dif = NULL;

   if(isset($_POST['dim'])) {
       $heure_did= $_POST['dim_hdeb']. ':' . $_POST['dim_mdeb']. ':' . "00";
       $heure_dif= $_POST['dim_hfin']. ':' . $_POST['dim_mfin']. ':' . "00";
   }
   $req->bindValue(':heure_did', $heure_did, PDO::PARAM_STR);
   $req->bindValue(':heure_dif', $heure_dif, PDO::PARAM_STR);			


   $req->execute();


           echo 'La demande est enregistrée';

   echo '<p>Si vous voulez changer certaines information avant l\'envoi de votre profil <a href="demandebe.php">merci de cliquer ici</a> pour revenir au formulaire initial</p>';

}
catch (Exception $e)
{
       echo 'Erreur : ' . $e->getMessage();
}
?>

 

Quelqu'un peut il m'aider merci beaucoup

Posté(e)

Je ne vois pas d'appel à session_start(), est-ce normal ?

Ca expliquerait pourquoi les données que tu "stockes" dans $_SESSION semblent se perdre quelque part...

 

Autre chose :

$_SESSION['idbees']=$_POST['idbees'];
verif();

tu devrais séparer le remplissage de la session suite à l'authentification d'un utilisateur et le chargement des pages de cet utilisateur (i.e. avoir une page qui sert uniquement au login + chargement de la session depuis la BDD, et que cette page fasse une redirection vers les pages de contenu qui contiennent, elles, une vérification de l'authentification de l'utilisateur). Mélanger les deux comme le font ces deux lignes, ça ne m'inspire pas confiance... d'autant moins confiance si tu écrases systématiquement la variable de session avec les données POSTées dans cette page (une fois authentifiés tes utilisateurs continuent à poster leur "idbees" quand ils chargent cette page ? ...)

Posté(e)

En fait je veux juste que le membre n'ai pas à resaisir son idbee sur chaque formulaire, que son idbees soit enregistré dans la bdd, c'est pour cela que j'ai voulu faire simple.

 

J'ai du faire une erreur de code mais la fonction est ok mais ne fonctionne pas quand je veux recuperer l'id au remplissage du formulaire c'est ce que je ne comprends pas puisque idbees est dans le traitement et dans la table...

Posté(e)
(...) tu écrases systématiquement la variable de session avec les données POSTées dans cette page (...)
Forcément, à un moment, ce que tu avais sauvé le coup d'avant va être écrasé...
Posté(e)
tu devrais séparer le remplissage de la session suite à l'authentification d'un utilisateur et le chargement des pages de cet utilisateur (i.e. avoir une page qui sert uniquement au login + chargement de la session depuis la BDD, et que cette page fasse une redirection vers les pages de contenu qui contiennent, elles, une vérification de l'authentification de l'utilisateur).
Posté(e)

Oui je sais que vous avez raison kewlcat et toi, mais c'est un peu compliqué à réaliser pour moi.

 

A l'heure actuelle j'ai un formulaire d'inscription et de connexion qui fonctionne, le seul truc c'est que je veux que les infos des formulaires réservés aux membres puissent être redirigés vers une autre bdd.

 

Je ne vois pas comment ameliorer mon script simplement :outch:

Posté(e)

Si tu ne peux pas faire cette "séparation" alors il faut modifier le code actuel pour n'écraser les données de session que lorsque le formulaire correspondant à l'authentification est POSTé (et validé, cela va de soi...) ce qui signifie que la validation ne doit pas être faite sur les données qui sont stockées en session mais sur les données qui ont été POSTées, puisque par la suite tu considères que si les données de session sont présentes c'est qu'elles sont valides !

 

En ce qui concerne la possibilité de changer de base de données, je ne vois pas ce qui pourrait coincer vu que tout ce que tu aurais à faire c'est de changer la "connect-string" que tu passes à new PDO() ...

Posté(e)

Ben je croyais que c'était traité puisque mon id figure dans la fonction, est repris dans le formulaire un peu plus bas pour dire bonjour au membre... là ca parait simple mais je bloque... désolé

Posté(e)

Qu'on soit bien d'accord sur le fonctionnement du code tel qu'il est écrit actuellement, à chaque chargement de page, on fait :

1) écrasement des données de session avec les données postées (même s'il n'y en a pas)

2) "vérification" de la présence des données de session (sans les comparer au contenu de la base de données)

 

C'est bien ça ?

 

Au fait, tu n'as pas réagi à ma première question : où fais-tu le session_start() ?

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.
Remarque : votre message nécessitera l’approbation d’un modérateur avant de pouvoir être visible.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

  • En ligne récemment   0 membre est en ligne

    • Aucun utilisateur enregistré regarde cette page.
×
×
  • Créer...