FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
mysq_connect y mas allá....
Hola a todos....bastante tiempo sin venir por esto lados y veo que mi cuenta aun está
Bueno he aqui el problema: 1º tengo un servidor linux y he montado mysql 4.0.18 en el. Tengo varias aplicaciones hechas en delphi que corren de distintos windows y se conectan a este servidor sin ningun problema. Debo agregar que cada usuario cuando se conecta se identifica, e internamente se pasa la ip de donde se está conectando al servidor mysql para que la contraste con la tabla de usuarios/host (en realidad esto pasa automáticamente yo no hago nada). Si pasa, el usuario entra...si no ....no. 2º he decidido crear las mismas aplicaciones pero esta vez via web (php básicamente), pero no he podido conectarme a mysql con los mismos usuarios siendo que estos ya están creados en el servidor mysql. He tenido que crear los mismos usuarios en el servidor, pero esta vez en la forma: usuario@localhost siendo que antes estaban como: usuario@ip ENTONCES: definitivamente es algo entre la conexion php-mysql, la cual no se realiza de la misma forma que en delphi-mysql. La funcion mysql_connect(host,user,pass) me funciona solo si el usuario ha sido ingresado a mysql como user@localhost y la llamada desde php la es : mysql_connect('localhost',user,pass). mi idea era connectarme algo asi como: mysql_connect($_SERVER["HTTP_X_FORWARDED_FOR"],user,pass) de manera de validar/restringir a los usuarios, tal cual sucede con mis aplicaciones delphi. Alguien me puede ayudar?
__________________
- Si tienes un problema que tiene solución ¿porque te preocupas? - Si tienes un problema que no tiene solución ¿porque te preocupas? |
#2
|
||||
|
||||
Vamos a ver, creo que hay una confusión.
El parámetros host de mysql_connect es la dirección a la que te conectas y no la dirección desde la que te conectas. Recuerda además que MySql maneja los derechos por usuario-ip. Tal como tenías anteriormente, tus usuarios tenían derecho a conectarse desde una ip específica que no incluía localhost. Localhost se refiere a la máquina donde está instalado el servidor de mysql. Si, como pienso, tus scripts PHP corren en la misma máquina que el servidor MySql entonces, aun cuando sean los mismos usuarios, se estarán conectando desde una dirección en la cual no tienen derechos. Por ello debes agregar a tu tabla MySql.users las entradas correspondientes, para los mismos usuarios pero con localhost. // Saludos Última edición por roman fecha: 22-04-2004 a las 20:33:33. |
#3
|
||||
|
||||
es importante resaltar aqui, según ya te ha dicho román, que en este tipo de aplicaciones, quien se conecta a la base de datos, no es el "cliente" desde donde se carga la página (el explorador) sino el servidor web, que es quien procesa las instrucciones de mysql. Si el servidor web está en la misma máquina, evidentemente tenes que darle "permisos" como localhost. Si está en una máquina diferente, tenes que darle permisos con la ip de la máquina desde donde se conecta.
Si queres un mecanísmo de validación usuario/ip, como el que has usado hasta ahora en delphi, debieras definir una tabla que los relacione, y una vez conectado a la bd, desde php, verificar con la ip del cliente si existe una entrada en esta tabla, y si no, denegar la conexión. hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#4
|
||||
|
||||
Cita:
Cita:
Cita:
Tan sólo para aclararle más a DJ VMan: el mecanismo que usan Delphi y PHP para realizar la conexión es esencialmente el mismo: se envían el nombre de usuario e ip al servidor de MySql y éste verifica que el par (usuario, ip) esté en la tabla 'users' (tabla de MySql) para aceptar o negar la conexión. Si la conexión viene desde una aplicación Delphi la ip será la de la pc donde corre la aplicación, si se conecta con script PHP la ip, como dice jachguate, será la del servidor WEB (que no necesariamente es el mismo que el de MySql). // Saludos |
#5
|
||||
|
||||
Cita:
Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#6
|
||||
|
||||
Cita:
Lo que quiero aclarar es que no hay ninguna diferencia entre Delphi o PHP en este respecto. La diferencia está en la ip desde donde se conecta. No tiene que definir ninguna tabla para relacionar nada, a menos claro, que requiera un mecanismo personalizado de validación, pero esto último será por igual si lo hace con Delphi o PHP. // Saludos |
#7
|
||||
|
||||
A ver, a ver...
Yo estoy totalmente de acuerdo con vos que no hay ninguna diferencia entre Delphi y PHP, en lo que respecta a la conexión a mySQL. Sin embargo, el amigo DJ VMan tiene un comportamiento que desea que sea comun, y dado lo ya comentado no lo es "por defecto" y es que los usuarios "finales" o "reales" (vaya, los tipos que se sientan frente a la pc) solamente puedan conectarse desde determinadas IP's.. Alli es donde en Delphi era "automático" y en php tendría que hacerlo a "mano"... supe explicarme esta vez??? Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
|
|
|