Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Problema con codificacion al hacer consulta

Estas en el tema de Problema con codificacion al hacer consulta en el foro de PHP en Foros del Web. En la primera pagina: $resultado[0] es un nombre que puede contener comillas, &, etc.. Código: echo "<h4 align='center'><a href='main2main.php?EN=".urlencode($resultado[0])."'>".$resultado[0]."</a></h4>"; Y en la segunda recojo ese ...
  #1 (permalink)  
Antiguo 12/06/2015, 13:46
Avatar de Suarsan  
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 0
Problema con codificacion al hacer consulta

En la primera pagina:

$resultado[0] es un nombre que puede contener comillas, &, etc..

Código:
echo "<h4 align='center'><a href='main2main.php?EN=".urlencode($resultado[0])."'>".$resultado[0]."</a></h4>";
Y en la segunda recojo ese nombre, y hago una busqueda para obtener el id asociado al nombre. Al hacer la busqueda no encuentra el nombre si lleva comillas y $. Supongo entonces que es problema de la codificacion de simbolos, que no coincide con la de la bbdd y me dice que no existe tal registro..

Código:
//Recibo el nombre mediante la url
$Nombreevento = htmlspecialchars(addslashes(urldecode($_GET['EN'])));  //Aqui creo que esta el problema

//Busco el id
$con_eventos = "SELECT `EventID` FROM `EVENTS` WHERE `AdminID` LIKE '$Nombreusuario' AND `EventName` LIKE '$Nombreevento'";
$conectar = mysql_query($con_eventos);		
if(mysql_num_rows($conectar)>0){
      $resultado = mysql_fetch_row($conectar);
      $idevento = $resultado[0];
      header('Location: main_evento.php?AD='.$idevento);
}else{
      echo $Nombreusuario;
      echo $Nombreevento;
}
Se va al else, y al imprimirme el nombre del evento, lo que veo es identico a lo que veo en phpmyadmin.
  #2 (permalink)  
Antiguo 12/06/2015, 14:11
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Problema con codificacion al hacer consulta

y te fijaste en el codigo fuente que es lo que ves? ya que el navegador a veces te codifica.

mas alla de eso..

$con_eventos = "SELECT `EventID` FROM `EVENTS` WHERE `AdminID` LIKE '$Nombreusuario' AND `EventName` LIKE '$Nombreevento'";

$Nombreusuario no esta definido.
  #3 (permalink)  
Antiguo 12/06/2015, 14:16
Avatar de Suarsan  
Fecha de Ingreso: marzo-2015
Mensajes: 45
Antigüedad: 9 años, 1 mes
Puntos: 0
Respuesta: Problema con codificacion al hacer consulta

Cita:
Iniciado por marcusaurelio Ver Mensaje
y te fijaste en el codigo fuente que es lo que ves? ya que el navegador a veces te codifica.

mas alla de eso..

$con_eventos = "SELECT `EventID` FROM `EVENTS` WHERE `AdminID` LIKE '$Nombreusuario' AND `EventName` LIKE '$Nombreevento'";

$Nombreusuario no esta definido.
$Nombreusuario está definido aunque no haya subido el codigo. Asi que eso no es pero gracias

Php y phpmyadmin muestran esto:

- Cumpleaños &quot;Suarez &amp; Borja&quot;

Y el navegador con las herramientas para desarrolladores veo esto:

- Cumpleaños &amp;quot;Suarez &amp;amp; Borja&amp;quot;

Aqui esta el problema!! ¿Que me esta pasando?

SOLUCIONADO!! Me sobraba el htmlspecialchars. Gracias marcusaurelio!

Última edición por Suarsan; 12/06/2015 a las 14:35
  #4 (permalink)  
Antiguo 12/06/2015, 14:44
 
Fecha de Ingreso: enero-2007
Mensajes: 285
Antigüedad: 17 años, 3 meses
Puntos: 21
Respuesta: Problema con codificacion al hacer consulta

el problema es que te esta convirtiendo el & de el codigo de las comillas.

$Nombreevento = htmlspecialchars(addslashes(urldecode($_GET['EN'])));

ahi hay mucha conversion de cosas.. proba poniendo y sacando algunas.. a ver que pasa.. ahora estoy medio a las corridas sino me lo pongo a probar.. pero me juego que si le sacas el htmlspecialchars tiene que andar

Etiquetas: codificacion, html, mysql, registro, select, sql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:49.