Problema PHP e checkbox!

alo

Utente Attivo
22 Dic 2011
53
0
0
27
Salve a tutti,
ho un piccolo problema che non riesco a risolvere. In una pagina di login ho inserito nel form una checkbox "ricordami" dove l'attributo name è "ric". Se la checkbox è selezionata crea un cookie, in caso contrario crea una sessione. Se la checkbox non è selezionata tutto ok. Se invece è selezionata non va avanti e nemmeno rimanda alla pagina location1.
Qualcuno sa aiutarmi?

PHP:
<?php
if(!empty($_POST['username']) && !empty($_POST['password'])) {
	include('dbconf.php');
	$username = $_POST['username'];
	$password = md5($_POST['password']);
	$query = "SELECT * FROM utenti WHERE username = '$username' AND password = '$password'";
	$result = mysql_query($query);
	if(mysql_num_rows($result) == 1) {
		if(isset($_POST['ric'])) { //se la checkbox è selezionata  -->NON VA
			setcookie('cookie', $username, 60*60*24*30*12);
		} else { //altrimenti -->OK
			session_start();
			$_SESSION['sessione'] = $username;
		}
		header("Location: location1");
	} else {
		header("Location: location2");
	}
}
?>
 
Mandando il cookie viene inviato un header prima del redirect, perciò prova ad aggiungere prima di tutto ob_start() e alla fine ob_end_flush()
 
no non mi dà nessun errore...è come se si inceppa nel creare il cookie e non va piu avanti...e nemmeno lo crea!! ho sempre fatto così ed ha sempre funzionato nn so perchè mo mi fa i capricci...ora uso altervista temporaneamente...
 
già ci avevo provato
PHP:
$time = time() + 60*60*24*30*12;
setcookie("cookie",$username,$time);
ma niente :(
 
ciao
prima del tag <?php non c'è nemmeno uno spazio? se sì toglilo.
poi fai una prova per vedere casomai che non dipenda dal coockie.
commenta la riga e aggiungi un var_dump

PHP:
<?php
if(!empty($_POST['username']) && !empty($_POST['password'])) {
    include('dbconf.php');
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $query = "SELECT * FROM utenti WHERE username = '$username' AND password = '$password'";
    $result = mysql_query($query);
    if(mysql_num_rows($result) == 1) {
        if(isset($_POST['ric'])) { //se la checkbox è selezionata  -->NON VA
            var_dump($_POST['ric']);//verifica cosa risulta, non si sa mai
			//setcookie('cookie', $username, 60*60*24*30*12);
        } else { //altrimenti -->OK
            session_start();
            $_SESSION['sessione'] = $username;
        }
        header("Location: location1");
    } else {
        header("Location: location2");
    }
}
?>
 
ciao borgo! Il problema è del cookie...per capirlo però non ho lanciato un var_dump ma ho semplicemente invertito le funzioni: se la checkbox è selezionata avvia la sessione altrimenti crea un cookie. Adesso se la checkbox la seleziono va, se non la seleziono non va avanti...il problema è il cookie...non capisco perchè non me lo crea! :/
 
ciao
prova a vardumpare il cookie (commenta gli header perche vardumpando di danno errore)
PHP:
<?php
if(!empty($_POST['username']) && !empty($_POST['password'])) {
    include('dbconf.php');
    $username = $_POST['username'];
    $password = md5($_POST['password']);
    $query = "SELECT * FROM utenti WHERE username = '$username' AND password = '$password'";
    $result = mysql_query($query);
    if(mysql_num_rows($result) == 1) {
        if(isset($_POST['ric'])) { //se la checkbox è selezionata  -->NON VA
            var_dump(setcookie("cookie", $username, time()+(60*60*24*30*12)));
        } else { //altrimenti -->OK
            session_start();
            $_SESSION['sessione'] = $username;
        }
        //header("Location: location1");
    } else {
        //header("Location: location2");
    }
}
?>
perchè non vedo il motivo per cui non si debba creare il cookie
cosa da?

edit
ho fatto una prova (togliendo il db)
e il cookie si crea
 
Ultima modifica:
Non lo so cosa da...non ho fatto il vardump...ora non sto a casa. Pero in locale crea e sul sito no u.u
 

Discussioni simili