Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/01/2005, 14:35
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
1) .. Tal vez un "cambiazo" de una variable que te llegue por POST y te la "meten" por GET a tu script no te presente mucho problema de seguridad .. pero si si fuese una de sesión por ejemplo.

Nadie dice que tengas que hacer $var=$_GET['var'] .. siempre puedes usar directamente $_GET['var'] .. eso sí con unas "teclas" más que pulsar para escribir el nombre de la varaible.

En una de las primeras FAQ's tienes una dedicada a los problemas de seguridad de usar por ejemplo cosas tipo "register_globals a OFF" y asumir como globales varaibles de sesión como en tu ejemplo lo estás haciendo o esperando tomar así sus valores en algunos puntos ..

----------------------

Sobre el tema de sesiones .. en general al igual que las cookies ... su valor no puedes tomarlo o mejor dicho "queda disponible" hasta la siguiente petición al servidor (recarga de página, script que saltas o cambias .. etc).. Es decir .. no puedes hacer cosas como

$_SESSION['variable']="valor";
y esperar tomar su valor a continuación con un :
echo $_SESSION['variable'];

para que -realmente- el valor de tu sesión sea el que contiene .. tendrías que recargar la página al menos para obtener su real valor. o ahí .. definir su valor y leer esa variable de sesión en otro script.


En tu caso particular .. esas variable $nombre y $codigo .. no sé de donde salen: será de un formulario? .. son las variables de sesión? .. (ves por qué es tan importante definir y usar el método que se use? .. así no hay forma de saber de donde salen .. es más se pueden hasta confundir o "solapar" sus valores sobre todo si usas register_globals a ON ..).

$query="SELECT codcar, nombre FROM carteros WHERE nombre = '$nombre' AND codcar = '$codigo' ";

En otro lado del script haces:
if (isset ($_SESSION['nombre'])){
// Si está una sesión activa -> mata sesion
// todo el código del link del manual oficial de PHP que te dejé .. +
session_unset();
session_destroy();
// redireccionar aquí mismo ..
header ("Location: secion.php");
exit;
}

dice el código "si está definido la variable $_SESSION['nombre'] .. entoncces destruye la sesión y redirecciona hacia secion.php .. Es decir . .matas toda la sesión ? .. Se supone que ese código completo que presentas se llama "secion.php"

Por lo demás .. al usar $_SESSION (los arrays superglobales) debes usar:
unset($_SESSION) en lugar de session_unset();
(según recomendaciones de PHP.net)

Un saludo,