8800 sujets

Développement web côté serveur, CMS

Bonjour,
Je souhaite mettre en place une fonction qui nécessite la mise en mémoire d'une variable "tableau" (pardonnez moi si mon vocabulaire n'est pas très précis, n'hésitez pas a me corriger).

L'utilisateur entre une liste de nom dans un bloc <textarea> et, via la fonction explode, je sépare tout les noms et souahite les stocker dans une variable de session.
Voila, je ne sais pas si il est possible de faire des variables de session de ce genre "$_SESSION['serveurS[$key]']" et encore moins la logique àç adopter.

je vous présente ce que j'ai fais, cela marche pour un seul nom, mais à partir de deux, plus rien ne marche.

Tout d'abord, le code de la page qui recoit les infos :

if(!isset($_POST['serveurE'])){
		$_POST['serveurE']=NULL;
	}else{
	
		//On sépare les noms de serveurs
		$split = explode("\n", $_POST['serveurE']) ;
		foreach($split as $key => $value)
		$serveurE[$key] = $value ;

		foreach($serveurE as $key => $value)
		echo $key.' A=> '.$value.'<br />' ;
	}
	if(!isset($_POST['serveurS'])){
		$_POST['serveurS']=NULL;
	}

// voici le bloc qui permet, de rentrer les noms.

<tr id="body" style="margin-left:270px;" >
						<td  id="ServerListInDIV" class='divUnmanageSelect' >
							<!--<label for="ServerListInDIV">Entrée</label>-->
							<a>Entrée</a>
							<textarea id= "List" name="serveurE" ></textarea>
							<input type="submit" name="Scan" id="Scan" value="Scan" onclick=""/> 
						</td>
				</tr>

Ensuite voici le code de la fonction qui est sensée s'executer sur tous les noms entrés :

foreach($serveurE as $key => $value)
		Unmanage($value,$key);
	
		
		
	function Unmanage ($server,$key)	{
		echo 'clef numéro '.$key.'; Test du serveur => '.$server.'<br />' ;
		//initialisation des variables
		$classe = NULL;
		$domaine = NULL;
		$statuts = NULL;
		$i=0;
		$NbreServ=0;
		//Commande pour se connecter au mdb
		$conn=odbc_connect("Driver={SQL Server};Server=172.20.50.64; Database=mdb", "user", "user") 
			or die ("Impossible de se connecter à la bas de donnée") ;
			
		// Requete pour determiner le statut du serveur	
		$requete3="select admin_status 
			FROM [mdb].[dbo].[tng_managedobject] 
			where upper(name) = upper('".$server."') 
			and alarmset_name='Host'";

		//envoi de la requete
		$reponse3=odbc_exec($conn,$requete3)
			or die ("Le serveur est introuvable");

		// Boucle pour chercher ce qui nous interesse dans le tableau renvoyé par la requete
		while ($donnee3 = odbc_fetch_array($reponse3))
		{
			$i++;
			$NbreServ++;
			$statuts=$donnee3['admin_status'];
		}
		
		// TEST
		if ($statuts==0 AND $i>=1){
			echo ' <br /> Le statut de ce serveur est : Managed<br /> ';
		}else if($statuts==1 AND $i>=1){
			echo ' <br /> Le statut de ce serveur est : Unmanaged<br /> ';
		}else{
			echo ' <br /> Le statut de ce serveur est : Inconnu <br /> ';
		}
		
		//Renvoi du nom en maj
		
		$requete4="select name
		FROM [mdb].[dbo].[tng_managedobject] 
		where upper(name) = upper('".$server."')
		and alarmset_name='Host'";
			
		$reponse4=odbc_exec($conn,$requete4)
			or die ("Impossible d'obtenir le nom du serveur (le serveur n'existe pas ou celui ci n'a pas été trouvé ");
		
		while ($donnee4 = odbc_fetch_array($reponse4))
		{
			echo '==>le nom de ce serveur est :  '.$donnee4['name'] .' <br />' ;
			$i++;
			$NbreServ++;
			$name=$donnee4['name'];
		}
		

		$_SESSION['serveurS[$key]'] = $name;
		echo $_SESSION['serveurS[$key]'];
	}



dans ce dernier code, nous avons donc une fonction qui analyse tout un tat de paramètre, seul le dernier nous interesse vraiment : celui qui renvoi la varaible $name que j'aimerai ensuite stocker dans ma varable de session serveurS.
Comment vous y prendriez vous pour creer cette variable 'tableau' qui a chaque $key contient un $name différent dont je pourrait me resservir par la suite ?
Faut il l'initialiser d'une certaine façon ?

Merci a vous Smiley smile
Bonsoir,

je connais pas trop/pas du tout les sessions mais pour stocker un tableau multidimensionnel (ne pas oublier que $_SESSION est déjà un tableau), la syntaxe et celle ci :


$_SESSION['serveurS'][$key] = $name;

// Affiche le tableau
print_r($_SESSION['serveurS']);

// Affiche la valeur de la clé
print_r($_SESSION['serveurS'][$key]);
Hello,
okay j'ai essayé , mais voici les messages d'erreur générés par le navigateur :

PHP Notice: Undefined index: serveurS[$key] in C:\www\Unmanage\scan.php on line 80 PHP Notice: Undefined variable: name in C:\www\Unmanage\scan.php on line 79 PHP Notice: Undefined index: serveurS[$key] in C:\www\Unmanage\scan.php on line 80 PHP Notice: Undefined index: serveurS[$key] in C:\www\Unmanage\scan.php on line 80 PHP Notice: Undefined index: serveurS[$key] in C:\www\Unmanage\scan.php on line 80 PHP Notice: Undefined index: serveurS[$key] in C:\www\Unmanage\UnmanageTextArea.php on line 65

les lignes 79 et 80 sont les suivantes :

		$_SESSION['serveurS'][$key] = $name;
		echo $_SESSION['serveurS[$key]'].'<br />';


de plus, quand j'essaye de "lire" cette variable, il me fait Array.

Quelqu'un pourrait il m'éclairer ?

Merci !
ça marcherait pas mieux ainsi :

$_SESSION['serveurS'][$key] = $name;

		echo $_SESSION['serveurS'][$key].'<br />';


En gros avec la même variable des 2 cotés ?