Ho un piccolo form che annulla la registrazione di un utente al sito. Se conferma, fa il delete e ritorna al form con un messaggio, il ritorno lo fa con un header, pero sebbenne si comporta come mi aspettavo, la url non si corrisponde.
In questo form c'è un button per chiudere e fa lo stesso, si comporta come deve ma va ala pagina succesiva mostrando l'url di prima, quello che doveva mostrare quando è uscito il messaggio di tutto ok.
E come che l'url si vede con un refresh di ritardo, che facio?
In più aggiungo che nel mio pc questo funziona perfettament, ma sul server remoto (aruba) funziona come descritto, non so che puo cambiare ......
Vi posto il codice:
tra altre cose:
<form action="annulla_reg.inc.php?<?php echo $lang; ?>&<?php echo session_name()."=".session_id(); ?>" method="post" onsubmit="return validateStandard(this, 'error');" >
....
<?php include("aut_mensaje_error.inc.php");
if (isset($_GET['error_login'])){ ?>
<td height="45" colspan="2" ><div align="center"><?php echo $error_login_ms[$_GET['error_login']]; ?> </div></td>
<?php }; ?>
.....
<?php if (isset($_GET['error_login'])&&$_GET['error_login']==14){ // baja con exito ?>
<input name="close" type="submit" value="<?php echo $cerrar; ?>" class="botones"/>
<?php } else { ?>
<input name="submit" type="submit" value="<?php echo $enviar; ?>" class="botones"/>
<input name="volver1" type="button" value="<?php echo $volver1; ?>" class="botones" onclick="javascript:window.location.replace('downl oads.php?<?php echo $lang;?>&<?php echo session_name()."=".session_id(); ?>')" />
<?php }; ?>
....
Poi in annulla_reg.inc.php:
<?php
// Autentificator
// Motor autentificación usuarios.
// Cargar datos conexion y otras variables.
include ("aut_config.inc.php");
//detecta el idioma de la pagina para mostrar los errore en el idioma correspondiente
$lang = $_SERVER['QUERY_STRING'];
$lang = substr($lang,0,2); // se queda solo con el idioma porque si ya accedio a la sesion tiene tambien los datos del codigo de secion en el query_string
SWITCH ($lang){
// por cada idioma setea las variables para despues usar las variables en la pagina
case 'IT': $err1 = "Errore 1 - Acceso incorretto!";
$titulo_mail = "Cambio Password";
break;
case 'ES': $err1 = "Error 1 - Acceso incorrecto!";
break;
default: $err1 = "Errore 1 - Acceso incorretto!";
break;
};
//abre la sesion
session_name('usuarios');
session_start();
// guarda página que lo llama para devolver errores a dicha página.
$pag_referida="";
if (isset($_SESSION['referer'])){
$pag_referida=$_SESSION['referer'];
$redir=$pag_referida;
};
// chequear si se llama directo al script.
if ($pag_referida == ""){
die ($err1);
exit;
};
if (isset($_SESSION['volver']) && ($_SESSION['volver']=='OK')) {
$pag = "downloads.php?$lang";
session_destroy();
header ("Location: $pag");
exit;
} else {
// damos de baja el usuario
$db_conexion = mysql_connect("$sql_host", "$sql_usuario", "$sql_pass");
if ($db_conexion)
mysql_select_db("$sql_db");
else {
header ("Location: $redir&error_login=0"); //"No se pudo realizar la conexion";
exit;
};
// borramos el usuario
$consulta = mysql_query("DELETE FROM utenti WHERE utente = \"". $_SESSION['usuario_login']."\"",$db_conexion);
if (mysql_errno($db_conexion)==0){
$_SESSION['volver'] = "OK";
//liberamos la memoria consumida por la consulta
$valor= mysql_free_result ($consulta);
// cerramos la Base de datos.
mysql_close($db_conexion);
//volvermos a la pagina dicientdo que esta todo ok, listo para cerrar
header ("Location: $redir&error_login=14");
exit;
}else{
$numerror=mysql_errno($db_conexion);
$descrerror=mysql_error($db_conexion);
//liberamos la memoria consumida por la consulta
$valor= mysql_free_result ($consulta);
// cerramos la Base de datos.
mysql_close($db_conexion);
header ("Location: $redir&error_login=15");
exit; //"Se ha producido un error nº $numerror que corresponde a: $descrerror
";
};
};
?>