javascript - Wordpress & non-wordpress: 500 Internal Server Error when use $_POST, $wp_session and custom SQL -
i'm developing custom profiles users.
my intention save data storage in $wp_session
, custom database.
from javascript, check if $idsession
, , $url
exists, if exist show "delete button", else show "add button" (i've 3 action buttons - marcador - favoritos - "recomendar". latter button isn't configured yet).
this javascript code:
function accion(t){ $.ajax({ url : '/action.php', data: { accion:t }, type: 'post', datatype: 'json', success: function(d){ switch(d.tipo){ case 'chequear': if(d.estadofav==1){ $('#favoritos').html('<i class="fa fa-heart"></i> borrar favorito'); $('#favoritos').attr('data-accion','eliminar-favorito'); } if(d.estadomarc==1){ $('#marcador').html('<i class="fa fa-bookmark"></i> borrar marcador'); $('#marcador').attr('data-accion','eliminar-marcador'); } break; case 'agregar-favorito': if(d.addfav==1){ $('#favoritos').html('<i class="fa fa-heart-o"></i> aƱadir favorito'); $('#favoritos').attr('data-accion','agregar-favorito'); } else{ $('#favoritos').html('<i class="fa fa-exclamation-triangle"></i> error'); $('#favoritos').attr('data-accion','error'); } break; case 'eliminar-favorito': if(d.delfav==1){ $('#favoritos').html('<i class="fa fa-heart"></i> borrar favorito'); $('#favoritos').attr('data-accion','eliminar-favorito'); } else{ $('#favoritos').html('<i class="fa fa-exclamation-triangle"></i> error'); $('#favoritos').attr('data-accion','error'); } break; case 'agregar-marcador': if(d.addmarc==1){ $('#marcador').html('<i class="fa fa-bookmark-o"></i> guardar marcador'); $('#marcador').attr('data-accion','agregar-marcador'); } else{ $('#marcadores').html('<i class="fa fa-exclamation-triangle"></i> error'); $('#marcador').attr('data-accion','error'); } break; case 'eliminar-marcador': if(d.delmarc==1){ $('#marcador').html('<i class="fa fa-bookmark"></i> borrar marcador'); $('#marcador').attr('data-accion','eliminar-marcador'); } else{ $('#marcadores').html('<i class="fa fa-exclamation-triangle"></i> error'); $('#marcador').attr('data-accion','error'); } break; case 'recomendar': $('#recomendar').html('<i class="fa fa-retweet"></i> recomendar'); break; default: return false; break; } } }); } $(document).ready(function(){ $('.botones_users').on('click',function(e){ var t = $(this).attr('data-accion'); accion(t); e.preventdefault(); }); }); accion('chequear');
i send data ajax, using method post
, use switch check, add or delete based on action.
this loaded in footer.php
of wordpress site.
in custom php file, include core files of wordpress, database connection , switch decode json , make action indicated.
here php file:
<?php define('wp_use_themes', true); require('wp-load.php'); require_once("wp-config.php"); require_once('funciones-perfil.php'); $wp->init(); $wp->parse_request(); $wp->query_posts(); $wp->register_globals(); $wp->send_headers(); wp_session_start(); global $wp_session; function chequear_favorito(){ $cf = 0; $check_fav = $mysqli->query(" select user_id, url favoritos user_id ='".$wp_session['post_actual']['id']."' , url = '".$wp_session['post_actual']['e_url']."' "); if($check_fav->num_rows > 0){ $cf = 1; } return $cf; } function chequear_marcador(){ $cm = 0; $check_marc = $mysqli->query(" select user_id, url marcadores user_id ='".$wp_session['post_actual']['id']."' , url = '".$wp_session['post_actual']['e_url']."' "); if($check_marc->num_rows > 0){ $cm = 1; } return $cm; } function agregarfav(){ $af = 0; $add_fav = $mysqli->query(" insert favoritos(serie,episodio,temporada,url,titulo,user_id,image, estado) values ('".$wp_session['post_actual']['n_serie']."', '".$wp_session['post_actual']['n_episodio']."', '".$wp_session['post_actual']['n_temporada']."', '".$wp_session['post_actual']['e_url']."', '".$wp_session['post_actual']['e_titulo']."', '".$wp_session['post_actual']['id']."', '".$wp_session['post_actual']['e_imagen']."', '1' ") if($add_fav->num_rows > 0){ $af = 1; } return $af; } function agregarmarc(){ $am = 0; $add_marc = $mysqli->query(" insert marcadores(serie,episodio,temporada,url,titulo,user_id,image, estado) values ('".$wp_session['post_actual']['n_serie']."', '".$wp_session['post_actual']['n_episodio']."', '".$wp_session['post_actual']['n_temporada']."', '".$wp_session['post_actual']['e_url']."', '".$wp_session['post_actual']['e_titulo']."', '".$wp_session['post_actual']['id']."', '".$wp_session['post_actual']['e_imagen']."', '1' ") if($add_marc->num_rows > 0){ $am = 1; } return $am; } function eliminarmarc(){ $em = 0; $del_marc = $mysqli->query(" update marcadores set estado = '1' user_id = '".$wp_session['post_actual']['id']."' , url = '".$wp_session['post_actual']['e_url']."' , estado = '1' ") if($del_marc){ $em = 1; } return $em; } function eliminarfav(){ $ef = 0; $del_fav = $mysqli->query(" update favoritos set estado = '1' user_id = '".$wp_session['post_actual']['id']."' , url = '".$wp_session['post_actual']['e_url']."' , estado = '1' ") if($del_fav){ $ef = 1; } return $ef; } $_post = array_map('htmlspecialchars', $_post); $_post = array_map('strip_tags', $_post); $tipo = $_post['accion']; $unjson = array('metodopost' => $tipo); switch($tipo){ case 'chequear': $unjson['tipo'] = 'chequear'; $estado_fav = chequear_favorito(); $estado_marc= chequear_marcador(); $unjson['estadofav'] = $estado_fav; $unjson['estadomarc']= $estado_marc; break; case 'agregar-favorito': $unjson['tipo'] = 'agregar-favorito'; $agregarfav = agregarfav(); $unjson['addfav'] = $agregarfav; break; case 'eliminar-favorito': $unjson['tipo'] = 'eliminar-favorito'; $eliminarfav = eliminarfav(); $unjson['delfav'] = $eliminarfav; break; case 'agregar-marcador': $unjson['tipo'] = 'agregar-marcador'; $agregarmarc = agregarmarc(); $unjson['addmarc'] = $agregarmarc; break; case 'eliminar-marcador': $unjson['tipo'] = 'eliminar-marcador'; $eliminarmarc = eliminarmarc(); $unjson['delmarc'] = $eliminarmarc; break; /*case 'recomendar': $unjson['tipo'] = 'recomendar'; $recomendar = recomendar(); $unjson['recoestado'] = $recomendar; break;*/ default: $unjson['estado'] = 0; break; } exit(json_encode($unjson));
(i comment case 'recomendar').
when uploaded server, return 500 server error (viewed in console).
- i try commenting functions sql, return
$wp_session
correctly 500 error. - i try commenting
$wp_session
, core files, return 500 error. - i try commenting all, excepting
$_post
, get:{"metodopost":null,"estado":0}
. - i
print_r($wp_session)
, ok. - the sql ok, table , columns exists.
i believe problem $_post
, can't find error.
can me please?
thanks in advance
Comments
Post a Comment