Cita:
Iniciado por santhy
Tienes razón, para eso se usa normalmente o bien
Código PHP:
if(!isset($_SESSION) && bool(ini_set(register_globals)) == 0)
o aún mejor:
Código PHP:
if(!isset($_SESSION) || empty(session_id()))
session_start();
Ya, pero cuando tú no puedes controlar ese valor??
Esto es para que sea más compatible con todos los servidores, al igual que usar <?php en lugar de <? o <% (si use_short_tags o use_asp_tags están off respectivamente, <? o <% no son reconocidos por PHP, sólo <?php y <script language="php">)
Saludos
PD: Se me acaba de ocurrir que para prevenir el lapaginaquesea.php?_SESSION=valor se podría utilizar algo como
Código PHP:
<?php
if($_REQUEST[_SESSION]) {
if(is_array($_REQUEST[_SESSION])) {
foreach($_REQUEST[_SESSION] as $clave => $valor) {
$_SESSION[$clave] = 'VALOR DESHABILITADO ^_^';
} //E_FOREACH
}//E_is_array?
}//E_$_Req[_SESSION]
?>
Que te parece?
Simplemente:
<?
session_start();
a partir de ahí $_SESSION toma el valor de sesión iniciada. Por eso insisto tanto en iniciar -antes- el uso de sesiones con session_start() para comprobar su real valor y no otro suplantado o adulterado.
Fijate los ejemplos de php.net sobre sesiones .. no hay ninguno que haga un session_start() despues de alguna validación o acceso a $_SESSION
www.php.net/session Cita: Ejemplo 2. Registrar una variable con $_SESSION.
Código PHP:
<?php
session_start();
// Use $HTTP_SESSION_VARS con PHP 4.0.6 o inferior
if (!isset($_SESSION['count'])) {
$_SESSION['count'] = 0;
} else {
$_SESSION['count']++;
}
?>
Un saludo,