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

EDI, CMS, Outils, Scripts et API PHP Discussion :

[Forum] Fatal error: Cannot use string offset as an array


Sujet :

EDI, CMS, Outils, Scripts et API PHP

  1. #1
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut [Forum] Fatal error: Cannot use string offset as an array
    Bonjour,

    je voudrais un coup de main sur cette erreur.
    Je suis en train de faire un site à mon travail et j'en ai fait une copie sur mon pc perso
    j'ai installer lampp pour faire l'ensemble serveur et tout ce qui n'est pas le cas à mon travail ou tout était déjà installer.

    Donc quand je lance le script chez moi je me retrouve avec l'erreur
    Fatal error: Cannot use string offset as an array !!!!!

    la cause est cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    foreach(array_keys($_SESSION['reqid']) as $nom2 => $reqid){
    
    if ($_SESSION['reqid'][$reqid]['id'] != ""){
    je ne comprends pas du tout ce qu'il se passe !!!!

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut
    je suis tombée dessus justement, mais ça ne passe pas............

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Ce que tu fais n'est pas logique :

    si ton tableau est construit en
    reqid
    => $reqid
    => tableau qui contient 'id'

    le foreach renvoit le couple $reqid => tableau

    si tu veux voir si id dans le tableau est une chaine vide :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    foreach(array_keys($_SESSION['reqid']) as $reqid => $values){
     
    if ($values['id'] != ""){
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut
    Mea culpa

    je ne vois pas trop ce que tu veux dire ( je suis encore novice en php)
    je t'envoie le code php complet pour que tu puisses comprendre les découpage du tableau..........
    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
     
    <?php
    		$open = fopen("../tmp/spfetch.txt", "r") or die("<strong>Can not open file </strong>");	
    //Opening ID list	
    		if ($open) {
    		$cmpt=0;
    			while (!feof($open)) {
    			$cmpt++;
    			$reqid = "reqid".$cmpt;
    			$_SESSION['reqid'][$reqid]['id']= array();
    			$_SESSION['reqid'][$reqid]['id']= "";
    			$_SESSION['reqid'][$reqid]['id']=rtrim($_SESSION['reqid'][$reqid]['id'].fgets($open, 4096)); //Serieux prob d'espace
     
    				if ($_SESSION['reqid'][$reqid]['id'] != ""){
     
    // execute perl script, search if ID exists
    				$node = ('perl ../script/findID.pl '.$_SESSION['reqid'][$reqid]['id'].' prodom');//nature of database doesn't count
    				$_SESSION['reqU'][$reqid]['node']=exec($node);
     
    //if the ID doesn't exist
    				if($_SESSION['reqU'][$reqid]['node']=='NA') $_SESSION['ERROR'] = "This TaxID is not available";
     
    //if the ID exists, even for nearest node
    					elseif($_SESSION['reqU'][$reqid]['node']!='NA'){
     
    					if(!file_exists("../tmp/".$_SESSION['reqU'][$reqid]['node']))
    					mkdir ("../tmp/".$_SESSION['reqU'][$reqid]['node'], 0777);
     
    // execute perl script, search for the ID description
    					$requete_species= ('perl ../script/findDescr.pl '.$_SESSION['reqU'][$reqid]['node'].'');	
    					exec($requete_species);
     
    					$open2 = fopen("../tmp/".$_SESSION['reqU'][$reqid]['node']."/descr.txt", "r") or die("<strong>Can not open file </strong>");
    //Opening description			
    						if ($open2) {
    						$cmpt2=0;
    						$result_requete= "";
    						$result_requete_child="";
    							while (!feof($open2)) {
    							$cmpt2++;
    							$req = "req".$cmpt2;	
    								if ($cmpt2 < 10) $result_requete= $result_requete.fgets($open2, 4096);
    								elseif ($cmpt2 > 10) $result_requete_child=$result_requete_child.fgets($open2, 4096);
    							}
    						fclose($open2);
    						}
     
    					list($_SESSION['requete'][$reqid]['NAME'], $_SESSION['requete'][$reqid]['DFS'],$_SESSION['requete'][$reqid]['TYPE'], $_SESSION['requete'][$reqid]['REAL2'],$_SESSION['requete'][$reqid]['TAXID'],  $_SESSION['requete'][$reqid]['TAXIDPA'],  $_SESSION['requete'][$reqid]['CPD'], $_SESSION['requete'][$reqid]['CHG'], $_SESSION['requete'][$reqid]['NBP'], $_SESSION['requete'][$reqid]['NBD']) = explode("\n", $result_requete);
    					$_SESSION['requete'][$reqid]['TAXIDCH'] = $result_requete_child;
     
    					if ($_SESSION['requete'][$reqid]['REAL2']=="y") $_SESSION['requete'][$reqid]['REAL']="This node were added in the phylogenetic tree";
    					else $_SESSION['requete'][$reqid]['REAL']="Real node in the phylogenetic tree";
    					}
    				}
    			}
    		}
    	fclose($open);		
    	header("location:../pages/description_species.php");
    	}
    ?>

    et donc dans le html j'ai une phase de test, vérifier si ID existe ou pas puis affichage des données
    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
     
    foreach(array_keys($_SESSION['reqid']) as $nom2 => $reqid){
     
    if ($_SESSION['reqid'][$reqid]['id'] != ""){
     
    	if($_SESSION['reqU'][$reqid]['node'] =='NA'){//verifying that the request is not empty and correct type != ""
    		print('
    		<table class="warning" border="0" cellspacing="0">
    			<tbody>
    				<tr>
    				<td class="warning"> '.$_SESSION['ERROR'].' : '.$_SESSION['reqid'][$reqid]['id'].'</td>
    				</tr>
    			</tbody>
    		</table>');
    	}
     
    	else{
     
    	$req=$reqid;
    	print('		 <tr>
    			<td align="center" bgcolor="#999999">
    			<table border="0" cellspacing="0" cellpadding="1">
    			<tr> 
    			<td align="center" valign="top">
    				<span class="h3_like"><BIG>&nbsp;'. $_SESSION['requete'][$req]['NAME'].'&nbsp;</BIG></span>
    			</td>	
    ........................
    ..................
    .......................
    je suis désolée c'est un peux long

Discussions similaires

  1. Réponses: 22
    Dernier message: 24/08/2009, 18h32
  2. Fatal error: Cannot use string offset as an array
    Par tremeur53 dans le forum Langage
    Réponses: 8
    Dernier message: 31/10/2008, 09h44
  3. Réponses: 2
    Dernier message: 10/04/2008, 18h16
  4. Réponses: 4
    Dernier message: 14/02/2008, 20h41
  5. [Tableaux] Cannot use string offset as an array ?
    Par haffouff dans le forum Langage
    Réponses: 12
    Dernier message: 21/07/2006, 15h27

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