Comment stocker et recevoir des variables dans des sessions WP?
-
-
Si la réponse vous a été utile,envisagez de l'accepter.Voir »[Que dois-jefaire quand quelqu'un répond àma question?] (Http://wordpress.stackexchange.com/help/someone-answers)«et/ou »[Pourquoi voterest-ilimportant?] (Http://wordpress.stackexchange.com/help/why-vote) «,plus d'informations sur lemodèle [wordpress.se] sont disponibles dans [help].If the answer was helpful to you, then consider accepting it. See »[What should I do when someone answers my question?](http://wordpress.stackexchange.com/help/someone-answers)« and/or »[Why is voting important?](http://wordpress.stackexchange.com/help/why-vote)«, more information about the [wordpress.se] model is available at the [help].
- 0
- 2015-04-29
- Nicolai
-
Jepense que le lien ci-dessous vous aidera.https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-pluginI think below link will help you. https://wordpress.stackexchange.com/questions/105453/getting-headers-already-sent-error-from-plugin
- 0
- 2018-10-04
- Vivekanand Saraswati
-
6 réponses
- votes
-
- 2013-10-09
Les sessionsne sontpas activéespar défaut dans wordpress,si vous souhaitez activer les sessionsphp,ajoutez ceci au début de votre
functions.php
:if (!session_id()) { session_start(); }
Vouspouvezmaintenant utiliser
$_SESSION['your-var'] = 'your-value';
pour définir une variable de session. Jetez un œil à la documentation PHP sur les sessions .
Mise àjour :
Il y aeu une deuxième réponse,qui,dansmonesprit,avait aussi une valeur -malheureusementelle a été supprimée,je rajoute lesinformationsici. La réponsefaisait référence à WP Session Manager ,unplugin écritpar @eamann comme solution alternative .
J'ai lu certaines choses sur leplugin,maisje ne l'aijamais utilisé car -jusqu'àprésent -je m'entiens aux sessions PHP -je n'aijamaiseu leproblème dene paspouvoir les utiliser. Ceciest une déclaration/commentaire par l'auteur duplugin lui-même,j'aitrouvé quelques avantagespossibles.Sessions aren't enabled in wordpress by default, if you want to activate php sessions add this at the beginning of your
functions.php
:if (!session_id()) { session_start(); }
You now can use
$_SESSION['your-var'] = 'your-value';
to set a session variable. Take a look at the PHP documentation on sessions.
Update:
There was a second answer, which, in my mind, had a value too - unfortunately it got deleted, I'm re-adding the information here. The answer was referring to WP Session Manager a plugin written by @eamann as a alternative solution.
I read some things about the plugin, but never used it because - so far - I'm sticking with PHP sessions - never had the problem that I couldn't use them. This is a statement/comment by the plugin author himself I found about some possible advantages.-
puis-je vous demander dejeter un œil à une question relative aux champspersonnalisésici: https://wordpress.stackexchange.com/questions/265852/set-and-unset-the-custom-field-value?may I ask you to have a look at a custom field related question here : https://wordpress.stackexchange.com/questions/265852/set-and-unset-the-custom-field-value ?
- 0
- 2017-05-04
- Istiaque Ahmed
-
- 2017-06-14
ajoutez ceci à dans votrefunctions.php
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
add this at in your functions.php
<?php function tatwerat_startSession() { if(!session_id()) { session_start(); } } add_action('init', 'tatwerat_startSession', 1);
-
- 2018-08-05
Je vais vousexpliquer comment définir une session denom d'utilisateur avec leplugin Native PHP Sessionsfor WordPress .Vouspouvez appliquer cette logique à votreproblème.
Ajoutez ceci à votrefichierfunctions.php
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$ _POST ['log']fait référence à la zone de saisie dunom d'utilisateur duformulaire de connexion wordpress.Lorsqu'un utilisateur se connecte,lenom d'utilisateurest stocké dans $ _SESSION ['username']. Dans votre cas,vous changeriez «log»pour lesnoms de variables deforme que vous avez «car_color».
Référencez lenom d'utilisateurplustard dans un autrefichierphppar
$username=$_SESSION['username'];
I will explain how to set a username session with the Native PHP Sessions for WordPress plugin. You can apply this logic to your problem.
Add this to your functions.php file
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$_POST['log'] is referencing the username input box from the wordpress login form. When a user logs in, the username is stored to $_SESSION['username']. In your case, you would change 'log' to the form variable names you have 'car_color'.
Reference the username later in some other php file by
$username=$_SESSION['username'];
-
- 2016-08-12
Peut-être qu'iln'y apas de sessions habituelles dans Wordpress ... detoutefaçon,Wordpress connaît le concept d'utilisateurs.Vouspouvezgérer lesinformations relatives à des utilisateurs spécifiques avec lesfonctions
add_user_meta
,update_user_meta
,get_user_meta
etdelete_user_meta
.Si vous avezbesoin desinformationsenregistrées de cettemanièreen JavaScript,vouspouvez écrire unpetit script PHP qui vomit ce dont vous avezbesoin,et l'appeler avec Ajax.
Maybe there are no usual sessions in Wordpress ... anyway, Wordpress knows the concept of users. You can manage information related to specific users with the the functions
add_user_meta
,update_user_meta
,get_user_meta
, anddelete_user_meta
.If you need the information saved in this way in JavaScript, you can write a little PHP script that vomits what you need, and call it with Ajax.
-
Celan'estbon que si l'utilisateurest connecté.This is only good if the user is logged in.
- 2
- 2016-11-10
- Tim Hallman
-
- 2016-12-05
Sur lapage PHP qui reçoit la requête AJAX,définissez $ _SESSION comme ceci.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Accéder à la variable $ _SESSION
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
Cetutoriel donneplus de détails sur la configuration correcteetdisposition des sessions.
On the PHP page that receives the AJAX request, set $_SESSION like this.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Access the $_SESSION variable
if(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
This tutorial goes into more detail about proper setup and disposal of sessions.
-
- 2020-08-31
Vous devez d'abord démarrer une session dans WordPressmais vousne pouvezpas démarrer une session dans WordPress comme ça.
Avant de démarrer les sessions,vous devez vérifier si unplugin a démarré la sessionplustôt car vouspouvez avoir desproblèmesinattendus. Vous avez doncbesoin d'unpetit algorithmepour cela.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
J'ai également ajouté lapriseen charge des anciennes versions de PHPici.
You must first start a session in WordPress but you can't start a session in WordPress just like that.
Before starting sessions, you need to check if some plugin started the session earlier because you may have unexpected problems. So you need a little algorithm for that.
if (version_compare(PHP_VERSION, '7.0.0', '>=')) { if(function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_start(apply_filters( 'cf_geoplugin_php7_session_options', array( 'cache_limiter' => 'private_no_expire', 'read_and_close' => false ))); } } else if (version_compare(PHP_VERSION, '5.4.0', '>=') && version_compare(PHP_VERSION, '7.0.0', '<')) { if (function_exists('session_status') && session_status() == PHP_SESSION_NONE) { session_cache_limiter('private_no_expire'); session_start(); } } else { if(session_id() == '') { if(version_compare(PHP_VERSION, '4.0.0', '>=')){ session_cache_limiter('private_no_expire'); } session_start(); } }
I've also added support for older PHP versions here.
J'ai unformulaire avec des cases à cocheret des cases de sélectionet ilmontre ce que l'utilisateur veut via un appel ajax. Leproblèmeest que lorsque l'utilisateur clique sur l'élémentet que lapage de détails s'affiche,puis décide de revenir à lapageprécédente,il doit cliqueret sélectionner ànouveau son choixprécédent.
Je voudrais que WP stocketoutes les options de la session lorsque lebouton de lapage de détailest cliquéet enregistre lesinformations réelles dans la session,puis lorsqu'il visite ànouveau lapage,les valeurs seront vérifiées dans les sessionset définies le cas échéant.
Celapourrait-il êtrefait dans WP?
Si oui,comment?
Simplifions à l'extrêmeet disons quenous avons quelque chose comme ça dansnotreformulaire:
Jen'utilisepas debouton d'envoi dansmonformulaire,ilestgéré via AJAX lors du changement d'entrée.
Et dansmes résultats obtenus via ajax,j'ai un lien vers lapage de détail:
Avez-vous uneidée de lafaçon dontje peux stockermes valeurs dans Sessionet les appeler lorsqueje revisite/recharge/bouton retour dans lenavigateur?
J'aibesoin depouvoir lire le contenu de la sessionet de l'utiliser via? Javascript?et déclenchermafonction de recherche via ajax quifonctionne déjàbien.
J'aijustebesoin de stocker (probablement avant d'aller à $ link dans href ouparbouton de détailet lireet envoyer des variables de session (siellesexistent).