Php session : Undefined array key

Résolu
Herve_be Messages postés 1094 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025 - 28 mars 2025 à 10:59
yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 - 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;

2 réponses

jee pee Messages postés 41145 Date d'inscription mercredi 2 mai 2007 Statut Modérateur Dernière intervention 17 avril 2025 9 592
28 mars 2025 à 11:15

Bonjour,

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


0
Herve_be Messages postés 1094 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025 10
28 mars 2025 à 11:41

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 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 1 577 > Herve_be Messages postés 1094 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025
28 mars 2025 à 13:02

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 mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025 10 > yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025
28 mars 2025 à 13:12

Je vais essayer

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

0
yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025 1 577 > Herve_be Messages postés 1094 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025
28 mars 2025 à 17:10

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 mercredi 4 août 2010 Statut Membre Dernière intervention 9 avril 2025 10 > yg_be Messages postés 23526 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 avril 2025
28 mars 2025 à 17:34

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 38466 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 18 avril 2025 4 741
28 mars 2025 à 20:48
0