Foros del Web » Programando para Internet » PHP »

Evitar urls duplicadas en directorio.

Estas en el tema de Evitar urls duplicadas en directorio. en el foro de PHP en Foros del Web. Hola. Tengo un directorio de enlaces y me gustaría evitar que algunos usuarios, añadiendo una / al final, pudieran incluyan dos veces una misma url. ...
  #1 (permalink)  
Antiguo 24/07/2007, 15:14
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 9 meses
Puntos: 1
Evitar urls duplicadas en directorio.

Hola.

Tengo un directorio de enlaces y me gustaría evitar que algunos usuarios, añadiendo una / al final, pudieran incluyan dos veces una misma url.

Cómo podría modificar esto

Código:
	$sql = mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
	if (mysql_num_rows($sql) > 0){
		$error_duplication = true;
	}
para que el script entendiera que http://www.dominio.com y http://www.dominio.com/ es lo mismo?
__________________
dominioslibres.info
  #2 (permalink)  
Antiguo 24/07/2007, 15:44
Avatar de urgido  
Fecha de Ingreso: febrero-2005
Mensajes: 2.351
Antigüedad: 19 años, 1 mes
Puntos: 25
Re: Evitar urls duplicadas en directorio.

Código PHP:
$sql mysql_query("SELECT * FROM {$prefix}pages WHERE url LIKE '%$url%/' OR url LIKE '%$url%'");
    if (
mysql_num_rows($sql) > 0){
        
$error_duplication true;

Pruebalo y me dices si te funciono, saludos.
__________________
Hospedaje Web al mejor costo!
  #3 (permalink)  
Antiguo 24/07/2007, 16:10
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 9 meses
Puntos: 1
Re: Evitar urls duplicadas en directorio.

No funciona.

Supongamos que previamente un usuario ha incluido esta url:
Código:
http://www.dominio.com
Y acto seguido intenta dar de alta:
Código:
http://www.dominio.com/
Al procesar el formulario, en la consulta sql requerimos que seleccione "%http://www.dominio.com//%" o "%http://www.dominio.com/%". Cómo no existe ningún registro con ninguna de esas urls, pues lo acepta cómo bueno.

Tu código sólo funcionaría si el usuario registrara en primer lugar la url con / al final.
__________________
dominioslibres.info
  #4 (permalink)  
Antiguo 24/07/2007, 16:59
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años
Puntos: 33
De acuerdo Re: Evitar urls duplicadas en directorio.

Se me ocurre que para eliminar la "/" del final uses substr() para que tomes unicamente hasta ".com"

Saludillos.
  #5 (permalink)  
Antiguo 24/07/2007, 17:43
 
Fecha de Ingreso: junio-2003
Ubicación: Sevilla
Mensajes: 210
Antigüedad: 20 años, 9 meses
Puntos: 1
Re: Evitar urls duplicadas en directorio.

Bueno, pues con este código lo he solucionado.

Código:
...
function convert_url($url){
	if(substr($url, -1, 1) == "/"){
	$url = substr($url, 0, -1);
	};
	return $url;
};
....
$url = convert_url($url);

$sql = mysql_query("SELECT * FROM {$prefix}pages WHERE url = '$url'");
if (mysql_num_rows($sql) > 0){
$error_duplication = true;
}
....

Gracias.
__________________
dominioslibres.info
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 12:16.