Php session : Undefined array key

Résolu
Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   -

Bonjour,
J'ai déjà utilisé ce type de code plusieurs fois, je ne parviens pas à comprendre pourquoi cette fois j'ai : 
Warning: Undefined array key "Lat" in ... on line 10
Warning: Undefined array key "Lon" in ... on line 11
Merci d'avance pour votre aide

session_start();

$LatAca="50.516940637404986";
$LonAca="3.921346839712161";

if (isset($_SESSION['Lat']))
	{
	$latitude=$_POST['Lat'];  ⇐ 10
	$longitude=$_POST['Lon']; ⇐ 11
	}
else
	{
	$latitude=$LatAca;
	$longitude=$LonAca;
	}
$_SESSION['Lat'] = $latitude;
$_SESSION['Lon'] = $longitude;

2 réponses

  1. jee pee Messages postés 9437 Date d'inscription   Statut Modérateur Dernière intervention   9 973
     

    Bonjour,

    Pour tester l'existence de $_SESSION['Lat'] et récupérer $_POST['Lat'] ?


    0
    1. Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   11
       

      Le script s'appelle lui-même.

      Lors du premier appel $_SESSION['Lat'] n'est pas défini, je prends donc les valeurs par défaut.
      Lors des appels suivants $_SESSION['Lat'] est défini donc je prends $_POST['Lat'].

      Voici la form

      <?php
      echo "<center><form action=".basename(__FILE__)." method='post'>";
      echo "<br>
      Latitude <input type='text' size='15' name='Lat' value=".$latitude.">
      Longitude <input type='text' size='15' name='Lon' value=".$longitude.">";
      ?>
      <br>
      <input type='submit' value='Valider' />
      </form>
      0
    2. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention  
       

      Je pense qu'il est possible que $_SESSION['Lat'] soit défini et que $_POST['Lat'] ne soit pas défini.

      Il me semble utile de tester si chacun des $_POST est défini avant de les utiliser.

      0
    3. Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   11 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       

      Je vais essayer

      if (isset($_SESSION['Lat']) AND isset($_POST['Lat']))

      0
    4. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588 > Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention  
       

      Si le script s'appelle lui-même, il est d'autant plus important de vérifier si il est appelé à partir du formulaire, ou pas.

      0
    5. Herve_be Messages postés 1182 Date d'inscription   Statut Membre Dernière intervention   11 > yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention  
       

      Sauf la première fois, il ne peut être appelé qu'à partir du formulaire via

      <form action=".basename(__FILE__)." method='post'>

      c'est la raison des isset : pour savoir si c'est la première fois.

      0