Hola tengo un script para restringir el acceso a derminados archivos, me funciona bien en archivos que devuelven html, pero hoy he intentado ponerle seguridad a un script que no devuelve html, sirve para eliminar registros, pero no sé porque, una vez que elemina el registro no redirecciona a la página de confirmación, a continuación pego el codigo.
Código PHP:
<?
session_start();
// comprobamos que el usuario ha ingresado en el sistema
if($_SESSION["autenticado"]!="correcto") {
//si no existe, envio al formulario de ingreso
header("Location:index.php");
//ademas salgo de este script
exit();
}
?>
<? include("conexion.php"); ?>
<?
$tabla="comunicaciones";
//recogemos la variables pasadas por url desde el archivo comunicaciones_env.php y cargamos por seguridad el correo desde la sesión
$id=trim($_GET["id"]);
$usuario=trim($_GET["us"]);
//comprobamos que las variables por url no esten vacías
if(!empty($id)&&!empty($usuario)){
// una vez validado el formulario borramos el registro de la comunicación
$sql="DELETE FROM $tabla WHERE IDCOMU='$id' && usuario='$usuario'";
mysql_query($sql, $conexion) or die("error en la consulta $sql ".mysql_error());
header("Location:comunicaciones.php");
// si no se ha podido borrar la comunicación
}else{
header("Location:comunicaciones.php?&mensajegeneral=0");
}
mysql_free_result($insertar);
mysql_close($conexion);
?>
El problema es que con este código borra bien el registro pero no redirecciona, se queda en blanco la página, en cambio si sustituyo el código que comprueba al usuario simplemente el session_start(); entonces si funciona bien y realiza la redirección correctamente, pero claro así podrían ejecutar el script desde fuera del sitio no????? en fin pego el código que si funciona bien a ver si me alguien me puede explicar porque no funciona si le pongo seguridad.
Código PHP:
<?
session_start();
?>
<? include("conexion.php"); ?>
<?
$tabla="comunicaciones";
//recogemos la variables pasadas por url desde el archivo comunicaciones_env.php y cargamos por seguridad el correo desde la sesión
$id=trim($_GET["id"]);
$usuario=trim($_GET["us"]);
//comprobamos que las variables por url no esten vacías
if(!empty($id)&&!empty($usuario)){
// una vez validado el formulario borramos el registro de la comunicación
$sql="DELETE FROM $tabla WHERE IDCOMU='$id' && usuario='$usuario'";
mysql_query($sql, $conexion) or die("error en la consulta $sql ".mysql_error());
header("Location:comunicaciones.php");
// si no se ha podido borrar la comunicación
}else{
header("Location:comunicaciones.php?&mensajegeneral=0");
}
mysql_free_result($insertar);
mysql_close($conexion);
?>
Gracias. Un saludo.