> Tous les forums > Forum des Webmasters
 Passage en session phpSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
t671
  Posté le 10/06/2010 @ 17:44 
Aller en bas de la page 
Astucien

Bonjour,

Je tente de passer des données en utilisant des session (en local), mais ça ne fonctionne pas.

Mon script de saisie :

<?php
session_start();
$nom=$_SESSION['nom'];
$mail=$_SESSION['mail'];
$message=$_SESSION['message'];

$cryptinstall="../livredor/crypt/cryptographp.fct.php";
include $cryptinstall;

.............

echo '<form method="post" action="index_FR.php?page=verifier" value="envoyer" name="soumettre">';
echo "<input type=hidden name=\"id\" value=\"$id\">";
echo '<p>Votre Nom :<INPUT type=text name="nom" cols="65" SIZE="50"><br>';
echo 'Votre adresse mail :<INPUT type=text name="mail" SIZE="50"><p><center>';
echo 'Votre commentaire :<textarea cols="65" name="message" id="message" rows="8" wrap="VIRTUAL" accesskey="c" onselect="storeCaret(this);" onclick="storeCaret(this);" onkeyup="storeCaret(this);" onchange="storeCaret(this);" >'.$message.'</textarea><br>';
?>

Mon script de vérification de la saisie (vérifier.php):

<?php
session_start();
$_SESSION['nom']=$nom;
$_SESSION['mail']=$mail;
$_SESSION['message']=$message;
//echo 'le nom =';
//echo $_SESSION['nom'];
//exit;

Et déjà là, si je vérifie la valeur de la session $_SESSION['nom']; elle est vide !

J'ai créer un répertoire "sessions" à la racine de mon site, et un en parallèlle aux scripts de saisie et vérification (au cas où ... )

Quelqu'un peut m'aider

Merci

Publicité
Cedders
 Posté le 10/06/2010 à 21:40 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Bonsoir,

Donc si je comprends bien, tu as un formulaire qui, une fois soumis, envoie les données par méthode POST sur index.php qui appel la page vérifier dans une div certainement et tu aimerais que ces informations soit ensuite stockées dans des variables de session ? (désolé pour le pavé ^^)

Il me semble que dans "verifier.php" tu devrais faire : $_SESSION['name'] = $_POST['name'];

Après si je peux me permettre un conseil, pour l'affichage de ton formulaire, l'utilisation des echo comme ça c'est assez pesant pour la relecture, sâche que tu peux fermer la zone php pour taper directement du html puis rouvrir dès que tu fais du php, par example :

<?php
session_start();
$nom=$_SESSION['nom'];
$mail=$_SESSION['mail'];
$message=$_SESSION['message'];

$cryptinstall="../livredor/crypt/cryptographp.fct.php";
include $cryptinstall;

.............

?>

<form method="post" action="index_FR.php?page=verifier" value="envoyer" name="soumettre">
<input type=hidden name=\"id\" value=\"$id\">

..............

<?php

....

?>

C'est juste un conseil, chacun ses préférences ;)

Malcolm
 Posté le 10/06/2010 à 22:03 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

cedders => bien que ta remarque soit tout à fait pertinente, le souci que tu évoques là vient de bien plus loin : t671 a trop tendance à mélanger toutes les couches de programmation, en mélangeant requête SQL, traitement PHP et affichage HTML ...

t671 => fais un print_r($_SESSION); juste en dessous de chaque session_start();

tu verras alors tout le contenu du tableau de session et tu verras à quel moment de la page les données ne sont plus là.

Visiblement tu inclues une page externet (cryptomachin) : cette page a-t-elle aussi un session start ?

t671
 Posté le 11/06/2010 à 18:41 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Ce que j'inclu :

$cryptinstall="../livredor/crypt/cryptographp.fct.php"; include $cryptinstall;

est un script qui permet de générer un code à recopier, et quiest là pour éviter le spasm. Je l'ai pris et recopié tel quel d'une autre site que j'ai fait, et qui fonctionne, mais là, rien à faire .....

Si je met print_r($_SESSION); dans mon script de vérification (vérifier.php => session_start(); $_SESSION['nom']=$nom; $_SESSION['mail']=$mail; $_SESSION['message']=$message; print_r($_SESSION); ),

j'ai : Array ( [cryptdir] => ../livredor/crypt [configfile] => cryptographp.cfg.php [cryptcode] => 9dc2b1751588fd2ea1ce148cff83682b [crypttime] => 1276274216 [cryptcptuse] => 4 [nom] => [mail] => [message] => )

Le chiffre 4 correspond au nombre d'essaie que je fais ! Même résultat pour le script add.php.

Je vais me rabbatre à passer mes données par URL à la place de Sessions ! Mais dommage .... j'aurais aimé savoir pourquoi ça ne fonctionne pas alors que pour un autre site, ça fonctionne .....

Malcolm
 Posté le 11/06/2010 à 19:09 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

ya pas un retour à la ligne qq part en trop ? (hors balise PHP)

t671
 Posté le 15/06/2010 à 11:59 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien

Bon, ben je vais faire avec passage des variables URL ....

J'essaye donc :

<?php

$nom = $_POST['nom'];
$mail = $_POST['mail'];
$message = $_POST['message'];

$cryptinstall="../livredor/crypt/cryptographp.fct.php";
include $cryptinstall;

if (chk_crypt($_POST['code'])) {
$nom=$_POST['nom'];
$mail=$_POST['mail'];
$message=$_POST['message'];
header("Location: index_FR.php?page=add&nom=$nom&mail=$mail&message=$message");

mais mes variables ne passent pas au script add ! J'ai du faire une erreur dans le header, non ?

Malcolm
 Posté le 15/06/2010 à 18:33 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien

avant d'utiliser header(machin), affiche le "machin" ...

C'est un réflexe que tu devrais avoir. si ça ne marche pas, faut afficher ce qui ne marche pas.

et si par hasard "machin" ne présente pas tout, ça veut dire que $_POST n'est pas complet.

Donc pareil, affichage du POST.

echo '<pre>', print_r($_POST), '</pre>';

et là tu vois ce que ton $_POST contient (clés/valeurs). Tant que t'as pas ce réflexe de remonter à la source tu perdras ton temps à dire "ça marche pas" ...

Comme t'as récupéré comme un bourrin tes variables, t'étonne pas si ça plante.

Vivement qu'un PHP6 (res)sorte que ce type de comportement génère des fatal error ... {#}

PHP est faiblement typé, et ne pas déclarer ses variables n'affiche pas toujours d'erreur, ce qui fait qu'un code comme le tien présentant des lacunes de conception passera.

Qu'est-ce que le serveur doit traiter si on soummet un formulaire vide ?

Nous n'avons pas le code complet donc difficile de tirer des plans sur la comète, mais un code propre, c'est un code initialement qui est bien conçu et qui est bien déclaré.

J'ai du mal à percevoir ta conception, et visiblement les déclarations c'est pas ton fort. En gros t'es en train de rouler avec une voiture sur laquelle tu ne vérifies jamais que tes ampoules, tes freins et ta ceinture marchent ... donc ça marche jusqu'au jour où ça foire, et comme tu ne vérifies pas, tu te plantes.

Page : [1] 
Page 1 sur 1

Vous devez être connecté pour participer à la discussion.
Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !
Recevoir PC Astuces par e-mail


La Lettre quotidienne +226 000 inscrits
Avec l'actu, des logiciels, des applis, des astuces, des bons plans, ...

Les bonnes affaires
Une fois par semaine, un récap des meilleurs offres.

Les fonds d'écran
De jolies photos pour personnaliser votre bureau. Une fois par semaine.

Les nouveaux Bons Plans
Des notifications pour ne pas rater les bons plans publiés sur le site.

Les bons plans du moment PC Astuces

Tous les Bons Plans
SSD Silicon Power A55 1 To à 99,99 €
99,99 € 120 € -17% @Amazon

Amazon fait une promotion sur le SSD Silicon Power A55 2 To qui passe à 99,99 € livré gratuitement. Ce SSD à mémoire TLC possède un cache SLC et offre des taux de transfert de 550 Mo/s en lecture et 450 Mo/s en écriture. 


Voir le bon plan
Souris sans fil ergonomique verticale Logitech Lift (Bluetooth, Logi Bolt) à 59,99 €
59,99 € 79,99 € -25% @Amazon

Amazon fait une promotion sur la souris ergonomique sans fil Logitech Lift qui passe à 59,99 € au lieu de 79,99 €. Avec la Logitech Lift dites oui au confort. Cette souris ergonomique verticale vous permet de travailler des heures durant sans ressentir la moindre douleur dans votre poignet. Parfaitement adaptée aux mains de petite taille et de taille moyenne, elle possède un revêtement légèrement texturé, 6 boutons faciles d'accès, un capteur optique de 4000 dpi ainsi qu'un repose-pouce confortable. Vous pouvez la connecter sans fil via Bluetooth ou bien via le récepteur USB Logi Bolt fourni.


Voir le bon plan
Ecran 32 pouces incurvé KTC H32S17 (QHD, 165 Hz, 1 ms, HDR10) à 240,63 €
240,63 € 350 € -31% @Geekbuying

Geekbuying fait une promotion sur le tout nouvel écran 32 pouces incurvé KTC H32S17 qui passe à 240,63 € avec le code promo GKB23MS3 au lieu de 350 €. Cet écran incurvé (courbure 1500R) possède une dalle QHD 2560x1440 à 165 Hz, offre un temps de réponse de 1 ms et est compatible FreeSync et GSync. Connectique : 1xHDMI, 2xDP. 

Notez qu'en ce moment, si vous payez par Paypal, vous pourrez obtenir une remise supplémentaire de 10$, passant le prix total à 231,27 € !

L'envoi se fait depuis un entrepôt européen. Vous êtes ainsi certains de recevoir l'écran rapidement et sans douane.


Voir le bon plan
Tablette N-one Npad Pro (10.4'' IPS FHD, 8 coeurs, 8 Go/ 128 Go, Android 12) + coque et verre trempé à 159,13 €
159,13 € 230 € -31% @Geekbuying

Geekbuying fait une promotion sur la très bonne tablette N-one Npad Pro qui passe à 159,13 € avec le code GKB23MS3 au lieu de 230 €. Cette tablette possède un écran 10.4 pouces IPS FHD (2000x1200 pixels), un processeur T616 à 8 coeurs, 8 Go de RAM, 128 Go de stockage extensible par microSD, le GPS, le WiFi/Bluetoot et la 4G via un emplacement Dual SIM. Une webcam frontale 5MP + IR, une arrière de 13MP + flash LED et la reconnaissance facile sont présentes. Son châssis est en aluminium et elle offre une batterie de 6600 mAH à charge rapide 18W (USB Type C).

Le tout tourne sous Android 12 en français et intègre les codecs Widevine L1 pour lire le contenu HD en streaming (Netflix, Disney, etc...). De quoi tout faire sur cette tablette performante : jeux, vidéo, internet, bureautique, système GPS pour voiture, etc.

Une coque de protection avec rabat magnétique, un verre trempé pour protéger l'écran et un chargeur 18W sont fournis dans le pack.

La livraison se faisant depuis un entrepôt européen, vous êtes certains de recevoir rapidement la tablette et sans risque de douane. 


Voir le bon plan
16 Go de mémoire SODIMM DDR4 Crucial 3200 MHz à 40,79 €
40,79 € 65 € -37% @Amazon Allemagne

Amazon Allemagne fait une promotion sur le module de 16 Go de mémoire SODIMM DDR4 Crucial 3200 CL22 (CT16G4SFRA32A) qui passe à 37,81 €. Comptez 4,52 € pour la livraison en France soit un total de 42,33 € livré. On le trouve ailleurs à partir de 50 €. La RAM à 3200MHz peut être downclockée à 2933MHz ou 2666MHz si les spécifications du système ne prennent en charge que 2933MHz ou 2666MHz.

Le module de 8 Go est également en promotion à 23,41 € livré ainsi que le module de 32 Go à 66,72 € livré.

Une bonne affaire pour ces barrettes de mémoires adaptées aux ordinateurs portables, NUC, NAS, etc..


Voir le bon plan
Enceinte bluetooth Anker Soundcore Motion Boom à 74,99 €
74,99 € 99,99 € -25% @Amazon

Amazon fait une promotion sur la très bonne enceinte bluetooth Anker Soundcore Motion Boom qui passe à 74,99 €. On la trouve ailleurs à partir de 99,99 €. La livraison est gratuite.

Cette enceinte offre un son Hi-Res 30W et supporte le bluetooth 5.0 et l'aptX. L'enceinte est étanche IPX7, flotte, possède une poignée et offre jusqu'à 24 heures d'autonomie. Rechargement via un port USB-C.


Voir le bon plan

Sujets relatifs
Passage de variable et affichage
passage d'une URL à une autre
Passage de tableau lors d'un changement de page.
duree d'une session
Problème de gestion de variables de session
Problème de gestion de variables de session
passage variable avec header
flash/phph passage de variables
session: la solution?
passage variables php
Plus de sujets relatifs à Passage en session php
 > Tous les forums > Forum Forum des Webmasters