inlog systeem logt uit

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Ventilatiesysteem Productontwikkelaar HBO WO Verwa

Samengevat: Zij bieden flexibele ventilatiematerialen, geluidsdempers, rookgasafvoer producten en industrieslangen. Ben jij een technisch productontwikkelaar? Heb jij ervaring met het ontwikkelen van nieuwe producten? Vaste baan: Technisch Productontwikkelaar HBO WO €3.000 - €4.000 Zij bieden een variëteit aan flexibele ventilatiematerialen, geluiddempers, rookgasafvoer producten, industrieslangen en ventilatieslangen voor de scheepsbouw. Met slimme en innovatieve materialen zorgen wij voor een gezonde en frisse leefomgeving. Deze werkgever is een organisatie die volop in ontwikkeling is met hardwerkende collega's. Dit geeft goede ontwikkelingsmogelijkheden. De branche van dit bedrijf is Techniek en Engineering. Functie: Voor de vacature als Technisch Productontwikkelaar Ede Gld HBO WO ga

Bekijk vacature »

K i p

K i p

11/08/2006 18:57:00
Quote Anchor link
Ik heb nu een beveiligde pagina. Daarvoor gebruik ik dit script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
if (!isset($_POST['submit'])) {
   echo '<fieldset><legend>Login</legend>';
   echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
   echo '<input type="text" class="text" size="12"  name="user" />&nbsp;';
   echo '<input type="password" class="text"  size="12" name="pass" />&nbsp;';
   echo '<input type="submit" name="submit" value="Log in!" class="text" />';
   echo '</form>';
   echo '</fieldset>';
}
else {
   include("connect.php");
   $sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
   $result = mysql_query($sql);
   if (mysql_num_rows($result) == 1) {
      echo 'user gevonden en wachtwoord is correct';
      $_SESSION['user'] = $_POST['user'];
      $_SESSION['pass'] = $_POST['pass'];
  echo '<a href="check2.php">droog</a>';

   }
else {
      echo '<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>';
   }
}

?>


Maar als ik nu naar 'check2.php' ga, die ook deze code bevat, dan moet ik weer opnieuw inloggen. Hoe kan ik dat verhelpen?

Edit:
&lt;?php en ?&gt; toegevoegd
Gewijzigd op 01/01/1970 01:00:00 door K i p
 
PHP hulp

PHP hulp

17/11/2024 19:33:12
 
Joren de Wit

Joren de Wit

11/08/2006 19:21:00
Quote Anchor link
Is dit het hele script?

Zo ja, dan ontbreekt session_start() erin. Dat zul je aan het begin van je script moeten zetten als je verderop met sessies wilt werken...

Op check2.php zet je dan ook session_start() en kun je van de variabelen die je in een sessie opgeslagen hebt gebruik maken...
 
Frank -

Frank -

11/08/2006 19:23:00
Quote Anchor link
En waarom zet je een wachtwoord in de sessie? Wachtwoorden gebruik je bij het inloggen en daarna nooit meer. Het is dus volkomen onzinnig om dit gegeven in een sessie te zetten met ook nog eens het risico dat je sessie wordt gehijackt.
 
K i p

K i p

11/08/2006 20:47:00
Quote Anchor link
Oke bedankt:-) Het werkt nu inderdaad!

En hoe kan ik een uitlog-functie maken? Als ik deze code gebruik:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
$_SESSION
= array();
session_destroy();
echo 'Je bent succesvol uitgelogd!'
?>


Krijg ik deze output:


Warning: session_destroy(): Trying to destroy uninitialized session in /home/borisbez/domains/xxx.nl/public_html/login/loguit.php on line 3
Je bent succesvol uitgelogd!

Hoe kan ik dit verhelpen?
 
Klaasjan Boven

Klaasjan Boven

11/08/2006 21:00:00
Quote Anchor link
Volgens mij zegt de foutmelding genoeg.
De sessie lijkt nog niet geset te zijn.
 
Joren de Wit

Joren de Wit

11/08/2006 21:07:00
Quote Anchor link
session_destroy() hoef je niet meer te gebruiken, $_SESSION = array() is voldoende...
 
DirkJan Heinen

DirkJan Heinen

11/08/2006 21:23:00
Quote Anchor link
ik zou niet sesion_destroy() gebruiken maar unset($_SESSION['sessie_naam']);

voor het geval als je later met andere sessies gaat werken!
die fout heb ik namelijk gemaakt met een spel dat als je een crime had gepleegd dan moest je een uur wachten en die tijd werd opgeslagen in een sessie dus wat deden die gasten die logten gewoon uit en daarna weer in en dan konden ze gewoon weer een crime doen:S en ik ondertussen maar zoeken:S{-_-}
 
Frank -

Frank -

11/08/2006 21:42:00
Quote Anchor link
@Devon: Door de browser te sluiten vernietig je ook alle sessies. Jij hebt dus nog steeds een lek in jouw crime-spel zitten. Gebruik een database om het tijdstip op te slaan en controleer bij iedere crime of er al voldoende tijd is verstreken t.o.v. de vorige crime. Zie de vele datum- en tijdfuncties van MySQL in hoofdstuk 12.5 van de handleiding.
 
K i p

K i p

11/08/2006 21:51:00
Quote Anchor link
Oke bedankt.
 
K i p

K i p

11/08/2006 21:56:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
session_start();
if (!isset($_SESSION['user'])) {
   echo '<fieldset><legend>Login</legend>';
   echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
   echo '<input type="text" class="text" size="12"  name="user" />&nbsp;';
   echo '<input type="password" class="text"  size="12" name="pass" />&nbsp;';
   echo '<input type="submit" name="submit" value="Log in!" class="text" />';
   echo '</form>';
   echo '</fieldset>';
   if (!isset($_POST['submit'])) {
      include("connect.php");
      $sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
      $result = mysql_query($sql);
      if (mysql_num_rows($result) == 1) {
         $_SESSION['user'] = $_POST['user'];
         echo 'Je bent succesvol ingelogd! <br />';
         echo '<a href="index.php">Klik hier om door te gaan</a>';
      }
else {
         die('<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>');
      }
   }
}
else {
   echo 'Je bent al/nog ingelogd! Klik <a href="loguit.php">hier</a> om uit te loggen.';
}

?>


Dit is nu mijn code, maar nu is het zo, dat als de sessie niet is ge-set, en post['submit'] ook niet, dat hij weergeeft: Verkeerde gebruikersnaam of verkeerd wachtwoord!
Probeer opnieuw. Dat moet ik niet hebben! Hoe verander ik dat?
 
Joren de Wit

Joren de Wit

11/08/2006 22:02:00
Quote Anchor link
Als ik het zo lees zou het moeten werken als je het uitroepteken (!) op regel 11 verwijderd. Je wilt namelijk juist dat dat stuk code uitgevoerd wordt als er wel op submit geklikt is...
 
K i p

K i p

11/08/2006 22:32:00
Quote Anchor link
Ja dat heeft gewerkt:-) danku


Dit is nu mijn script:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
<?php
session_start();
if (!isset($_SESSION['sessienaam'])) {
   echo '<fieldset><legend>Login</legend>';
   echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
   echo '<input type="text" class="text" size="12"  name="user" />&nbsp;';
   echo '<input type="password" class="text"  size="12" name="pass" />&nbsp;';
   echo '<input type="submit" name="submit" value="Log in!" class="text" />';
   echo '</form>';
   echo '</fieldset>';
   if (isset($_POST['submit'])) {
      include("connect.php");
      $sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
      $result = mysql_query($sql);
      if (mysql_num_rows($result) == 1) {
         $_SESSION['user'] = $_POST['user'];
         echo 'Je bent succesvol ingelogd! <br />';
         echo '<a href="index.php">Klik hier om door te gaan</a>';
      }
else {
         die('<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>');
      }
   }
}
else {
   echo 'Je bent al/nog ingelogd! Klik <a href="loguit.php">hier</a> om uit te loggen.';
}
?>


Wat er nu gebeurt, is als je een geldig user en pass invoert, dat als je op ok klikt, je dit tezien krijgt:
de form en daaronder je bent ingelogd

en als je iets fouts invult:
de form en daaronder verkeerd wachtwoord




Hoe krijg ik dít dan goed?
 
Joren de Wit

Joren de Wit

11/08/2006 22:34:00
Quote Anchor link
Kwestie van regels 11 tm 21 naar boven verplaatsen en je form in het else gedeelte van die statement te plaatsen:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<?php
session_start();
if (!isset($_SESSION['sessienaam']))
{

   if (isset($_POST['submit']))
   {

      include("connect.php");
      $sql = "SELECT * FROM users WHERE user='" . $_POST['user'] . "' AND pass = '" . md5($_POST['pass']) . "'";
      $result = mysql_query($sql);
      if (mysql_num_rows($result) == 1)
      {

         $_SESSION['user'] = $_POST['user'];
         echo 'Je bent succesvol ingelogd! <br />';
         echo '<a href="index.php">Klik hier om door te gaan</a>';
      }

      else
      {
         die('<h1>Verkeerde gebruikersnaam of verkeerd wachtwoord!</h1> <a href="index.php">Probeer opnieuw</a>');
      }
   }

   else
   {
       echo '<fieldset><legend>Login</legend>';
       echo '<form name="login" action="' . $_SERVER['PHP_SELF'] . '" method="post">';
       echo '<input type="text" class="text" size="12"  name="user" />&nbsp;';
       echo '<input type="password" class="text"  size="12" name="pass" />&nbsp;';
       echo '<input type="submit" name="submit" value="Log in!" class="text" />';
       echo '</form>';
       echo '</fieldset>';
   }
}

else
{
   echo 'Je bent al/nog ingelogd! Klik <a href="loguit.php">hier</a> om uit te loggen.';
}

?>
 
K i p

K i p

11/08/2006 23:04:00
Quote Anchor link
Oke bedankt allemaal alles werkt nu naar behoren:-) :-D
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.