Pregunta sobre Developing with WordPress de Wordpress:

establecer cookies no funcionará

Un usuario preguntó 👇

Estoy usando formularios Ninja y quiero agregar un plugin cuando necesitan iniciar sesión en una cuenta para que puedan registrarse en eventos. Tengo la página con un formulario que solicita su nombre de usuario y contraseña. Cuando envían el formulario, reviso sus créditos y si todo está bien, son redirigidos a la misma página donde tengo un código adjunto a la iniciativa que parece poner algunas cookies y luego redirecciona. . Está redireccionando pero no puedo configurar las cookies. He estado en esto durante unas cuatro horas y no puedo entender qué estoy haciendo mal. ¡Agradecemos cualquier ayuda!

add_shortcode('bbr_account', 'bbr_account_func');
 function bbr_account_func() {
  return var_export($_COOKIE['account_id'],true);
 }

 if(!is_admin()) {
 Global $wp;
$dslug = $_SERVER['REQUEST_URI'];
  if($dslug=='/dpi-sign-in/') {

   add_action('init', 'bbr_login');
  }
 }

function bbr_login() {
 Global $wpdb;
 $uip = $_SERVER['REMOTE_ADDR'];
 $login_info = $wpdb->get_row('SELECT * FROM         '.$wpdb->prefix.'bbr_login WHERE ip LIKE "'.$uip.'"', ARRAY_A);
if(!is_null($login_info)) {
 $user_info = $wpdb->get_row('SELECT * FROM '.$wpdb->prefix.'bbr_usrs WHERE id = '.$login_info['id'], ARRAY_A);
    $wpdb->delete($wpdb->prefix.'bbr_login',array('id'=>$login_info['id']));

 setcookie('account_id',$user_info['id'],time()+3600,'/','www.register.dynamicpathwaysinc.com');
 header('refresh: 4; url=/account');
 }

Cuando me redirigen, obtengo una Notificación: Índice no especificado: account_id en /home/dpiadmim/register.dynamicpathwaysinc.com/wp-content/plugins/ninja-forms-dpi-registration-system/ninja-forms-dpi-registration-system. php en línea 17 NULL

Este tema fue modificado hace 1 año, 7 meses por. Este tema fue modificado hace 1 año, 7 meses por.

(@autotutorial)

Hace 1 año, 7 meses

no puede establecer cookies fuera del dominio donde se ejecuta el código php. Si estoy en lo cierto, crea un código setcookie fuera del contexto de wordpres, es decir, crea un código php en el que establece una cookie para el dominio externo y desde el dominio externo verifica si esa cookie existe.

(@ brad3260)

Hace 1 año, 7 meses

¿Qué significa dominio externo? Estoy configurando la cookie para el mismo dominio que ejecuta el código. Incluso intenté omitir el dominio y la ruta.

(@gilbertank)

Hace 1 año, 7 meses

¿Tiene algún fragmento de código antes de lo que ha puesto aquí?

(@ brad3260)

Hace 1 año, 7 meses

Sin hacer eco o imprimir declaraciones o cualquier línea que envíe algo al navegador

(@bcworkz)

Hace 1 año, 7 meses

Puede que no hayas enviado nada, pero es posible que tengas WP. Es difícil de decir sin más contexto. set_cookie () debería llamarse alrededor del punto donde cae la acción «send_headers». Alternativamente, use JavaScript para configurar cookies. Entonces puedes hacerlo en cualquier momento.

(@autotutorial)

Hace 1 año, 7 meses

setcookie('account_id',$user_info['id'],time()+3600,'/','www.domain.com');

$ _COOKIE se creará después de la próxima interacción.

(@autotutorial)

Hace 1 año, 7 meses

add_shortcode('bbr_account', 'bbr_account_func');
function bbr_account_func() {
if(isset($_COOKIE['account_id'])){
return ((int) $_COOKIE['account_id'])
}
return false;
}

Lanzar int para account_id o false falló

(@diondesigns)

Hace 1 año, 7 meses

Intente configurar la cookie utilizando el dominio base, de la siguiente manera:

setcookie('account_id',$user_info['id'],time()+3600,'/','.dynamicpathwaysinc.com');

Además, si su secuencia de comandos PHP configura la cookie y luego intenta leerla más tarde en la secuencia de comandos, no funcionará. La cookie recién configurada no está disponible hasta que se haya cargado la página de redireccionamiento.

(@autotutorial)

Hace 1 año, 7 meses

<?php
error_reporting(-1);
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
//add_shortcode('bbr_account', 'bbr_account_func');
$user_info['id'] = 2;
bbr_account_func();
function bbr_account_func() {
//if(isset($_COOKIE['account_id'])){
global $user_info;
return ((int) $_COOKIE['account_id']);
/*}
return false;*/
}
/*if(!is_admin()) {
Global $wp;
$dslug = $_SERVER['REQUEST_URI'];
if($dslug=='/dpi-sign-in/') {
add_action('init', 'bbr_login');
}
}*/
bbr_login();
function bbr_login() {
/*Global $wpdb;
$uip = $_SERVER['REMOTE_ADDR'];
$login_info = $wpdb->get_row('SELECT * FROM '.$wpdb->prefix.'bbr_login WHERE ip LIKE "'.$uip.'"', ARRAY_A);
if(!is_null($login_info)) {
$user_info = $wpdb->get_row('SELECT * FROM '.$wpdb->prefix.'bbr_usrs WHERE id = '.$login_info['id'], ARRAY_A);
$wpdb->delete($wpdb->prefix.'bbr_login',array('id'=>$login_info['id']));*/
global $user_info;
setcookie('account_id',$user_info['id'],time()+3600,'/','www.register.dynamicpathwaysinc.com');
//header('refresh: 4; url=/account');
}

Convertí de php wordpress a php puro setcookie crea el encabezado correcto para iniciar y luego el navegador será libre de aceptar este comando o no, la próxima vez que el navegador inicie la cookie no genera guerra y lo hace es porque no existe con la función de verificación isset cuando está allí, por lo que no obtendrá un error. A menos que la URL comience y termine así http://www.register.dynamicpathwaysinc.com/

(@ brad3260)

Hace 1 año, 7 meses

Gracias a todos por las sugerencias, todavía no puedo hacer que funcione, así que creo que probaré javascript. Sé que necesitaría una función js que se parezca a la siguiente

function setcookie(accid) {
//code
}

Pero, ¿cómo pongo los valores de mi PHP en la llamada a la función?

(@autotutorial)

Hace 1 año, 7 meses

no puede llamar a la cookie solo porque al principio no existe, ¿lo intentó como sugerí y puede restaurar su función falsa?

https://wordpress.org/support/topic/n-set-cookie-wont-work/#post-11589141

(@ brad3260)

Hace 1 año, 6 meses

Bueno, resulta que mi código estaba funcionando, tenía una edición SQL. Lo siento, pero gracias a todos por la ayuda.

(@bcworkz)

Hace 1 año, 6 meses

No se preocupe, me alegro de que lo haya resuelto.

(@ marlonridley1)

Hace 1 año, 3 meses

Sí, esos no funcionaron, aunque comencé a usar el consentimiento de cookies don notificación de cookies para gdpr

¿Solucionó tu problema??

0 / 0

Deja una respuesta 0

Tu dirección de correo electrónico no será publicada.