inlogsysteem voor grote groep

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: 1 2 3 volgende »

Bart

bart

21/10/2006 09:00:00
Quote Anchor link
heey hoi,

ik zoek eigenlijk een inlogsysteem in php, voor een hele grote groep met 1 inlog naam en wachtwoord. wanneer iemand dan heeft in gelogt dat diegene dan naar een soort indexpagina gaat en daar kan kiezen naar de verschillende pagina's een stuk of 5 maximaal, meer zullen het er niet worden.

ik heb dit nodig voor bij mij op het werk, waar ze voor de schooljeugd een soort inlogpagina willen hebben en achter deze pagina moet dan informatie komen voor de jeugd. en ook nog een keer een kalender waarop iedereen kan invullen wanneer hij of zij kan werken.
maar dat is toekomst.

wie o wie kan mij helpen, ik heb hier al veelvuldig gezocht en geprobeerd, maar mijn php kennis is ongeveer niveau beginneling...
Gewijzigd op 01/01/1970 01:00:00 door Bart
 
PHP hulp

PHP hulp

28/11/2024 11:26:17
 
Benny Lava

Benny Lava

21/10/2006 09:29:00
Quote Anchor link
U zou zo iets kunnen maken zoals dit:
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
<?php
     /* Gebruikersnaam en Wachtwoord */
     $Gebruikersnaam = "admin";
     $Wachtwoord = "21232f297a57a5a743894a0e4a801fc3"; // admin
    
     /* Kijkt of eral gepost is,
     zoja gaat die verder met wat tussen de { } staat */

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

         /* Haalt de geposten dingen op en beveiligt ze */
         $Post_Gebruikersnaam = htmlspecialchars($_POST['gebruikersnaam']);
         $Post_Wachtwoord = htmlspecialchars($_POST['wachtwoord']);
         $Post_Wachtwoord_MD5 = md5($Post_Wachtwoord);

         /* Kijkt of de invoer veld ingevuld zijn zo niet
         Geeft die een error weer */

         if (empty($Post_Gebruikersnaam)){
             $error = '<br>Vul een gebruikersnaam in.';
         }


         if (empty($Post_Wachtwoord)){
             $error.= '<br>Vul een wachtwoord in.';
         }


         if ($Post_Wachtwoord_MD5 != $Wachtwoord || $Post_Gebruikersnaam != $Gebruikersnaam){
             $error.= '<br>Gebruikersnaam of Wachtwoord kloppen niet.';
         }


         if(isset($error)){
             echo 'Verbeter het volgende:';
             echo $error;
             exit;
         }

         else
         {
             /* Pagina die je krijgt als je ingelogd bent */
             $Ingelogd = "True";
             include ('index2.php');
         }
     }

?>


Ik weet niet of u zo iets bedoeld, maar in de variabelen staan de gebruikersnaam en wachtwoord.
Die kunt u simpel wijzingen, ik heb het wachtwoord in MD5 erin gezet stukje veiliger.
 
Stefan van Iwaarden

Stefan van Iwaarden

21/10/2006 09:30:00
Quote Anchor link
hallo bart,

in principe is het niet moeilijk. weet je zeker dat je het op met 1 gebruikersnaam en wachtwoord wilt doen? of moet het in de toekomst ook uitbreidbaar zijn naar meerdere gebruikersnamen en wachtwoorden?

als je het gewoon op 1 gebruikersnaam en wachtwoord wilt houden kun je zoiets als dit doen.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if (($_POST['gebruikersnaam'] == 'gebruikersnaam') && $_POST['wachtwoord'] == 'wachtwoord')
{

//hier je indexpagina
}
else
{
echo('Dit is niet de goede inlogcombinatie!');
}

?>


dit is nog maar heel simpel, maar het berust op dit principe.
Gewijzigd op 01/01/1970 01:00:00 door Stefan van Iwaarden
 
Jan Koehoorn

Jan Koehoorn

21/10/2006 11:03:00
Quote Anchor link
Het zou ook met .htaccess en .htpasswd kunnen.

Er is zelfs een online tool voor die automatisch de juiste bestanden genereert.
Gewijzigd op 01/01/1970 01:00:00 door Jan Koehoorn
 
Bart

bart

21/10/2006 14:38:00
Quote Anchor link
@benny:
ik heb de code gekopieerd en geplakt, de user en w8wrd verandert, maar hij doet niks bij mij, gewoon blanco pagina, ook bij include heb ik de pagina ingevoegd. wat doe ik niet geod
 
Joren de Wit

Joren de Wit

21/10/2006 14:48:00
Quote Anchor link
@Benny: Dat script doet niets meer dan controleren of ingevulde gegevens overeenkomen. In jouw script kun je gewoon www.jouwsite.nl/index2.php bezoeken door er direct naar toe te linken, er wordt nergens gecontroleerd of de bezoeker van die pagina wel ingelogd is.

Op een of andere manier moet je ergens opslaan dat een bepaalde gebruiker is ingelogd. Dit kan met sessies of cookies, waarbij het eerste mijn voorkeur heeft.

Als tijdens het inloggen de ingevulde gegevens blijken te kloppen, maak je een sessie aan waaruit blijkt dat de gebruiker ingelogd is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSIOn
['logged_in'] = true;
?>


Op pagina's die alleen ingelogde gebruikers mogen zien kun je dan controleren of deze sessie bestaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_SESSION['logged_in']))
{

    // Toon de pagina
}
else
{
    // Stuur gebruiker terug
}
?>
 
Bart

bart

21/10/2006 14:52:00
Quote Anchor link
Blanche schreef op 21.10.2006 14:48:
@Benny: Dat script doet niets meer dan controleren of ingevulde gegevens overeenkomen. In jouw script kun je gewoon www.jouwsite.nl/index2.php bezoeken door er direct naar toe te linken, er wordt nergens gecontroleerd of de bezoeker van die pagina wel ingelogd is.

Op een of andere manier moet je ergens opslaan dat een bepaalde gebruiker is ingelogd. Dit kan met sessies of cookies, waarbij het eerste mijn voorkeur heeft.

Als tijdens het inloggen de ingevulde gegevens blijken te kloppen, maak je een sessie aan waaruit blijkt dat de gebruiker ingelogd is:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSIOn
['logged_in'] = true;
?>


Op pagina's die alleen ingelogde gebruikers mogen zien kun je dan controleren of deze sessie bestaat:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
if(isset($_SESSION['logged_in']))
{

    // Toon de pagina
}
else
{
    // Stuur gebruiker terug
}
?>


Waar zet ik deze 2 code's neer als ik vragen mag? die laatste code op elke pagina die ze mogen zien als ze ingelogd zijn neem ik aan,

maar die korte code dan?
 
Joren de Wit

Joren de Wit

21/10/2006 14:57:00
Quote Anchor link
Die korte plaats je in je login-script. Als je gecontroleerd hebt of de ingevulde gebruikersnaam en wachtwoord kun je met die code een sessie aanmaken waaruit blijkt dat de gebruiker ingelogd is.

Vergeet trouwens niet je loginscript en alle beveiligde pagina's te beginnen met session_start(), anders zal het hele verhaal niet werken.
 
Bart

bart

21/10/2006 15:12:00
Quote Anchor link
ohkee, dat heb ik nu gedaan, maar ik kan nergens mijn user en w8wrd invullen :S
 
Joren de Wit

Joren de Wit

21/10/2006 15:17:00
Quote Anchor link
Tja, je zult natuurlijk zelf nog wel even een formuliertje moeten maken, dat staat in bovenstaande script nog niet.
 
Bart

bart

21/10/2006 15:22:00
Quote Anchor link
ik heb nu dit staan: klopt dit want hij vraagt bij action naar iets waar moet ik dat heen verwijzen?

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="secure_page.php" class="login">
<h1>Inlogscherm</h1>
<p>
<label for="username">username:</label>
<input id="username" name="username" type="text">
</p>
<p>
<label for="password">password:</label>
<input id="password" name="password" type="password">
<input type="submit" value="inloggen">
</p>
</form>
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
<?php
     /* Gebruikersnaam en Wachtwoord */
     $Gebruikersnaam = "baas";
     $Wachtwoord = "enserweg"; // admin
    
     /* Kijkt of eral gepost is,
     zoja gaat die verder met wat tussen de { } staat */

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

         /* Haalt de geposten dingen op en beveiligt ze */
         $Post_Gebruikersnaam = htmlspecialchars($_POST['gebruikersnaam']);
         $Post_Wachtwoord = htmlspecialchars($_POST['wachtwoord']);
         $Post_Wachtwoord_MD5 = md5($Post_Wachtwoord);

         /* Kijkt of de invoer veld ingevuld zijn zo niet
         Geeft die een error weer */

         if (empty($Post_Gebruikersnaam)){
             $error = '<br>Vul een gebruikersnaam in.';
         }


         if (empty($Post_Wachtwoord)){
             $error.= '<br>Vul een wachtwoord in.';
         }


         if ($Post_Wachtwoord_MD5 != $Wachtwoord || $Post_Gebruikersnaam != $Gebruikersnaam){
             $error.= '<br>Gebruikersnaam of Wachtwoord kloppen niet.';
         }


         if(isset($error)){
             echo 'Verbeter het volgende:';
             echo $error;
             exit;
         }

         else
         {
             /* Pagina die je krijgt als je ingelogd bent */
             $Ingelogd = "True";
             include ('index2.php');
         }
     }

?>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$_SESSIOn
['logged_in'] = true;
?>

</body>
</html>
 
Joren de Wit

Joren de Wit

21/10/2006 15:46:00
Quote Anchor link
Als je het formulier binnen dezelfde pagina hebt als het script waarmee je het inloggen controleert, zul je ook naar dezelfde pagina moeten verwijzen. Zoals het script hieronder staat werkt het.

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
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
session_start();

if($_SERVER['REQUEST_METHOD'] == 'POST')
{

    /* Gebruikersnaam en Wachtwoord */
    $Gebruikersnaam = "test";
    $Wachtwoord = "test"; // admin
        
    /* Haalt de geposten dingen op en beveiligt ze */

    $Post_Gebruikersnaam = htmlspecialchars($_POST['username']);
    $Post_Wachtwoord = htmlspecialchars($_POST['password']);
    
    /* Kijkt of de invoer veld ingevuld zijn zo niet
    Geeft die een error weer */

    if (empty($Post_Gebruikersnaam))
    {

         $error = '<br>Vul een gebruikersnaam in.';
    }

    if (empty($Post_Wachtwoord))
    {

        $error .= '<br>Vul een wachtwoord in.';
    }

    if ($Post_Wachtwoord != $Wachtwoord || $Post_Gebruikersnaam != $Gebruikersnaam)
    {

         $error .= '<br>Gebruikersnaam of Wachtwoord kloppen niet.';
    }

    
    if(isset($error))
    {

         echo 'Verbeter het volgende:';
         echo $error;
         exit;
    }

    else
    {
         /* Pagina die je krijgt als je ingelogd bent */
         $_SESSION['logged_in'] = true;
         echo 'Je bent ingelogd.';
    }
}

else
{
?>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
<form method="post" action="#" class="login">
<h1>Inlogscherm</h1>
<p>
<label for="username">username:</label>
<input id="username" name="username" type="text">
</p>
<p>
<label for="password">password:</label>
<input id="password" name="password" type="password">
<input type="submit" value="inloggen">
</p>
</form>
</body>
</html>
<?php
}
?>


ps. Het kan nog veel netter, maar dit is opzet die je kunt gebruiken.
 
Bart

bart

21/10/2006 16:04:00
Quote Anchor link
ohkee, bedankt, alleen nu krijg ik deze fout melding:

Notice: Undefined index: username in /home/bart/domains/celpiavio.nl/public_html/baas/index1.php on line 13

Notice: Undefined index: password in /home/bart/domains/celpiavio.nl/public_html/baas/index1.php on line 14
Verbeter het volgende:
Vul een gebruikersnaam in.
Vul een wachtwoord in.
Gebruikersnaam of Wachtwoord kloppen niet.

http://www.celpiavio.nl/baas/index1.php staat het
 
Joren de Wit

Joren de Wit

21/10/2006 16:26:00
Quote Anchor link
Dat komt omdat je niet eerst controleert of die post variabelen wel bestaan. Dat levert altijd een notice op. Gebruik dus bijvoorbeeld:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($_POST['username']))
{

    // Dan pas met $_POST['username'] werken...
}
?>
 
Bart

bart

21/10/2006 17:40:00
Quote Anchor link
ik heb ze er bij in geplakt, nu krijg ik weer een andere error

/* Haalt de geposten dingen op en beveiligt ze */
$Post_Gebruikersnaam = htmlspecialchars if(isset($_POST['username']))($_POST['username']);
$Post_Wachtwoord = htmlspecialchars if(isset($_POST['password']))($_POST['password']);


en de error:

Parse error: parse error, unexpected T_IF in /home/bart/domains/celpiavio.nl/public_html/baas/index1.php on line 13
 
Joren de Wit

Joren de Wit

21/10/2006 17:48:00
Quote Anchor link
Je kunt een if-statement natuurlijk niet binnen een functie gebruiken. Het zou zoiets worden van:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
<?php
if(isset($_POST['a']))
{

    $b = htmlspecialchars($_POST['a']);
}

?>
 
Lissy Pixel

Lissy Pixel

21/10/2006 17:53:00
Quote Anchor link
En zoiets:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_POST['username']))        
    {

        $Post_Gebruikersnaam    = htmlspecialchars($_POST['username']);
    }

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

        $Post_Wachtwoord    = htmlspecialchars($_POST['password']);
    }

?>


Effies aangepast
Gewijzigd op 01/01/1970 01:00:00 door Lissy Pixel
 
Frank -

Frank -

21/10/2006 18:02:00
Quote Anchor link
@Lissy: Dit gaat niet werken, je mag geen vergelijking uitvoeren wanneer je een functie aanroept. De oplossing van Blanche is de juiste.

Een andere oplossing:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?
foreach($_POST as $index => $value){
  $_POST[$index] = htmlspecialchars($value);
}

?>

Dan doorloop je alle $_POST input en wordt alles met htmlspecialchars() bewerkt. Ik vraag me alleen af wat je hiermee wilt bereiken, ik gebruik uitsluitend voor data die UIT een database komt en helemaal nooit voor data wat uit een formulier komt.

Edit: foutje hersteld
Gewijzigd op 01/01/1970 01:00:00 door Frank -
 
Bart

bart

21/10/2006 18:13:00
Quote Anchor link
@frank:
die code die jij net plaatste is die voor username en password of alleen username en moet ik nog een aparte maken voor password? en waar plak ik hem en wat moet ik verwijderen?

en waarom ik niet vanuit een database ga, weet ik niet,ik heb 2 geprobeerd met een database, maar teon kwam het kopje mysql ofzo? en toen raakte ik de draad kwijt...
Gewijzigd op 01/01/1970 01:00:00 door bart
 
Lissy Pixel

Lissy Pixel

21/10/2006 18:16:00
Quote Anchor link
Bedankt Frank :0)
En tja .... ik vraag maar als ik iets niet kan volgen dus hier komt ie wat is dan $index?

En wat is hier niet goed aan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
if(isset($_POST['username']))        
{

    $StrGebruikersnaam    = htmlspecialchars($_POST['username']);
}

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

    $StrWachtwoord    = htmlspecialchars($_POST['password']);
}

?>
Gewijzigd op 01/01/1970 01:00:00 door Lissy Pixel
 
Frank -

Frank -

21/10/2006 18:31:00
Quote Anchor link
@Lissy: Toen ik mijn reactie aan het tikken was, had jij er nog een ander stukje script staan. Wat je nu gebruikt, is gewoon goed, had eigenlijk ook niets anders van je verwacht.

De $index die ik in de foreach heb staan, is de index (of key) uit de array $_POST. Bv. $_POST['wachtwoord'], wachtwoord wordt dan in $index gezet.

@Bart: de functie htmlspecialchars() gebruik je wanneer je data in de browser wilt weergeven. Verder heeft deze functie geen enkele toegevoegde waarde. Vandaar dat ik niet snap wat de bedoeling is.
 

Pagina: 1 2 3 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.