PHP.EE FOORUM   
Nimi:   Pass:   Mäleta mind! 
   Teemad | php.ee esilehele | registreeri | Märgi kõik teemad loetuks | #php.ee Skype vestlus | RSS
UUS TEEMA  OTSI  Lehekülgi: 1
Sessioni bug
Postitaja: Sess 2016-01-23 21:36:34

<?php if (empty($_SESSION['Kasutaja']))
{ header('Location: index.php'); }

?>


Isegi, kui session on hävitatud, laseb läbi, milles võib viga olla? Sellele lingile ei tohiks ligi pääseda, kui pole sisse logitud.

Teine mure on sellega:


if ($lalala) {
$_SESSION['sessioon'] = 2;

Kui see käima läheb, siis tuleb õige asi ette, kuid vana asja ei eemalda, alles peale värskendamist kaob. Mida muuta, et kohe kaoks, kui käivitub?
Nt refreshi sisse kirjutada ei tohiks, kuna siis kirjutaks andmebaasi topelt.
Mõeldud on nii, kui kasutaja vajutab nupule 1, ilmub nupp 2 ja eelmine nupp kaob (hetkel jääb ka vana alles).
RE: Sessioni bug
Postitaja: ise php 2016-01-24 00:22:36
Pead jälgima, et kustutad ja sead session muutujat ikka ennem, kui seda loed lehel


PHP kood:
 

<?php session_start();
if(isset(
$_POST['kasutaja']) and $_POST['kasutaja']!='' and !isset($_SESSION['kasutaja'])){
    
$kas1 strip_tagsstripslashes($_POST['kasutaja']));
    
$_SESSION['kasutaja'] = $kas1;
    }

if(isset(
$_POST['out'])){
    
    
$_SESSION['kasutaja'] = '';
    unset(
$_SESSION['kasutaja']); 
    }


  if (!isset(
$_SESSION['kasutaja']) or $_SESSION['kasutaja']==''
    { 
        
//header('Location: index.php'); 
        
echo'sess kasutaja kutu';
        } else {
            echo 
'session kasutaja olemas - '.$_SESSION['kasutaja'];
        }


?>
<form action="?" method="post" >
<input type="text" name="kasutaja" size="10" /></br>
<input type="submit" name="in" value="Logi sisse"/>
<input type="submit" name="out" value="Logi valja"/>
</form>
RE: Sessioni bug
Postitaja: sess 2016-01-25 09:34:04
Kuidas selle ära parandan?


<?php
if($_SESSION['Lahendus'] == 2){
if (isset($_POST['nupp2'])) {
$tulemus2 = $_POST['vastus2'];

if ($tulemus2 == 4023) {
$_SESSION['Lahendus'] = 3;
} else {
echo "Vastus on vale! Proovi uuesti!";
$ValesidVastuseid++;
}
}
?>

<?php
if($_SESSION['Lahendus'] == 3){
if (isset($_POST['nupp3'])) {
$tulemus3 = $_POST['vastus3'];
if ($tulemus3 == 101) {
$_SESSION['Lahendus'] = 4;
} else {
echo "Vastus on vale! Proovi uuesti!";
$ValesidVastuseid++;
}
}
?>


Kui Kasutaja vastab õigesti, siis käivitub uus session, kuid vana jääb jalgu, ehk, kui uut näitab, näitab ka vana, aga peale lehe värskendamist vana kaob.
RE: Sessioni bug
Postitaja: ise php 2016-01-25 12:57:55

PHP kood:
 
<?php session_start();
if(isset(
$_POST['l2'])){$_SESSION['Lahendus']=2;$_SESSION['vava']=0;}
if(isset(
$_SESSION['vava'])){$kontrol $_SESSION['vava'];}

if(isset(
$_SESSION['Lahendus']) and $_SESSION['Lahendus'] == 2){
if (isset(
$_POST['nupp2'])) {
$tulemus2 $_POST['vastus2']; 

if (
$tulemus2 == 4023) {
$_SESSION['Lahendus'] = 3;
} else {
//echo "Vastus on vale! Proovi uuesti!";
$_SESSION['vava']++;
}
}
}
?>

<?php
if(isset($_SESSION['Lahendus']) and $_SESSION['Lahendus'] == 3){
if (isset(
$_POST['nupp3'])) {
$tulemus3 $_POST['vastus3']; 
if (
$tulemus3 == 101) {
$_SESSION['Lahendus'] = 4;
} else {
//echo "Vastus on vale! Proovi uuesti!";
$_SESSION['vava']++;
}
}

}
?>




<form action="?" method="post" >
<input type="text" name="vastus2" size="10" />2</br>
<input type="text" name="vastus3" size="10" />3</br>
<input type="submit" name="nupp2" value="nupp2"/>
<input type="submit" name="nupp3" value="nupp3"/>
<input type="submit" name="l2" value="Lahendus on 2"/>
</form>

<?php
if(isset($_SESSION['Lahendus'])){echo "Sess lahendus = ".$_SESSION['Lahendus']."</br>";}
if(isset(
$_SESSION['vava'])){echo "Valesid vastuseid on ".$_SESSION['vava']."</br>";}
if(isset(
$_SESSION['vava']) and $kontrol != $_SESSION['vava']){echo "Vastus on vale! Proovi uuesti!";}
?>


Leheküljed: 1

©2002-2013 Martin Rebane & PHP.ee kaasautorid
  0.0805938243866