Inlog systeem maken

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 »

Pagina: 1 2 volgende »

Niels Veer

Niels Veer

01/10/2011 07:24:05
Quote Anchor link
Hallo allemaal,

Ik bem bezig met een inlog systeem te maken en heb nu deze code:

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
<?php
session_start();

define ( 'DEBUGMODE', true );

if ( constant( 'DEBUGMODE' ) )
{

    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL | E_STRICT );
}

else
{
    ini_set( 'display_errors', 0 );
}


    $aErrors = array();
    //  Maak een verbinding met de database
    
    include('mysqlgegevens.php');
    
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }

    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'loginsysteem', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }

      else {
        $sQuery = "
        SELECT
              username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
          
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
        if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
    }
}


if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{

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

        $_SESSION['inlogdata']['ingelogd']=1;
        $_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
    }
}


if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{

    $_SESSION['inlogdata']['ingelogd']=0;
    $_SESSION['inlogdata']['remote_addr']='';
}



if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{

    echo 'Gebruiker is ingelogd.<br />';
    echo '<a href="?cmd=logout">uitloggen</a>';
}

else
{
    // Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
    if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!=$_SERVER['REMOTE_ADDR'])
    {

        echo 'Mogelijke hijack!';
    }

    echo 'Gebruiker is niet ingelogd.<br />';
    ?>

<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
}
?>


Maar ik zit met een probleempje:
Ik krijg de melding dat de variabele $password en $username geen waarde bevatten. Deze variabele staan in het onderstaande codetje.
Het controleert of de gegevens die je invult gelijk zijn met die in de database staan.

if ($_POST['login']==$username and $_POST['wachtwoord']==$password)
{
$_SESSION['inlogdata']['ingelogd']=1;
$_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
}
}

Ik ben als 2 dagen bezig met elke oplossen uit te voeren die ik heb bedacht, maar tot nu toe geen resultaat.
Wie kan mij uitleggen hoe ik dit script werkend kan maken?

Alvast bedankt!
 
PHP hulp

PHP hulp

24/04/2024 00:46:04
 
Vincent Huisman

Vincent Huisman

01/10/2011 07:54:07
Quote Anchor link
je hebt toch ook nergens die vars ingesteld?
 
Niels Veer

Niels Veer

01/10/2011 08:16:31
Quote Anchor link
oké bedankt voor het antwoord.
Maar hoe en waarmee zou ik deze moeten opvullen?

Ik namelijk al zo iets dergelijk geprobeerd als

$username= mysql_real_escape_string($_POST['gebruikersnaam']);

maar dat wekte niet
 
Wesley PHP

Wesley PHP

01/10/2011 10:10:57
Quote Anchor link
Probeer dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$username
= mysql_real_escape_string($_POST['login']);
?>
 
Niels Veer

Niels Veer

01/10/2011 10:28:09
Quote Anchor link
Sorry, dat werkt ook niet.
Ik krijg deze meldingen:

Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52

Notice: Undefined index: login in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 52

Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53

Notice: Undefined index: wachtwoord in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 53
 
Marco PHPJunky

Marco PHPJunky

01/10/2011 10:45:23
Quote Anchor link
Je vult nergens de 2 vars...
je zecht:
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
<?PHP
$sQuery
= "
        SELECT
              username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
          
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
?>

Maar nu bestaan de 2 vars $password en $username nog NIET...
want je vult ze niet...
(nu zeg je vergelijk de $_POST['waarde'] aan een lege string....)
probeer eens:
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
<?PHP
       if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
            $row = mysql_fetch_assoc($rResult);
        }
    }
}

if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{

    if ($_POST['login'] == $row['gebruikersnaam'] and sha1($_POST['wachtwoord']) == $row['password'])
    {

     // CODE...
    }
}

?>
Gewijzigd op 01/10/2011 10:53:42 door Marco PHPJunky
 
Niels Veer

Niels Veer

01/10/2011 10:53:43
Quote Anchor link
Oké, ik ben nu iets verder.
Ik krijg nu de melding:

Strict Standards: main() [function.main]: It is not safe to rely on the system's timezone settings. Please use the date.timezone setting, the TZ environment variable or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Paris' for '2.0/DST' instead in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55

Notice: Undefined variable: rResult in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55

Welk variabele zou ik dan nu moeten gebruiken?
Gewijzigd op 01/10/2011 10:54:30 door Niels Veer
 
Marco PHPJunky

Marco PHPJunky

01/10/2011 10:59:10
Quote Anchor link
maak eens van:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?PHP
    ini_set( 'display_errors', 1 );
    error_reporting( E_ALL | E_STRICT );
//Dit...
error_reporting(E_ALL);
ini_set('display_errors', 1);
?>

en:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?PHP
$aErrors
= array();
//naar:
$aErrors = array();
$rResult = '';
?>
Gewijzigd op 01/10/2011 10:59:57 door Marco PHPJunky
 
Niels Veer

Niels Veer

01/10/2011 11:05:53
Quote Anchor link
Bedankt voor de tip, door die error repoting wat hoger te zetten kwam dit er uit:
Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55

Notice: Uninitialized string offset: 0 in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 55

Klopt het dat die 0 iets te maken heeft met het uitleggen?
Dat is waarde 0
 
Marco PHPJunky

Marco PHPJunky

01/10/2011 11:11:06
Quote Anchor link
wat staat er nu op line 55 ?

ps.
nog 2 kleine dingentjes:
-als je op je site op de button: Waarom klikt zie je in de adres balk; Waaron staan ipv waarom
-Als je rechts onderaan op de afbeelding/link van gastenboek klikt opent hij die in een nieuwe pagina ( denk dat je daar nu een target="_blank" hebt staan ofzo)

pss (offtopic),
Borft de gekste...
Gewijzigd op 01/10/2011 11:17:05 door Marco PHPJunky
 
Niels Veer

Niels Veer

01/10/2011 11:18:56
Quote Anchor link
Bedankt, ik zal er eens naar kijken.

Op lijn 55 staat het codetje dat ik zojuist heb aangepast:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if ($_POST['login'] == $rResult['username'] and sha1($_POST['wachtwoord']) == $rResult['password'])
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/10/2011 12:01:30
Quote Anchor link
Kijk eens wat je van het formulier krijgt met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
 
Marco PHPJunky

Marco PHPJunky

01/10/2011 12:08:39
Quote Anchor link
uuuu
volgens mij heb je het fout over genomen (volgens jou 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
<?PHP
       if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
            $row = mysql_fetch_assoc($rResult);
        }
    }
}

if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{

    if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
    {

     // CODE...
    }
}

?>


edit

En het is niet:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
<?PHP
        $sQuery
= "
 .....................................
          username = '"
.mysql_real_escape_string($_POST['gebruikersnaam'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
?>

maar;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?PHP
        $sQuery
= "
        SELECT
              username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['login'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
?>

als ik naar je formulier kijk
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>


aangepast
Gewijzigd op 01/10/2011 12:16:33 door Marco PHPJunky
 
Niels Veer

Niels Veer

01/10/2011 12:58:29
Quote Anchor link
Ik heb even gekeken wat er wordt verstuurd.
Als ik als gebeukersnaam pietje in typ en als wachtwoord test zie ik dit:

Array
(
[login] => pietje
[wachtwoord] => test
)

Het wordt dus wel verstuurt, maar niet gecodeerd.

Ik krijg nu de melding:

Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 58

Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 80

Om het even iets duidelijker te maken, dit is nu het volledige 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
session_start();

define ( 'DEBUGMODE', true );

if ( constant( 'DEBUGMODE' ) )
{

    error_reporting(E_ALL);
    ini_set('display_errors', 1);}
else
{
    ini_set( 'display_errors', 0 );
}


    $aErrors = array();
    $rResult = '';
    //  Maak een verbinding met de database
    
    include('mysqlgegevens.php');
    
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }

    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'loginsysteem', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }

      else {
        $sQuery = "
        SELECT
              username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['login'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
                    
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
       if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
            $row = mysql_fetch_assoc($rResult);
        }
    }
}


if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{

    if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
    {

        $_SESSION['inlogdata']['ingelogd']=1;
        $_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
    }
}


if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{

    $_SESSION['inlogdata']['ingelogd']=0;
    $_SESSION['inlogdata']['remote_addr']='';
}



if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{

    echo 'Gebruiker is ingelogd.<br />';
    echo '<a href="?cmd=logout">uitloggen</a>';
}

else
{
    // Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
    if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!=$_SERVER['REMOTE_ADDR'])
    {

        echo 'Mogelijke hijack!';
    }

    echo 'Gebruiker is niet ingelogd.<br />';
    ?>

<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
}
echo '<br>
<br>'
;
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

01/10/2011 13:24:19
Quote Anchor link
je vangt niet of er een leeg resultaat terug komt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
    if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
            $row = mysql_fetch_assoc($rResult);
        }

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
]<?php
    if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
        if (mysql_num_rows($rResult) > 0)
                    $row = mysql_fetch_assoc($rResult);
        else
            $aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
        }

?>
Gewijzigd op 02/10/2011 08:36:32 door Ger van Steenderen
 
Niels Veer

Niels Veer

02/10/2011 08:00:51
Quote Anchor link
Het heeft nog steeds geen zin, de meldingen blijven staan.
Ik snap het zelf ook niet echt.
Want de melding is dat het variabele $row niet klopt terwijl ik hem in het database gedeelte wel aangeef.
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/10/2011 08:39:14
Quote Anchor link
Laat nog even je volledige script zien
 
Niels Veer

Niels Veer

02/10/2011 08:44:32
Quote Anchor link
Dit is het volledige 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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?php
session_start();

define ( 'DEBUGMODE', true );

if ( constant( 'DEBUGMODE' ) )
{

    error_reporting(E_ALL);
    ini_set('display_errors', 1);}
else
{
    ini_set( 'display_errors', 0 );
}

    $aErrors = array();
    $rResult = '';
    //  Maak een verbinding met de database
    
    include('mysqlgegevens.php');
    
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }

    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'loginsysteem', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }

      else {
        $sQuery = "
        SELECT
            username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['login'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
                    
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
        if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
        if (mysql_num_rows($rResult) > 0)
        $row = mysql_fetch_assoc($rResult);
        else
            $aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
      }
    }
  }
}


if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{

    if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
    {

        $_SESSION['inlogdata']['ingelogd']=1;
        $_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
    }
}


if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{

    $_SESSION['inlogdata']['ingelogd']=0;
    $_SESSION['inlogdata']['remote_addr']='';
}



if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{

    echo 'Gebruiker is ingelogd.<br />';
    echo '<a href="?cmd=logout">uitloggen</a>';
}

else
{
    // Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
    if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!= $_SERVER['REMOTE_ADDR'])
    {

        echo 'Mogelijke hijack!';
    }

    echo 'Gebruiker is niet ingelogd.<br />';
    ?>

<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
}
echo '<br>
<br>'
;
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>


En dit zijn de foutmeldingen:

Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61

Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 61

Notice: Undefined index: inlogdata in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 83
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/10/2011 08:59:41
Quote Anchor link
Je moet je script iets beter organiseren, je moet je database query uitvoeren binnen de if op regel 59
 
Niels Veer

Niels Veer

02/10/2011 09:19:12
Quote Anchor link
Als je het zo bedoelt werkt het niet helemaal, er is een foutmelding minder maar ik blij nog altijd deze houden:

Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62

Notice: Undefined variable: row in C:\Domains\zeilen.ophetweb.nu\wwwroot\gastenboekbestanden\loginsysteem\login.php on line 62

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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
<?php
session_start();

define ( 'DEBUGMODE', true );

if ( constant( 'DEBUGMODE' ) )
{

    error_reporting(E_ALL);
    ini_set('display_errors', 1);}
else
{
    ini_set( 'display_errors', 0 );
}

    $aErrors = array();
    $rResult = '';
    //  Maak een verbinding met de database

if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')
{


    
        include('mysqlgegevens.php');
    
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }

    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'loginsysteem', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }

      else {
        $sQuery = "
        SELECT
            username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['login'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
                    
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
        if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
        if (mysql_num_rows($rResult) > 0)
        $row = mysql_fetch_assoc($rResult);
        else
            $aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
      }
    }
  }


    if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password'])
    {

        $_SESSION['inlogdata']['ingelogd']=1;
        $_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
    }
}


if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{

    $_SESSION['inlogdata']['ingelogd']=0;
    $_SESSION['inlogdata']['remote_addr']='';
}



if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{

    echo 'Gebruiker is ingelogd.<br />';
    echo '<a href="?cmd=logout">uitloggen</a>';
}

else
{
    // Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
    if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!= $_SERVER['REMOTE_ADDR'])
    {

        echo 'Mogelijke hijack!';
    }

    echo 'Gebruiker is niet ingelogd.<br />';
    ?>


<form method="post" action="?cmd=login">
login: <input name="login" type="text"/><br />
wachtwoord: <input name="wachtwoord" type="password"/><br />
<input type="submit" value="inloggen"/>
</form>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php
}
echo '<br>
<br>'
;
echo '<pre>';
print_r($_POST);
echo '</pre>';
?>
Gewijzigd op 02/10/2011 09:28:26 door Niels Veer
 
Ger van Steenderen
Tutorial mod

Ger van Steenderen

02/10/2011 09:35:17
Quote Anchor link
Ik heb dit niet getest:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
<?php
session_start();

define ( 'DEBUGMODE', true );

if ( constant( 'DEBUGMODE' ) )
{

    error_reporting(E_ALL);
    ini_set('display_errors', 1);}
else
{
    ini_set( 'display_errors', 0 );
}

$aErrors = array();
$rResult = false;
    //  Maak een verbinding met de database
if ($_SERVER['REQUEST_METHOD']=='POST' and $_GET['cmd']=='login')    
    include('mysqlgegevens.php');
    
    //  Controleer of het gelukt is
    if ( $rLink === false ) {
      $aErrors[] = 'De database is onbereikbaar. Probeer het later opnieuw.';
    }

    else {
      //  Selecteer je database
    $bSelected = mysql_select_db( 'loginsysteem', $rLink );
      //  Controleer of het gelukt is
      if ( $bSelected === false ) {
        $aErrors[] = 'De database is niet geselecteerd. Probeer het later opnieuw.';
      }

      else {
        $sQuery = "
        SELECT
            username
          , password
        FROM
          loginsysteem
        WHERE
          username = '"
.mysql_real_escape_string($_POST['login'])."'
        AND
          password = '"
.sha1($_POST['wachtwoord'])."';";
                    
        //  Stuur de opdracht op
        $rResult = mysql_query( $sQuery, $rLink );
        //  Controleer of het gelukt is
        if ( $rResult === false ) {
          $aErrors[] = 'Het is niet gelukt om de gegevens op te halen';
        }
else {
            // data fetch...
            if (mysql_num_rows($rResult) > 0) {
                $row = mysql_fetch_assoc($rResult);
                if ($_POST['login'] == $row['username'] and sha1($_POST['wachtwoord']) == $row['password']) {
                    $_SESSION['inlogdata']['ingelogd']=1;
                    $_SESSION['inlogdata']['remote_addr'] = $_SERVER['REMOTE_ADDR'];
                }
            }

            else {
                $aErrors[] = 'Verkeerde combinatie gebruikernaam / wachtwoord';
            }
      }
    }
  }
}


if (isset($_GET['cmd']) and $_GET['cmd']=='logout')
{

    $_SESSION['inlogdata']['ingelogd']=0;
    $_SESSION['inlogdata']['remote_addr']='';
}



if (isset($_SESSION['inlogdata']['ingelogd']) and isset($_SESSION['inlogdata']['remote_addr']) and $_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']==$_SERVER['REMOTE_ADDR'])
{

    echo 'Gebruiker is ingelogd.<br />';
    echo '<a href="?cmd=logout">uitloggen</a>';
}

else
{
    // Als de gebruiker wel als ingelogd staat aangemerkt, maar het ip adres niet overeenkomt, dan wordt er mogelijk gehijackt
    if ($_SESSION['inlogdata']['ingelogd']==1 and $_SESSION['inlogdata']['remote_addr']!= $_SERVER['REMOTE_ADDR'])
    {

        echo 'Mogelijke hijack!';
    }

    echo 'Gebruiker is niet ingelogd.<br />';
    ?>


Toevoeging op 02/10/2011 09:37:31:

Overigens is die if op regel 52 overbodig want je contoleert dat al met de query.
 

Pagina: 1 2 volgende »



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.