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 :

tableau de session


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Points : 46
    Points
    46
    Par défaut tableau de session
    Bonjour,

    je cherche comment faire un tableau de session pourriez vous m'aider? j'ai essayé d'en faire un mais celà ne marche pa voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    foreach($_POST['prodselec'] as $key => $valeur)
        {
            $tab_prod_selec[$key] = $valeur;
            $max = $max +1;
            $_SESSION['codecli']['numprod'] = $valeur;
     
        }
    foreach($_POST['qtcom'] as $key => $valeur)
        {
            $tab_qt_prod_select[$key] = $valeur;
            $max = $max +1;
            $_SESSION['codecli']['qt'] = $valeur;
     
        }

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 331
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 331
    Points : 15 675
    Points
    15 675
    Par défaut
    qu'est ce tu veux obtenir comme résultat ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 85
    Points : 46
    Points
    46
    Par défaut
    en faite j'aurais aimé obtenir un tableau de session de plusieurs dimensions. j

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    une petite idée m'est venue depuis tout a l heure...

    Est ce que cela ne marcherait pas...

    Session['codeClient'] qui te retourne le codeClient (ce que tu as deja) puis ensuite mettre une seconde session : Session['produits'] qui elle conserverait les pdts commandés genre faire
    SESSION['produits'][$indiceMax+1] = "$numeroduproduit | $qtecommandée";
    et ainsi de suite a chaque fois qu il ajoute un truc a sa commande tu incrémentes le session produit ?

    Comme cela quand tu veux voir ce qu il a commandé t'as plus qu a boucler sur ton session['produits'] et a récupérer grace a une regex ou un split les différentes sous parties...

    C'est une idée comme une autre et cela éviterait de gérer des sessions de facon trop compliquée... (j ai pas testé, je propose juste)

    Kévin D_ _ _ _ _ R

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Août 2008
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 29
    Points : 21
    Points
    21
    Par défaut
    C'est encore moi !

    Tu pourrais faire un truc du genre :

    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
     
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
    	<?php include('import_class.php'); // Classes permettant les redirections, les popup js, ...
    	if($_SESSION['id'] != null && Outils::IdOK($_SESSION['id'])) // Vérifie si l'identifiant existe ds la BDD
    	{
    		$sessionOK = true;
    	}
    	else if($_POST['validerConnexion'] != null)
    	{
    		if($_POST['pseudo'] != null && $_POST['pwd'] != null)
    		{
    			$id = Outils::VerifIdent($_POST['pseudo'],$_POST['pwd']); // Verifie si le client existe et recupere son ID
    			if($id != null)
    			{
    				$_SESSION['id'] = $id;
    				$sessionOK = true;
    				Outils::Redirection("index.php");
    			}
    			else
    			{
    				$erreur = "le nom ou le pseudo n'est pas valide"
    			}
    		}
    		else
    		{
    			$erreur = 'Veuillez renseigner les champs requis : nom et mot de passe, merci.';
    		}
    	}
    	if($_GET['a']==1) // permet de supprimer le panier (c'est fait a l arrache mais juste pour les tests)
    	{
    		unset($_SESSION['pdt']);
    	}
    	if($_POST['btnEnvoi'] != null)
    	{
    		$nb = (count($_SESSION['pdt'])>0)?count($_SESSION['pdt']):0; // Vérifie le nbre d articles deja presents ds la session pdt, dc si il y a des articles nb sera egal au nbre d articles sinon il sera a 0
    		for($i = 0; $i < $_POST['maxPdt']; $i++) // je vais boucler sur tous les pdts
    		{
    			if($_POST['pdt'.$i] != null && $_POST['qte'.$i] != null) // si un pdt est coché et qu il a une quantité
    			{
    				$_SESSION['pdt'][$nb] = $_POST['pdt'.$i].'|'.$_POST['qte'.$i]; //je crée une nouvelle ligne ds ma session pdt
    				$nb++;
    			}
    		}
    	}
    	?>
    <title> TEST SESSIONS</title>
    </head>
    <body>
    	<form method="post" action="index.php">
    		<table style="margin:auto;padding:auto;left:50%;margin-top:20px;border:1px solid #0094FF;">
    			<tr>
    				<td colspan="3" style="color:#FF0000;"> <?php echo $erreur; ?> </td>
    			</tr>
    			<tr>
    				<td> <label> Nom </label> </td> <td> : </td> <td> <input type="text" name="pseudo" value="<?php echo $_POST['login']; ?>" /> </td>
    			</tr>
    			<tr>
    				<td> <label> Password </label> </td> <td> : </td> <td> <input type="password" name="pwd" value="<?php echo $_POST['pass']; ?>" /> </td>
    			</tr>
    			<tr>
    				<td colspan="3" style="text-align:center;"> <input type="submit" name="validerConnexion" value="Connexion" /> </td>
    			</tr>
    		</table>
    	</form>
    	<?php
    	if($sessionOK)
    	{
    	?>
    		<form action="index.php" method="post">
    			<table style="margin:auto;padding:auto;left:50%;margin-top:20px;border:1px solid #0094FF;">
    				<?php
    				/* Ici il faudrait se faire une requete du genre : 
    					SELECT numPdt, nomPdt
    					FROM pdt
    					ORDER BY nomPdt;
    				*/
    				$i = 1;
    				while( $i <= 10) // ici on boucle sur tous les pdts dc ce serait un TQ non fin de curseur FAIRE 
    				{
    				?>
    					<tr>
    						<td> <input type="checkbox" name="pdt<?php echo $i;?>" value="<?php echo $i; /*ici on mettra le numPdt a la place de $i*/?>" />  </td> <td> mon pdt <?php echo $i; ?> </td>
    						<td> qte : </td> <td> <input type="text" name="qte<?php echo $i;?>" /> </td>
    					</tr>
    					<?php
    					$i++;
    				}
    				?>
    				<tr>
    					<td><input type="hidden" name="maxPdt" value="<?php echo $i;?>" /> </td> 
    					<!-- permet de connaitre le nbre total de pdt que l on a -->
    				</tr>
    				<tr>
    					<td colspan="2" style="text-align:center;"> <input type="submit" name="btnEnvoi" value="Envoyer" /> </td>
    				</tr>
    			</table>
    		</form>
     
    		<a href="page2.php"> voir panier </a> &nbsp; <a href="index.php?a=1"> vider panier </a>
    	<?php
    	}
    	?>
    </body>
    </html>
    puis ensuite dans ta page panier il te reste plus qu a faire :

    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
     
    <?php
    session_start();
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    <head>
     
    	<?php include('import_class.php');
    	if($_SESSION['id'] != null && Outils::IdOK($_SESSION['id']))
    	{
    		$sessionOK = true;
    	}
    	?>
     
    <title> TEST SESSIONS</title>
    </head>
    <body>
    	<?php
    	if($sessionOK)
    	{
    		// affichage des pdts avec la quantite commandée
    		for($i = 0;$i < count($_SESSION['pdt']); $i++)
    		{
    			echo $_SESSION['pdt'][$i].' <br />';
    		}
    	}
    	else
    	{	
    		Outils::Redirection("index.php");
    	}
    	?>
    </body>
    </html>
    Voilà, si tu veux plus de détails je t enverrais les sources sur MSN

    Bonne journée !

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

Discussions similaires

  1. Comment enregistrer un tableau en session
    Par Snyfer dans le forum Langage
    Réponses: 4
    Dernier message: 27/03/2007, 11h48
  2. Tableau et session !
    Par GYK dans le forum Langage
    Réponses: 23
    Dernier message: 15/03/2007, 10h12
  3. Pb de passage de tableau en session
    Par taki_38 dans le forum Langage
    Réponses: 3
    Dernier message: 12/07/2006, 12h14
  4. Réponses: 21
    Dernier message: 28/02/2006, 15h23
  5. Réponses: 16
    Dernier message: 02/12/2005, 10h39

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