IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Unset fatale error sur une array $_SESSION


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 137
    Points : 92
    Points
    92
    Par défaut Unset fatale error sur une array $_SESSION
    Hello,

    voici l'erreur :

    Fatal error: Cannot unset string offsets in C:\wamp\www\test\menu_admin_form_1.php on line 26

    voici le bout de code en question :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_SESSION['error_1'][$x][1]))
    			{
    				unset($_SESSION['error_1'][$x][1]);
    			}
    Après quelque recherche sur le web, il est écrit dans les commentaire ici http://php.net/manual/fr/function.unset.php
    le commentaire de "Andreas 24-Sep-2010 05:51" et il dit "You can not unset a numeric key of an array, if key is a string. See this example:" je sais pas si je suis juste mais je crois que je dois transformer en intval ?

  2. #2
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    J'ai testé ton code, en faisant diverses initialisations, j'ai jamais eu de fatal error, juste quelques warning quand le $x était pas initialisé. La version de PHP que j'utilise est 5.2.8, et toi ?

    Que vaut donc ton $x dans ton cas ? Est-il bien initialisé ?
    Et que donne var_dump($_SESSION['error_1']) ?

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    137
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 137
    Points : 92
    Points
    92
    Par défaut mon code et le var_dump
    alors voici le code un peu plus complet initialisé par une boucle for

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
     
    	for($x=1;$x<=$_SESSION['ma_y'];$x++)
    	{
    		// ma_nom_menu
    		if (preg_match('#^[a-zÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿA-Z0-9_. ]{1,20}$#i', $_POST['ma_nom_menu'.$x]))
    		{
    			if(isset($_SESSION['error_1'][$x][1]))
    			{
    				unset($_SESSION['error_1'][$x][1]);
    			}
    			$_SESSION['memory_1'][1] = $_POST['ma_nom_menu'.$x];
    		}
    		else
    		{
    			$_SESSION['error_1'][$x][1] = 'Caractères non autorisés';
    			$_SESSION['memory_1'][1] = $_POST['ma_nom_menu'.$x];
    		}		
    		// ma_description
    		if (preg_match('#^[a-zÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿA-Z0-9_. ]{1,250}$#i', $_POST['ma_description'.$x]))
    		{
    			if(isset($_SESSION['error_1'][$x][2]))
    			{
    				unset($_SESSION['error_1'][$x][2]);
    			}
    			unset($_SESSION['error_1'][$x][3]);
    			$_SESSION['memory_1'][2] = $_POST['ma_description'.$x];
    		}
    		else
    		{
    			$length = strlen($_POST['ma_description'.$x]);
    			$_SESSION['error_1'][$x][2] = 150 - $length;
    			$_SESSION['error_1'][$x][3] = 'texte trop long';
    			$_SESSION['memory_1'][2] = $_POST['ma_description'.$x];
    		}	
    	}
    euh, tiens c'est bizarre cela. Il n'y a plus de fatale erreur ... Peut être un programme qui a créé un problème ou qqch que j ai fait avant O_o bizarre. Merci tout de même de ta réponse je vais taguer résolu je détaguerais si cela revient.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Linked Error sur une fonction
    Par hugo1992 dans le forum C
    Réponses: 4
    Dernier message: 08/12/2007, 11h16
  2. Parse error sur une constante
    Par Missie46 dans le forum Langage
    Réponses: 1
    Dernier message: 10/11/2006, 10h19
  3. Parse error sur une concaténation
    Par alpking dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2006, 11h15
  4. bus error sur une machine SUN
    Par mhtrinh dans le forum C
    Réponses: 14
    Dernier message: 10/07/2006, 16h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo