Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

293
Views
Sesión perdida después de enviar formulario en wordpress

La sesión que configuré se pierde después de enviar el formulario.

Había creado la clase de sesión para configurar una nueva sesión, desactivarla, etc. En function.php de la plantilla de wordpress.

función.php

 if (!session_id()) { session_start(); } include get_template_directory() . "/custom/session.php";

Sesión.php

 class session { function __construct() { } function set_flashdata($name, $value) { $_SESSION[$name] = $value; } function flashdata($name) { if (isset($_SESSION[$name])) { $str = $_SESSION[$name]; return $str; } else { return FALSE; } } function userdata($name) { if (isset($_SESSION[$name])) { return $_SESSION[$name]; } else { return FALSE; } } function set_userdata($name, $value) { $_SESSION[$name] = $value; } function unset_userdata($name) { if (isset($_SESSION[$name])) { unset($_SESSION[$name]); } } }

Intento configurar la sesión como:

 <?php $sess = new session(); $sess->set_userdata('sess_name',"some value"); ?> <form action="get_permalink(212);"> //input buttons </form>

Después de enviar el formulario, va al enlace permanente (212). Entonces lo intenté.

 <?php $sess = new session(); $value = $sess->userdata('sess_name'); var_dump($value); //returns false. That means session is lost after form submit. Why? ?>
about 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Tienes que llamar siempre a session_start() para cada solicitud .

La misión de session_start() es:

  • Crea una nueva sesión
  • Reiniciar una sesión existente

Eso significa que, si ha creado una sesión y no llama al método session_start(), la variable $_SESSION no se cumplirá.

Excepto : si en su php.ini ha establecido la opción session.auto_start en 1, entonces, en ese caso, no es necesario llamar a session_start() porque la variable $_SESSION se cumple implícitamente.

about 4 years ago · Santiago Trujillo Report

0

Debe mover el inicio/reanudación de la sesión al constructor de su sesión.

Al igual que:

 class session { function __construct() { if (! session_id()) { session_start(); } }

Otra cosa para mencionar, cada vez que haga una new Session obtendrá un objeto de la misma funcionalidad trabajando con la misma variable global $_SESSION .

No necesita más de un objeto $session , sería un buen momento para ver el Singleton pattern .

about 4 years ago · Santiago Trujillo Report

0

Debe usar la variable global de wordpress para la condición de que la sesión esté configurada o no, algo así como:

 global $session; if (!session_id()) { session_start(); } include get_template_directory() . "/custom/session.php";
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!