2016-05-07 13 views
1

ich meine $_SESSION var initialisieren, aber ich habe diese Fehler, wenn ich den Index starten, ohne das Formular abschicken:

if(!empty($_POST)){ 
    $_SESSION['idZone'] = 0; 
    $_SESSION['idSalle'] = 0; 
    $_SESSION['idUtilisateur'] = 0; 
    $_SESSION['dateDebut'] = 0 ; 
    $_SESSION['dateFin'] = 0; 
} 
?> 

Screenshot of Errors

Das ist mein voller Code:

<?php 
include('fonctionsBDD.php'); 
$bdd = connectionBDD(); 

session_start(); 

if(!empty($_POST)){ 
    $_SESSION['idZone'] = 0; 
    $_SESSION['idSalle'] = 0; 
    $_SESSION['idUtilisateur'] = 0; 
    $_SESSION['dateDebut'] = 0 ; 
    $_SESSION['dateFin'] = 0; 
} 
?> 

<!-- Choix des filtres à afficher --> 
<p>Quels filtres afficher ?</p> 
<form action="" method="POST"> 
    <input type="checkbox" name="cbx-zones">Zones</input> 
    <input type="checkbox" mname="cbx-salles">Salles</input> 
    <input type="checkbox" name="cbx-dates">Date</input> 
    <input type="checkbox" name="cbx-heures">Heures</input> 
    <p><input type="submit" /></p> 
</form> 

<!-- Zone filtres --> 
<div class="FiltreSalle"> 
    <form action="" method="POST"> 
    <?php 
    if (isset($_POST['cbx-zones'])) { 
     /* COntenu d'un filtre ici */ 
    } 
    ?> 
<!-- Filtre par Area Name--> 
    <form action="" method="POST"> 
     <br /><br /> 
     <label>Choisir la zone </label><br /> 
     <select name="zone"> 
      <?php echo "<option unselected>- - - Choisissez une zone - - - </option>\n"; 
    $reponseSalle = $bdd->query('SELECT * FROM mrbs_area ORDER BY area_name'); 

     while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ)) { 
     ?> 
      <option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->area_name; ?></option> 
     <?php 
     } 
     ?> 
     </select> 

     <!-- Filtre par salle --> 
     <br /><br /> 

     <label>Choisir la salle</label><br /> 
     <select name="salle"> 
      <?php echo "<option unselected>- - - Choisissez une salle - - - </option>\n"; 
     $reponseSalle = $bdd->query('SELECT * FROM mrbs_room ORDER BY room_name'); 

     while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ)) { 
     ?> 
      <option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->room_name; ?></option> 
     <?php 
     } 
     ?> 
     </select> 

     <!-- Filtre par utilisateurs--> 
     <br /><br /> 
     <label>Choisir l'utilisateur</label><br /> 
     <select name="utilisateur"> 
      <?php echo "<option unselected>- - - Choisissez un utilisateur - - - </option>\n"; 
     $reponseSalle = $bdd->query('SELECT * FROM mrbs_users ORDER BY name'); 

     while ($donnees = $reponseSalle->fetch(PDO::FETCH_OBJ)) { 
     ?> 
      <option value="<?php echo $donnees->id; ?>"> <?php echo $donnees->name; ?></option> 
     <?php 
     } 
     ?> 
     </select> 

     <!-- Filtres par DatePicker --> 
     <br /> <br /> 
<script> 
$(function() { 
    $("#from").datepicker({ 
     defaultDate: "+1d", 
     changeMonth: true, 
     numberOfMonths: 1, 
     dateFormat : '@', 
     onClose: function(selectedDate) { 
      $("#to").datepicker("option", "minDate", selectedDate); 
     } 
    }); 
    $("#to").datepicker({ 
     defaultDate: "+1w", 
     changeMonth: true, 
     numberOfMonths: 1, 
     dateFormat : '@', 
     onClose: function(selectedDate) { 
      $("#from").datepicker("option", "maxDate", selectedDate); 
      var currentDate = $(".selector").datepicker("getDate"); 
     } 
    }); 
}); 
</script> 
     <label for="from">Du</label> 
     <input type="text" id="from" name="from"> 
     <label for="to">Au</label> 
     <input type="text" id="to" name="to"> 
     <input type='submit' value='Submit'><br /><br /> 
    </form> 
    <!-- Traitement des données --> 
<?php 
$_SESSION['idZone'] = $_POST['zone']; 
$_SESSION['idSalle'] = $_POST['salle']; 
$_SESSION['idUtilisateur'] = $_POST['utilisateur']; 
$_SESSION['dateDebut'] = $_POST["from"]; 
$_SESSION['dateFin'] = $_POST["to"]; 

echo('La zone séléctionnée est :' . $_SESSION['idZone'] . '<br />'); 
echo('La salle séléctionnée est :' . $_SESSION['idSalle'] . '<br />'); 
echo('L utilisateur séléctionné est :' . $_SESSION['idUtilisateur'] . '<br />'); 
echo('La date de début séléctionnée est :' . $_SESSION['dateDebut'] . '<br />'); 
echo('La date de fin séléctionnée est :' . $_SESSION['dateFin'] . '<br />');  
?> 

Ich denke meine Initialisierung ist nicht gut, aber ich weiß nicht warum. Wenn mir jemand helfen kann :)

+0

Welche Linie ist Linie 199? –

+0

Sind Sie sicher, dass der Dateiname si enthält ('fonctionsBDD.php'); und nicht funktionierenBDD.php? – scaisEdge

+3

die Farben auf diesem Bildschirm machen den Text sehr schwer zu lesen – Martin

Antwort

2

Ein bester Weg, Sitzungen mit wird die Sitzung immer an erster Stelle in der Datei vor jedem anderen Code gestartet werden soll. so

<?php 
session_start() ; 

include('fonctionsBDD.php'); 
$bdd = connectionBDD(); 
..... 
+0

Okay, danke :) –

1

Sie wollen initialisieren wenn die Werte NICHT gepostet werden, oder?

so, loszuwerden der !

if(empty($_POST)){ 
     $_SESSION['idZone'] = 0; 
     $_SESSION['idSalle'] = 0; 
     $_SESSION['idUtilisateur'] = 0; 
     $_SESSION['dateDebut'] = 0 ; 
     $_SESSION['dateFin'] = 0; 
    } 
    ?> 
+0

Ja, um Fehler zu vermeiden. Es ist das gleiche ohne! –

1

Dieser Teil des Codes auf einer POST setzt (am unteren Rand des Skripts), und Sie überprüfen nicht für die Post:

<?php 
$_SESSION['idZone'] = $_POST['zone']; 
$_SESSION['idSalle'] = $_POST['salle']; 
$_SESSION['idUtilisateur'] = $_POST['utilisateur']; 
$_SESSION['dateDebut'] = $_POST["from"]; 
$_SESSION['dateFin'] = $_POST["to"]; 


echo('La zone séléctionnée est :' . $_SESSION['idZone'] . '<br />'); 
echo('La salle séléctionnée est :' . $_SESSION['idSalle'] . '<br />'); 
echo('L utilisateur séléctionné est :' . $_SESSION['idUtilisateur'] . '<br />'); 
echo('La date de début séléctionnée est :' . $_SESSION['dateDebut'] . '<br />'); 
echo('La date de fin séléctionnée est :' . $_SESSION['dateFin'] . '<br />');  
?> 

Sie wollen if verwenden, da Sie möglicherweise am oberen Rand der Seite zugewiesen wird:

if(isset($_SESSION['idZone'])) 
    echo 'La zone séléctionnée est :'.$_SESSION['idZone'].'<br />'; 

if(isset($_SESSION['idSalle'])) 
    echo 'La salle séléctionnée est :'.$_SESSION['idSalle'].'<br />'; 

if(isset($_SESSION['idUtilisateur'])) 
    echo 'L utilisateur séléctionné est :'.$_SESSION['idUtilisateur'].'<br />'); 

if(isset($_SESSION['dateDebut'])) 
    echo 'La date de début séléctionnée est :'.$_SESSION['dateDebut'].'<br />'); 

if(isset($_SESSION['dateFin'])) 
    echo 'La date de fin séléctionnée est :'.$_SESSION['dateFin'].'<br />'); 

und entfernen Sie alle diese am Boden:

$_SESSION['idZone'] = $_POST['zone']; 
$_SESSION['idSalle'] = $_POST['salle']; 
$_SESSION['idUtilisateur'] = $_POST['utilisateur']; 
$_SESSION['dateDebut'] = $_POST["from"]; 
$_SESSION['dateFin'] = $_POST["to"]; 
+1

Ich teste deine Lösung :)! Es ist perfekt, danke :)! –

+0

Ich habe gerade aktualisiert, stellen Sie sicher, dass ich den Teil gelöscht habe, den ich notiert habe, dieser Teil zeichnet die Fehler, wenn Sie zu der Seite navigieren, wenn Sie nicht darauf posten, – Rasclatt

+0

Hat das nicht funktioniert oder warum der Rückzug? – Rasclatt

Verwandte Themen