recupérer des parametres

Eléphant du PHP | 166 Messages

03 avr. 2017, 23:01

Bonjour
Voici mon code :

Code : Tout sélectionner

<div> <ul><?php foreach ($produit as $cle => $val): ?> <li> <?php echo $cle. ' - ' .$val. '€'; ?> <a href="../page/panier.php?nom=<?php $cle ?>&amp;prix=<?php $val?> "> Ajoutez au panier</a> <?php var_dump($cle,$val);?> </li> </ul> <?php endforeach ?> </div>
Grace à mon lien, je transmet les valeurs $cle et $val. Que je veux récupérer dans une page nommé 'panier.php'
le soucis est que sur cette page, je ne récupère rien avec mon code suivant :

Code : Tout sélectionner

if (isset($_GET['prix']) AND isset($_GET['nom'])) { echo 'Bonjour ' . $_GET['nom'] . ' ' . $_GET['prix'] . ' !'; } else // Il manque des paramètres, on avertit le visiteur { echo 'Il faut renseigner un nom et un prix !'; } ?>
seulement le bonjour ?

Mammouth du PHP | 2703 Messages

03 avr. 2017, 23:57

il faut regarder l'url de la page panier, tiens, il n'y a pas les valeurs des paramètres.
il faut alors regarder le code source de la première page, tiens, il n'y a pas les valeurs des paramètres.
reste plus qu'à trouver comment afficher le contenu d'une variable dans une page.

Eléphant du PHP | 385 Messages

04 avr. 2017, 00:27

Salut,

Si tu souhaites gérer un panier un peux comme dans le monde e-commerce pour ne passe tu pas par les sessions?

Eléphant du PHP | 166 Messages

04 avr. 2017, 05:30

kevin254kl, justement j'ai créé une session, mais sur une autre page. En fait je m'identifie et ensuite si le log et le pwd est bon je vais sur une page 'produit' (1er code) & ensuite je vais sur ma 2ème page 'panier'. Mais ça c'est l'objet d'une autre question. Car quand ton identification est bonne,quel est le code ou autre qui fait voir que tu es sur une page ouverte par une session ?
En fait ma page ou je m'identifie me permet d'aller sur les autres pages. (pannier et produits), mais dans c'est dernière comment identifier que je suis dans des pages ouvertes par une session ?

Or1, pourtant je fais un var_dump et je vois bien cle et Val.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

04 avr. 2017, 11:19

salut,

as ton avis que fait ce code ?
<?php $val ?>
réponse rien, il te faut afficher la valeur (echo, print, la syntaxe courte <?= ?> , etc.).

Si tu regardes ton url (dans la barre d'url) après avoir cliqué sur le lien tu verras que les champs sont vides.

pour la reconnaissance de la "connexion" utilisateur il te faut mettre une variable reconnaissable en session (par exemple l'id utilisateur) et tester l'existance de cette variable pour savoir si tu es ou non connecté.

exemple connexion
<?php
session_start();
// vérification des infos de connexion
if( ....) {
// ...
$_SESSION['userID'] = 42;//vient de la base
// ...
}
exemple d'utilisation
<?php
session_start();
if(!empty($_SESSION['userID'])) {
    echo 'utilisateur connecté';
}

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 166 Messages

04 avr. 2017, 22:13

Bonjour

- or 1, moogli : vue mon erreur, j'ai oublié "echo".
- kevin254kl : en ce qui concerne la session, j'avais fait un code :

Code : Tout sélectionner

<?php /* Le login sera : toto Mot de pass sera : 70eq code provisoire qui a permis de crypter le password : $mdp = '70eq'; $mdcrypt = crypt($mdp); echo $mdcrypt; */ ?> <link rel="stylesheet" type="text/css" href="../css/style1.css"/> <div id="cadre1"> <form method="post" action="logadmin.php"> <p> <h1>Administrateur</h1> <label for="login">Votre login :</label> <input type="text" name="login" id="login" /> <br/> <label for="pass">Votre mot de passe :</label> <input type="password" name="pass" id="pass" /> <input type="submit" name="submit" value="Envoyer" /> </p> </form> <?php //connexion à la BDD require('../inc_/inc_connexion.php'); // récupération des variables if(isset($_POST['submit'])) { $admin_in_login = $_POST['login']; $admin_in_pass = $_POST['pass']; // vérification si les variables sont vides if((empty($admin_in_login)) OR empty($admin_in_pass)) { echo '1 - Recommencez.'; } else { //Vérification du login si il est connu dans la BDD. $result = $mysqli->query('SELECT admin_log, admin_pwd FROM admin WHERE admin_log = "'. $admin_in_login .'"'); $row = $result->fetch_array(); if(!isset($row['admin_log'])) { // la requete ne retourne aucun résultat pour ce login echo '2 - Recommencez.'; } else { //login bon. Vérification du mot de passe saisi.// $admin_login = $row['admin_log']; $admin_pass = $row['admin_pwd']; if (crypt($admin_in_pass, $admin_pass) != $admin_pass) { echo '<p>1 - Erreur.<br> Mot de passe incorrecte.</p>'; } else { /*l’utilisateur est reconnu. Nous créons une variable de session ‘admin_login’.*/ session_start(); $_SESSION['admin_login'] = $admin_login; header('location:../page/administrateur.php'); } } } } ?> </div> <div><a href="../index.php">Retour à l'Accueil</a></div>
Il y a donc un formulaire qui demande le login & password. ce code est enregistré dans une page nommé "logAdmin.php"
Ensuite j'ai créer un autre code "inclusion" nommé "inc_sessionAdmin.php" qui ressemble a cela :

Code : Tout sélectionner

<?php session_start(); if (!isset($_SESSION['admin_login'])) { echo 'Vous n\'avez pas les droits d\'accès à cette page'; echo '<br><a href="../index.php">retour Accueil</a>'; exit; } $admin_login = $_SESSION['admin_login'] ; require('../inc_/inc_connexion.php'); $result = $mysqli->query('SELECT admin_log FROM admin WHERE admin_log = "' . $admin_login .'"'); $row = $result->fetch_array(); if(!isset($row['admin_log'])) { echo 'Vous n\'avez pas les droits d\'accès à cette page'; echo '<br><a href="../index.php">retour Accueil</a>'; exit; } ?>
ce code là, je le place ensuite a toutes les début de pages concernant l'administrateur ? sous la forme : require('inc_sessionAdmin.php');
est-ce la bonne démarche ?