bliver smidt af siden ved at klik ctrl+f5

Her kan du få hjælp og stille spørgsmål til PHP!
Besvar
tobrukdk
Nørd
Nørd
Indlæg:120
Tilmeldt:18. dec 2011, 00:40
bliver smidt af siden ved at klik ctrl+f5

Indlæg af tobrukdk » 26. nov 2013, 09:29

hej

Når jeg kommer ind på log ind siden, og angiver mit password og brugernavn så bliver jeg smidt /wall/ side hvor man skal have adgang til siden. Hvis jeg går over til en anden side og der efter klik ctrl + f5 så bliver jeg smidt af.

sådan her ser det ud på det lukke område kun for brugerne.

Kode: Vælg alt

session_start();
 include("phpFiler/fun.php");
 $mebe = new mebe;
 $db = $mebe->db_c();
 error_reporting(E_ERROR);
 if($_SESSION["logged_in"] == true)
 {
//html koden herefter,

Kode: Vælg alt

session_start();
 include("phpFiler/fun.php");
 $mebe = new mebe;
 $db = $mebe->db_c();
 error_reporting(E_ERROR);
 //er ikke log ind på siden.
sådan ser det ud når man ikke skal være log ind på siden.

Finder ud af om man kan log ind på siden eller ej.

Kode: Vælg alt

function logind()
     {
         if($_POST["brugernavn"] == "")
         {
             $error = 1;    
         }
         if($_POST["pass"] == "")
         {
             $error = 1;    
         }
         if($error != 1)
         {
             if ($stmt = $this->mysqli->prepare("SELECT id, brugernavn, rank, ranknavn FROM bruger WHERE brugernavn = ? AND adgangskode = ?"))
             {
                 $stmt->bind_param('ss', $brugernavn, $adgangskode);
                 $brugernavn = $_POST["brugernavn"];
                 $adgangskode = sha1($_POST["pass"]);
 
 
                 $stmt->execute();
                 $stmt->store_result();
                 $stmt->bind_result($id, $brugernavn, $rank, $ranknavn);
                 $stmt->fetch();
                 $count = $stmt->num_rows;
                 $stmt->close();
 
                 if($count > 0)
                 {
                     $_SESSION["logged_in"] = true;
                     $_SESSION["id"] = $id;
                     $_SESSION["brugernavn"] = $brugernavn;
                     $_SESSION["rank"] = $rank;
                     $_SESSION["ranknavn"] = $ranknavn;
 
                         if($_SESSION["logged_in"] == true and $_SESSION["rank"] >= 1)
                         {
                             ?>
                             <script language="javascript" type="text/javascript">  
                                 window.location.href = "/wall/";  
                             </script> 
                             <?php
                         }
                         else
                         {
                             echo "Fejl..";    
                         }
                 }
                 else
                 {
                 ?>
                 <div class="alert error fade in">
                     <p>Forkert Brugernavn / Password.</p>
                     <a class="close" data-dismiss="alert" href="#" aria-hidden="true"><i class="fa fa-times-circle"></i></a>
                 </div>
                 <?php
                 }
             }
             //fejl
             else
             {
                 echo 'Der opstod en fejl i erklæringen: ' . $this->mysqli->error;
             }
         }
         else
         {
         ?>
         <div class="alert error fade in">
             <p>Forkert, Prøv igen!</p>
             <a class="close" data-dismiss="alert" href="#" aria-hidden="true"><i class="fa fa-times-circle"></i></a>
         </div>
         <?php    
         }
     }

HTML KODE / PHP DEL

Kode: Vælg alt

<?php
                 if(isset($_POST["login"]))
                 {
                     $logind = $mebe->logind();
                 }
                 ?>
                 <form action="<?php $_SERVER['PHP_SELF'];?>" method="post">
                     <table width="100%" cellpadding="0" cellspacing="0">
                         <tr>
                             <td>Brugernavn</td>
                             <td><input type="text" name="brugernavn" maxlength="300"></td>
                         </tr>
                         <tr>
                             <td>Adgangskode</td>
                             <td><input type="password" name="pass"></td>
                         </tr>
                         <tr>
                             <td></td>
                             <td><input type="submit" name="login" value="Log ind"></td>
                         </tr>
                     </table>                
                 </form>
Når jeg skriver

Kode: Vælg alt

echo var_dump($_SESSION);
så kommer det frem sådan her:
array(5) { ["logged_in"]=> bool(true) ["id"]=> int(1) ["brugernavn"]=> string(6) "Jesper" ["rank"]=> int(2) ["ranknavn"]=> string(6) "Bruger" }

Sådan her ser min sql ud:

Kode: Vælg alt

INSERT INTO `bruger` (`id`, `email`, `brugernavn`, `adgangskode`, `rank`, `ranknavn`, `img`, `infotekst`, `profiltekst`, `point`) VALUES
 (1, 'jesper@jesperbok.dk', 'Jesper', '7b52009b64fd0a2a49e6d8a939753077792b0554', 2, 'Bruger', '', '', '', 50);

Hvis jeg bare klik f5 så kommer indhold nogle gange ikke frem på siden. men hvis jeg der i mod klik ctrl + f5 så kommer det nye af det nyeste indhold frem på siden. men så bliver jeg også smidt af siden og skal genstart browser for at den virker normal igen.

Har også oprette spørgsmål her

Håber du kan hjælpe mig videre til at opgaven bliver løst, :)

Brugeravatar
ThomasI
Grundlægger
Grundlægger
Indlæg:1528
Tilmeldt:28. dec 2010, 10:49

Re: bliver smidt af siden ved at klik ctrl+f5

Indlæg af ThomasI » 26. nov 2013, 19:36

Hej med dig...

Det virker til at du reloader siden uden login data, og det gør at dine sessions nul-stilles.

Måske kan det her hjælpe dig videre:
http://stackoverflow.com/questions/1150 ... ssion-dies

Besvar