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 :

Notice: Undefined index:


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 9
    Points
    9
    Par défaut Notice: Undefined index:
    Bonjour,

    Je suis entrain de refaire un ancien site, et je me retrouve avec un problème.
    J'essaye de comprendre le code d’où vient le problème,mais je n'y arrive pas..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Notice: Undefined index: hasVocal in /home/*/public_html/pages/panel.php on line 170
     
    Notice: Undefined index: hasServer in /home/*/public_html/pages/panel.php on line 171
     
    Notice: Undefined index: hasWeb in /home/*/public_html/pages/panel.php on line 172
     
    Notice: Undefined index: hasLan in /home/*/public_html/pages/panel.php on line 173
     
    Notice: Undefined index: hasDedie in /home/*/public_html/pages/panel.php on line 174
     
    Notice: Undefined index: hasMapH in /home/*/public_html/pages/panel.php on line 175
    Mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    	$Offre =new Offers($Obj->get('offre_id'));
    	$panel = $Offre->get('panel');
    	$panelInfo = $Offre->getPanel($panel);
    	$hasVocal=(($panelInfo['hasVocal']==1)? true : false);
    	$hasServer =(($panelInfo['hasServer']==1)? true : false);
    	$hasWeb =(($panelInfo['hasWeb']==1)? true : false);
    	$hasLan =(($panelInfo['hasLan']==1)? true : false);
    	$hasDedie =(($panelInfo['hasDedie']==1)? true : false);
    	$hasMapH =(($panelInfo['hasMapH']==1)? true : false);
    J'ai déjà chercher pas mal de fois sur le net, mais sa ma pas aidez a le résoudre, je débute en php.

    Merci d'avance.

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2006
    Messages
    507
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mai 2006
    Messages : 507
    Points : 705
    Points
    705
    Par défaut
    Bonjour,

    Comme les messages l'indiquent, il s'agit de "warning" qui met en garde contre des 'index' ou 'clé' utilisés alors qu'ils n'existent pas.

    La fonction pour tester l'existence d'une variable ou d'un index est "isset" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $hasVocal = isset ($panelInfo['hasVocal']) && 1 == $panelInfo['hasVocal'];

  3. #3
    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
    L'information que tu as indique que ton tableau ne possède pas l'indice "hasVocal", il n'a jamais été défini préalablement.

    Tu devrais pouvoir éviter ça en écrivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $hasVocal= (isset($panelInfo['hasVocal']) && $panelInfo['hasVocal'] == 1);
    Ou bien tu peux aussi utiliser array_key_exists...

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2011
    Messages : 16
    Points : 9
    Points
    9
    Par défaut
    Je vous remercie pour vos réponse rapide !

    Je vous met le code entier qui concerne c'est variables.

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
     
    {
    	$hasVocal=false;
    	$hasServer = false;
    	$hasWeb = false;
    	$hasLan = false;
    	$hasDedie = false;
    	$hasMapH =false;
    	$domain="";
    	$infosArray = array();
     
     
    	// class générale
    	$id = $tools->getValue('id', 0);
    	$id = intval($id);
    	$type= intval($tools->getValue('type', 0));
    	if($id == 0 OR $type == 0) $tools->redirect('p_panel-sommaire.html');
     
    	$S = new Servers( (($type == 1)? $id : NULL));
    	$V = new Vocal( (($type == 2)? $id : NULL) );
    	$D = new Dedies( (($type == 3)? $id : NULL) );
    	$L = new Lans( (($type == 4)? $id : NULL) );
     
     
    	$pgSub = "all";
     
    	if($type ==1)
    	$Obj = $S;
    	else if($type == 2)
    	$Obj = $V;
    	else if($type == 3)
    	$Obj= $D;
    	else if($type == 4)
    	$Obj = $L;
     
     
     
    	if($users->id != $Obj->get('m_id')){
    		if($_SERVER['REMOTE_ADDR'] != '82.224.38.193')
    			if($users->id != $Obj->get('clientid')) $tools->redirect('p_panel-sommaire.html');
    	}
     
    	if($V->id !=0)
    	$hasVocal = true;
    	if($S->id !=0) $hasServer = true;
     
     
    	$Offre =new Offers($Obj->get('offre_id'));
    	$panel = $Offre->get('panel');
    	$panelInfo = $Offre->getPanel($panel);
    	$hasVocal=(($panelInfo['hasVocal']==1)? true : false);
    	$hasServer =(($panelInfo['hasServer']==1)? true : false);
    	$hasWeb =(($panelInfo['hasWeb']==1)? true : false);
    	$hasLan =(($panelInfo['hasLan']==1)? true : false);
    	$hasDedie =(($panelInfo['hasDedie']==1)? true : false);
    	$hasMapH =(($panelInfo['hasMapH']==1)? true : false);
     
     
     
    	if($hasServer){
    		$game = new Games($S->get('gameid'));
    		$serverStatus = (( $S->get('etat') == 1)? 'Installé' : 'Non-installé' );
    		$serverStatus.=' / ';
    		$serverStatus.=(( $S->get('demarre') == 1)? 'Démarré' : 'Eteint' );
    		$serverName = $S->get('name').' ';
    		$hltvStatus = 'Non activé';
    		$pass = "";
    		$ftpLogin=$S->get('user');
    		$ftpPass=$S->get('ftp_password');
    		$js_content.='servid='.$id.';
    		';
    		$domain = $S->get('domaine');
     
    	}
    	if($hasServer){
    		if($S->get('vocalid') != 0){
    			$js_content.='
    			vocauxid='.$S->get('vocalid').';
    			';
    			$V = new Vocal($S->get('vocalid'));
    			$hasVocal = true;
    		}
     
     
     
    	}
    	if($hasDedie){
    		$nic = $D->get('identifiant');
    		$pass =$D->get('password');
    		$domain = $D->get('server_domain');
    		$host = $D->get('server_host');
    		$domain = $D->get('server_domain');
    		$_SESSION['nic']=$nic ; 
    		$_SESSION['passe']=$pass;
    		$_SESSION['domaine']=$domain;
    		$_SESSION['server']=$host;
     
    		$linkEbox = "window.location.href='"._HOMEURL_.'ebox/dedie.php'."';";
     
    		//$tools->redirect(_HOMEURL_.'ebox/dedie.php');
    		//die();
     
    	}
     
    	$linkServer=false;
    	if($hasVocal){
    		$idServ = intval($V->get('id_serv'));
    		if($idServ != 0){
    			$vD = new Vocal($idServ, 'dispo');
    			if($vD->get('type') == 'teamspeak'){
    				$_SESSION['serverID'] = $V->id;
     
    				/*$_SESSION['server_ip'] = $vD->get('ip');
    				$_SESSION['server_tport'] = $vD->get('port');
    				$_SESSION['loginUser'] = "serveradmin";
    				$_SESSION['loginPw'] =$vD->get('pass');
    				$_SESSION['port'] = $V->get('port');
    				$_SESSION['token'] = $V->get('token');*/
    			}
    			$linkVocalPanel = _HOMEURL_._TS3FOLDER_.'index.php?site=serverview&port='.$V->get('port');
    			$linkServer=true;
    			$infosArray[0] = array("Type de Serveur"=>$vD->get('type'), "IP"=>$vD->get('ip'), "Port"=>$V->get('port'), "Token"=>$V->get('token'));
     
    		}else{
    			$infosArray[0] = array("Type de Serveur"=>$V->get('type'), "Etat"=>"Ce serveur n'est pas installé");
    		}
    	}
     
    	if($hasWeb ){
     
    		//$_SESSION['nic']=$nic ; 
    		//$_SESSION['passe']=$pass;
    		$_SESSION['domaine']=$domain;
    		//$_SESSION['server']=$host;	
    		$linkWeb='';
    		if($domain != NULL){
    			$linkWeb = "window.location.href='"._HOMEURL_."web/domain.php?domain=".$domain."';";
    		}
    	}
     
    	if($hasMapH){
    		$MP = new MapH($id);
     
     
    	}
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    	$js_codepage='panel_serveur';
    }
    J'ai rentrée ce que vous m'avez dit, les erreurs s’enlève, mais cette page me donne accès au panel, c'est peut être des valeur manquante dans la base de donnée ?

  5. #5
    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
    Tu peux préciser un peu ? Qu'est ce que le panel (quel instruction te redirige vers celui-ci?), quel est le but ?
    Sinon y'a pas 50 solutions : déboguer : afficher tes variables, jusqu'à trouver celles qui ne vaut pas la valeur que tu crois qu'elle vaut...

  6. #6
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,

    Juste une équivalence en passant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $hasVocal=(($panelInfo['hasVocal']==1)? true : false);
    // est équivalent à
    $hasVocal = ($panelInfo['hasVocal'] == 1);

  7. #7
    Membre éprouvé

    Profil pro
    Inscrit en
    Juin 2007
    Messages
    748
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2007
    Messages : 748
    Points : 1 022
    Points
    1 022
    Par défaut
    10s

    celle la peu poser problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if($_SERVER['REMOTE_ADDR'] != '82.224.38.193')

Discussions similaires

  1. Réponses: 8
    Dernier message: 03/04/2007, 10h01
  2. Notice: Undefined index method post
    Par vanou dans le forum Langage
    Réponses: 8
    Dernier message: 07/03/2007, 09h33
  3. Pb erreur Notice: Undefined index: pseudo
    Par PAINCO dans le forum Langage
    Réponses: 15
    Dernier message: 19/02/2007, 18h20
  4. Notice: Undefined index
    Par abusatif dans le forum Langage
    Réponses: 4
    Dernier message: 08/02/2007, 09h03
  5. Réponses: 9
    Dernier message: 01/05/2006, 00h02

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