uitlog systeem

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 »

Thom stofberg

thom stofberg

04/07/2009 19:56:00
Quote Anchor link
ik heb nu dit inlogsysteem, controle en uitlog systeem.. bij het uitloggen krijg ik deze foutmelding:
Warning: session_destroy() [function.session-destroy]: Trying to destroy uninitialized session in C:\xampp\htdocs\loguit.php on line 3

en logt hij vervolgens niet goed uit..
weet iemand hoe ik dit goed kan doen?

Inlog systeem:
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
37
38
39
<?php
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
 
              $query = "SELECT * FROM members WHERE gebruikersnaam = '".$_POST['user']."'";
            $resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");

            $aantal = mysql_num_rows($resultaat);
                    
            if (empty($_POST['user'])) {
                  echo "<center>Je hebt geen gebruikersnaam ingevuld</center>";
            }
else {
            if ($aantal == '0'){
                 echo "<center>Gebruikersnaam bestaat niet</center>";
            }
else {
                          $login = mysql_fetch_object($resultaat);
                        
                         if(md5($_POST['password']) == $login->wachtwoord) {
                        
                         $logins = $login->logins +1;
                                                           
                         $inlogip = $_SERVER['REMOTE_ADDR'];
                                             
                         mysql_query("UPDATE members SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
                         mysql_query("UPDATE members SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
                          mysql_query("UPDATE members SET inlogip=('".$inlogip."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
                         mysql_query("UPDATE profiel SET logins=('".$logins."') WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
                         mysql_query("UPDATE profiel SET inlogdatum=(NOW()) WHERE gebruikersnaam='".$_POST['user']."'") OR die(mysql_error());
                                                  
                         $_SESSION['gebruikersnaam'] = $_POST['user'];
                         echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
                       }
else {
                         echo "<center>Je inloggegevens kloppen niet</center>";
                       }
         }}
}
else {}
include("inlogformulier.php");
?>


Controle:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
session_start();
include ("connect.php");
include ("loguit.php");

if(isset($_SESSION['gebruikersnaam'])){

$query = "SELECT * FROM profiel WHERE gebruikersnaam = '".$_SESSION['gebruikersnaam']."'";
$resultaat = mysql_query($query) OR die ("Kon geen verbinding maken met MySQL");
$user = mysql_fetch_object($resultaat);
?>


Uitlog systeem:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?php
if ($_GET['actie'] == 'loguit') {
session_destroy();
$redirect_pagina = "index.php";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"2; URL=".$redirect_pagina."\">";
}
else{}
?>
Gewijzigd op 01/01/1970 01:00:00 door Thom stofberg
 
PHP hulp

PHP hulp

28/11/2024 03:55:55
 
Thom stofberg

thom stofberg

04/07/2009 20:56:00
Quote Anchor link
?
Gewijzigd op 01/01/1970 01:00:00 door thom stofberg
 
Thom stofberg

thom stofberg

07/07/2009 16:04:00
Quote Anchor link
kan iemand plz helpen?
 
Afra ca

Afra ca

07/07/2009 16:10:00
Quote Anchor link
Ook je uitlog pagina moet beginnen met session_start()

Verder rammelt je code nog aan alle kanten. Je query's zijn sql-injectie gevoelig (gebruik mysql_real_escape_string() ), en je foutafhandeling ontbreekt. In edit zie je wat ik bedoel
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Thom stofberg

thom stofberg

07/07/2009 16:25:00
Quote Anchor link
ok thnx :) en moet ik dan ook de pagina's die beginnen met de controle afsluiten met session_destroy();?
 
Mitchell

Mitchell

07/07/2009 16:37:00
Quote Anchor link
Nee, dan vernietig je namelijk gelijk al bij het inloggen de sessie die je wilt bewaren. Alleen bij uitloggen vernietigen.
 
Afra ca

Afra ca

07/07/2009 16:38:00
Quote Anchor link
Ok even snel tijdens film kijken je eerste stuk code herschreven:

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
37
38
39
40
41
42
43
44
<?php
include ("connect.php");
$redirect_pagina = "pagina.php";
if ($_GET['actie'] == 'login') {
        
    if(!empty($_POST['user'])){
    
        $query = "SELECT veldnaam1, veldnaam2, veldnaam3 FROM members WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user'])."'";
        if(!$result = mysql_query($query)){
            trigger_error(mysql_error());
        }

        else {
            $aantal = mysql_num_rows($result);
            if($aantal = 0 ){
                echo '<center>Gebruikersnaam bestaat niet</center>';
            }

            else {
            
                $login = mysql_fetch_assoc($resultaat);

                if(md5($_POST['password']) == $login['wachtwoord']) {

                    $logins = $login['logins'] +1;

                    $inlogip = $_SERVER['REMOTE_ADDR'];
                    
                    $update = "UPDATE members SET logins = ".$logins." , inlogdatum = NOW(), inlogip = '".$_SERVER['REMOTE_ADDR']."' WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['username']."'";
                    $update2 = "UPDATE profiel SET logins = ".$logins.", inlogdatum = NOW() WHERE gebruikersnaam = '".mysql_real_escape_string($_POST['user']."'";
                    if(!$result = mysql_query($update) OR !$result2 = mysql_query($update2)){
                        trigger_error(mysql_error());
                    }

                    else {
                        $_SESSION['gebruikersnaam'] = $_POST['user'];
                        echo "<center>Je bent succesvol ingelogd, een moment.. <META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$redirect_pagina."\"></center>";
                    }
                }
            }
        }
    }
}

else{
    include("inlogformulier.php");
}

?>


Dit is niet om je alles voor te kauwen, maar volg ongeveer zo'n opbouw en je kan heel gemakkelijk debuggen.

Oja, en voor de zeikerds, is nog heel wat te verbeteren, maar moet even m'n aandacht bij de film houden.
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Jasper Lankhorst

Jasper Lankhorst

07/07/2009 16:39:00
 
Afra ca

Afra ca

07/07/2009 16:44:00
Quote Anchor link
@ Jasper, zie mijn herschreven code hierboven

@ TS:

gebruik mysql_fetch_assoc($resource) , objecten hoef je haast nooit te fetchen in php. En je gebruikt ze dan als volgt:

$rows = mysql_fetch_assoc($result);
$fieldvar = $rows['fieldname'];
Gewijzigd op 01/01/1970 01:00:00 door Afra ca
 
Thom stofberg

thom stofberg

07/07/2009 16:49:00
Quote Anchor link
Afra schreef op 07.07.2009 16:10:
Ook je uitlog pagina moet beginnen met session_start()

Verder rammelt je code nog aan alle kanten. Je query's zijn sql-injectie gevoelig (gebruik mysql_real_escape_string() ), en je foutafhandeling ontbreekt. In edit zie je wat ik bedoel


en als ik dit toevoeg aan de pagina's?

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
<?php
function mysql_real_escape_array($array) {
  if(is_array($array)) {
    foreach($array as $key => $value) {
      if(is_array($value)) {
        $array[$key] = mysql_real_escape_array($value);
      }
else {
        $array[$key] = mysql_real_escape_string($value);
      }
    }
  }
else {
    $array = mysql_real_escape_string($array);
  }

  return $array;
}

?>
 
Afra ca

Afra ca

07/07/2009 17:16:00
Quote Anchor link
Prachtig dat je een escape array functie gecreeerd hebt, maar ik bedoelde gewoon dat je in je query niet zomaar post waarden moet stoppen, daar gooi je gewoon mysql_real_escape_string overheen. EN dat zijn strings, geen array, dus dat hoeft niet.
 



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.