Error Undefiend array key php 8

Eléphanteau du PHP | 17 Messages

08 déc. 2022, 13:53

Bonjour

Je developpe une application avec espace membre et session
en local j'ai un php7.03 les sessions fonctionnent correctement sur un serveur d.1e production qui est en php8.1
les sessions de ne pas reconnu et bloquen l'accessa la page protegee
j'ai une erreur php warning Undefiened array key


if (!$_SESSION["usersadc"] && (!$_SESSION["status"]))

les sessions ne sont pas reconnues

mon code de formulaire de loggin

Code : Tout sélectionner

<?php // on teste si le visiteur a soumis le formulaire de connexion if (isset($_POST['valider']) && $_POST['valider'] == 'Connection') { if ((isset($_POST['usersadc']) && !empty($_POST['usersadc'])) && (isset($_POST['passwd']) && !empty($_POST['passwd']))) { $passwd=(isset($_POST['passwd'])) ? addslashes($_POST['passwd']) : NULL; $usersadc=(isset($_POST['usersadc'])) ? addslashes($_POST['usersadc']) : NULL; $query="select * from users where usersadc='$usersadc' AND passwd='$passwd'"; $res=pg_query($conn,$query) or die('Erreur SQL !<br />'.$sql.'<br />'. pg_last_error($conn)); $data=pg_fetch_array($res); $num=pg_num_rows($res); if ($num == 1 ) { session_start(); $_SESSION['usersadc']=$data['usersadc']; $_SESSION['passwd']= $_POST['passwd']; $_SESSION['status']= $data['status']; header('Location: appli.php'); } else { $erreur="Compte non reconnu, loggin ou mot de passe incorrect"; } }} ?>
code qui pose probleme

Code : Tout sélectionner

<?php session_start(); if (!$_SESSION["usersadc"] && (!$_SESSION["status"])) { header ("location: ./index.php"); die(); } include "php/init.php"; include "inc/header.php"; if (isset($site)) $site=$_GET['site']; ?>
merci de votre aide

Mammouth du PHP | 2703 Messages

08 déc. 2022, 14:19


Eléphanteau du PHP | 17 Messages

08 déc. 2022, 15:02

bonjour

je ne comprends pas le pb

Mammouth du PHP | 1967 Messages

09 déc. 2022, 11:25

Le problème n'est pas que tes session ne sont pas reconnue mais que php 8 et + est plus sévère

tu dois donc utiliser isset ou empty
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Eléphanteau du PHP | 17 Messages

09 déc. 2022, 11:33

bonjour

oui mais ou je dois declarer isset ou empty
je ne comprends pas et je tourne en rond
donne moi juste un exemple
merci

Code : Tout sélectionner

if (isset($_SESSION["usersadc"] && isset($_SESSION["status"]))) { header ("location: ./index.php"); die(); }

Mammouth du PHP | 2703 Messages

09 déc. 2022, 13:34

un exemple :
if (isset($_SESSION["usersadc"] && isset($_SESSION["status"]))) {