Foros del Web » Programando para Internet » PHP »

error funcion mysql_real_escape_string()

Estas en el tema de error funcion mysql_real_escape_string() en el foro de PHP en Foros del Web. buenas, al grano, en mi local hago una funcion con mysql_real_escape_string(), pero en el server me da el siguiente error @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código php: Ver ...
  #1 (permalink)  
Antiguo 31/08/2009, 14:35
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
error funcion mysql_real_escape_string()

buenas, al grano, en mi local hago una funcion con mysql_real_escape_string(), pero en el server me da el siguiente error


Código php:
Ver original
  1. Warning: mysql_real_escape_string() [function.mysql-real-escape-string]: A link to the server could not be established in /www/stream/admin/control.php on line 6

mi codigo es sin base de datos por el momento por que solo ocupo el administrador, alguien me ayuda plis :/

Código php:
Ver original
  1. <?php
  2. function limpiaCadena ($cadena)
  3. {
  4. $cadena = stripslashes($cadena);
  5. return mysql_real_escape_string($cadena);
  6. }
  7. $user = limpiaCadena(htmlentities($_POST[usuario]));
  8. $passwd = limpiaCadena($_POST[contrasena]);
  9. $contra_encript = sha1($passwd); // contraseña
  10. #---------------------------------------------------------------------------------------------------------------------------------------->
  11. $usser = "admin";
  12. $contra = "cb7e346988778f0cc346e97952821b26ec62b3";
  13. #---------------------------------------------------------------------------------------------------------------------------------------->
  14. if(($usser == "$user") && ($contra == "$contra_encript")) // valido datos
  15. {
  16. session_start(); // Definimos la sesion para aplicarle seguridad a nuestras paginas internas...
  17. $_SESSION['loggusuario']= "$user";
  18. $_SESSION["usuariobadd"]= "yesreferer";
  19.    
  20. header ("Location: principal.php");
  21. }
  22. elseif(($uss == "$user") && ($con == "$contra_encript"))
  23. {
  24. // Crear la sesion y sus variables ...
  25. // Redireccionar
  26. session_start(); // Definimos la sesion para aplicarle seguridad a nuestras paginas internas...
  27. $_SESSION['userusuario']= "$user";
  28. $_SESSION["badduser"]= "yesreferido";
  29.    
  30. header ("Location: quest.php");
  31. }
  32. else // Acceso invalido
  33. {              
  34. header("Location: index.php?errordeingreso=yesrerefer");
  35. }
  36. ?>
  37. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #2 (permalink)  
Antiguo 31/08/2009, 14:43
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: error funcion mysql_real_escape_string()

ese error solo me aparece en algunas versiones de wamp for wiindows (es por la version del mysql, supongo), especifica el OS del servidor, en opensuse no he tenido problemas.

es preferible usar addslashes y así te evitas esos inconvenientes
  #3 (permalink)  
Antiguo 31/08/2009, 15:05
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: error funcion mysql_real_escape_string()

la verdad en windows me anda bien es en el linux server que me da ese error
Apache 2.0 Handler - Apache Version Apache/2.2.9
5.2.6-1+lenny3, php5 mysql 5

me gustaría saber como lo soluciono :/
si pongo addslashes en ves de stripslashes es la misma seguridad?

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!
  #4 (permalink)  
Antiguo 31/08/2009, 15:07
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: error funcion mysql_real_escape_string()

Pero es que stripslashes es lo contrario de addslashes
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 31/08/2009, 15:20
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 8 meses
Puntos: 1532
Respuesta: error funcion mysql_real_escape_string()

Cita:
Iniciado por abimaelrc Ver Mensaje
Pero es que stripslashes es lo contrario de addslashes
si pero él antes revisa si tiene habilitadas las comillas mágicas, yo prefiero desactivarlas, son mas un problema que solución.

Amigo addslashes te funciona, hasta ahora no he tenido problemas y escapa los caracteres necesarios, mysql_real_scape_string es en esencia lo mismo pero tiene en cuenta la codificación de la base de datos, en mi modelo de pre-procesamiento de datos primero convierto (utf8_encode) y luego escapo (addslashes), lo he probado con infinidad de caracteres y funciona, incluso doctrine y propel usan métodos similares porque los mismos son multi-base de datos y tratan de no usar funciones especificas de bases de datos; recomendación: desactiva las comillas mágicas.
  #6 (permalink)  
Antiguo 31/08/2009, 15:27
Avatar de Triby
Mod on free time
 
Fecha de Ingreso: agosto-2008
Ubicación: $MX->Gto['León'];
Mensajes: 10.106
Antigüedad: 15 años, 8 meses
Puntos: 2237
Respuesta: error funcion mysql_real_escape_string()

Siendo una funcion de base de datos, lo que te pide es que se haya establecido una conexion al servidor de BDD. Si no planeas usar base de datos y no son textos para guardar en un archivo, entonces no necesitan escaparse y, si solamente los usas para comparacion, esta de mas pasarlos por limpiaCadena() porque no hay riesgos de inyeccion SQL ni insercion de scripts XSS.
__________________
- León, Guanajuato
- GV-Foto
  #7 (permalink)  
Antiguo 31/08/2009, 15:36
Avatar de kaninox  
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Respuesta: error funcion mysql_real_escape_string()

a eso era lo que iba, según lo que había leído mysql_real_escape_string pide al manos un mysql_connect :/ no sabia por que sin ella me daba error, pero viendo las respuestas ya quedo un poco mas aliviado, por el tema de posibles accesos, bueno gracias a todos.
__________________
Gokuh Salvo al mundo. PUNTO!!!!
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 00:41.