Php session : Undefined array key

Résolu
Herve_be Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   -  
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   - 29 mars 2025 à 10:41

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;
A voir également:

2 réponses

jee pee Messages postés 41233 Date d'inscription   Statut Modérateur Dernière intervention   9 629
 

Bonjour,

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


0
Herve_be Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   10
 

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
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   1 581 > Herve_be Messages postés 1094 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
Herve_be Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   10 > yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention  
 

Je vais essayer

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

0
yg_be Messages postés 23538 Date d'inscription   Statut Contributeur Dernière intervention   1 581 > Herve_be Messages postés 1094 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
Herve_be Messages postés 1094 Date d'inscription   Statut Membre Dernière intervention   10 > yg_be Messages postés 23538 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
jordane45 Messages postés 38472 Date d'inscription   Statut Modérateur Dernière intervention   4 745
 
0