Wie speichere und empfange ich Variablen in WP-Sitzungen?
-
-
Wenn die Antwortfür Sie hilfreich war,sollten Sie sie akzeptieren.Siehe »[Was sollichtun,wennjemandmeine Fragebeantwortet?] (Http://wordpress.stackexchange.com/help/someone-answers)« und/oder »[Warumist die Abstimmung wichtig?] (Http://wordpress).stackexchange.com/help/why-vote) «Weitere Informationen zum Modell [wordpress.se]finden Siein der [Hilfe].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
-
Ich denke,derfolgende Link wird Ihnen helfen.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 Antworten
- Stimmen
-
- 2013-10-09
Sitzungen sindin WordPress standardmäßignicht aktiviert. Wenn Sie PHP-Sitzungen aktivierenmöchten,fügen Sie diese am Anfang Ihrer
hinzufunctions.php
:if (!session_id()) { session_start(); }
Sie könnenjetzt
$_SESSION['your-var'] = 'your-value';
verwenden,umeine Sitzungsvariablefestzulegen. Schauen Sie sich die PHP-Dokumentation zu Sitzungen an.
Esgabeine zweite Antwort,diemeiner Meinungnach aucheinen Wert hatte - leider wurde siegelöscht,ichfüge die Informationen hiererneut hinzu. Die Antwortbezog sich auf WP Session Manager ,ein von @eamann als alternative Lösunggeschriebenes Plugin .
Ich habeeinige Dinge über das Plugingelesen,es abernie benutzt,weilich -bisher -bei PHP-Sitzungenbleibe -nie das Problem hatte,dassich sienichtbenutzen konnte. Diesisteine Erklärung/Kommentar vom Plugin-Autor selbst habeicheinige mögliche Vorteilegefunden.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.-
Darfich Siebitten,sich hiereine Frage zubenutzerdefinierten Feldern anzusehen: 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
füge diesin deinerfunctions.php hinzu
<?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
Ich werdeerklären,wieeine Benutzernamensitzungmit dem Plugin Native PHP Sessionsfor WordPress festgelegt wird.Sie können diese Logik auf Ihr Problem anwenden.
Fügen Sie dies Ihrer Dateifunctions.php hinzu
if (!session_id()) { session_start(); } if ( isset( $_POST['wp-submit'] ) ){ $_SESSION['username']=$_POST['log']; }
$ _POST ['log'] verweist auf das Eingabefeldfür den Benutzernamen aus dem WordPress-Anmeldeformular.Wenn sichein Benutzer anmeldet,wird der Benutzernamein $ _SESSION ['Benutzername']gespeichert. In Ihrem Fall würden Sie 'log'in die Formularvariablennamen ändern,die Sie 'car_color' haben.
Verweisen Sie späterin einer anderen PHP-Datei auf den Benutzernamen von
$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
Vielleichtgibt esin Wordpress keine üblichen Sitzungen ... Wordpress kennt das Konzept der Benutzer.Sie können Informationen zubestimmten Benutzernmit den Funktionen
add_user_meta
verwalten.update_user_meta
,get_user_meta
unddelete_user_meta
.Wenn Sie die auf diese Weisein JavaScriptgespeicherten Informationenbenötigen,können Sieein kleines PHP-Skript schreiben,das das Erbrocheneerbricht,undesmit Ajax aufrufen.
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.
-
Diesistnurgut,wenn der Benutzer angemeldetist.This is only good if the user is logged in.
- 2
- 2016-11-10
- Tim Hallman
-
- 2016-12-05
Setzen Sie auf der PHP-Seite,die die AJAX-Anforderungempfängt,$ _SESSION wiefolgt.
$car_color = <user selected form input data>; $_SESSION['car_color'] = $car_color;
Greifen Sie auf die Variable $ _SESSION
zuif(isset($_SESSION['car_color'])) { $value = $_SESSION['car_color']; } else { $value = 'Please select a car color.'; }
Dieses Tutorial enthält weitere Informationen zur ordnungsgemäßen Einrichtung undEntsorgung von Sitzungen.
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
Siemüssen zuersteine Sitzungin WordPress starten,können abernichteinfach soeine Sitzungin WordPress starten.
Bevor Sie Sitzungen starten,müssen Sie überprüfen,obein Plugin die Sitzungfrühergestartet hat,damöglicherweise unerwartete Probleme auftreten. Dafürbenötigen Sieeinen kleinen Algorithmus.
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(); } }
Ich habe hier auch Unterstützungfür ältere PHP-Versionen hinzugefügt.
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.
Ich habeein Formularmit einigen Kontrollkästchen und Auswahlfeldern undes zeigt an,was der Benutzer übereinen Ajax-Aufrufmöchte. Das Problembesteht darin,dass der Benutzer,wenner auf das Element klickt und die Detailseite angezeigt wird und dannbeschließt,zur vorherigen Seite zurückzukehren,auf seine vorherige Auswahl klicken und sieerneut auswählenmuss.
Ichmöchte WP dazubringen,alle Optionenin der Sitzung zu speichern,wenn auf die Schaltfläche zur Detailseitegeklickt wird,und dietatsächlichen Informationenin der Sitzung zu speichern. Wenner die Seite dannerneutbesucht,werden die Wertein Sitzungen überprüft undfestgelegtfalls vorhanden.
Könnte dasin WPgemacht werden?
Wennja,wie?
Vereinfachen wir das zu stark und sagen,dass wir soetwasin unserer Form haben:
Ich verwendein meinem Formularnicht die Schaltfläche "Senden",sondern wirdbei Eingabeänderungen über AJAX verarbeitet.
Undin meinen Ergebnissen über Ajax habeicheinen Link zur Detailseite:
Haben Sieeine Idee,wieichmeine Wertein Session speichern undbeim erneuten Aufrufen/Neuladen/Zurückim Browser aufrufen kann?
Ichmussin der Lage sein,diein der Sitzunggespeicherten Inhalte zu lesen und über? Javascript? und lösemeine Suchfunktion über Ajax aus,wasbereitsgutfunktioniert.
Ichmussnur speichern (wahrscheinlichbevorich zu $ linkin href vonby detailbuttongehe und Sitzungsvariablen lese und sende (falls vorhanden).