Ver Mensaje Individual
  #11 (permalink)  
Antiguo 27/10/2006, 10:55
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Según el código que expones .. pese que validas el método (GET) y el tipo (con tus expresiones regulares) de dato (numerico en tu caso) ... si yo ingreso un valor de un "vcard" (variable en $_GET) que no exista en tu BBDD .. según el código que propones .. "reventará" dicha ejecución con un bonito mensaje de error que (lo más probable, depende de configuración de reporte de errores que uses) me desvele información sobre rutas y nombres de tus scripts.

En resumen, .. debes "ver" cuantos registros te arroja tu consulta SQL antes de pretender acceder a su resultado.

Si tu "anidas" tanto las funciones que usas (sobre todo de acceso a BBDD) tipo:
Código PHP:
$myvcard mysql_fetch_assoc(mysql_query("SELECT * FROM wp_directorio WHERE dir_id = '$ID_dir'")); 
Así no puedes controlar estos "eventos" que te comento. Debes hacer validaciones tipo:

Código PHP:
$resultado=mysql_query("SELECT * FROM wp_directorio WHERE dir_id = '$ID_dir'") or die ("Error en la consulta");

if (
mysql_num_rows($resultado) == 1){
   
$myvcard mysql_fetch_assoc($resultado);
   
// etc tu código ...
} else {
  die (
"No existe el ID seleccionado .. no metas manoo al URL");

No está de más que "ocultes" (sólo cuando tengas en "producción" este código) los posibles mensajes de error que PHP dará si fallan las funciones de conexión o ejecución de consultas. Esto lo puedes manejar a nivel general en el script con: error_reporting() .. o bien en forma particular para alguna función de PHP con un @ delante (eso ocultará sus posibles mensajes de error que dé PHP y lo gestionas con el tuyo personalizado).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.