Hulp gevraagd - Multiple User Log in Script (de zoveelste :))

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Senior DevOps-ontwikkelaar eIDAS

Functie­omschrijving Burgers en bedrijven veilig en betrouwbaar digitaal toegang geven tot diensten en producten van het ministerie van Economische Zaken en Klimaat. Als senior DevOps-ontwikkelaar bouw je daar letterlijk aan mee. En dat doe je bij DICTU: een van de grootste en meest vooruitstrevende ICT-dienstverleners van de Rijksoverheid. Jij werkt mee aan de doorontwikkeling van eIDAS, dat staat voor Electronic IDentification Authentication and trust Services. Deze koppeling maakt de grensoverschrijdende authenticatie op overheidswebsites binnen de Europese Unie mogelijk. Het ministerie van Economische Zaken en Klimaat heeft één moderne toegangspoort voor zijn diensten en inspecties. Enkele daarvan zijn dankzij eIDAS inmiddels

Bekijk vacature »

Rinus Schuurman

Rinus Schuurman

10/09/2010 22:13:12
Quote Anchor link
Mensen, brand me niet meteen af en ga aub niet meteen roepen dat ik de zoekfunctie maar moet gebruiken, want ik ben al vanaf vanmorgen 8 uur bezig een script naar mijn believen te laten werken, ik raak op dit moment dus aardig gefrustreerd terwijl ik het liefst eigenhandig dit voor elkaar zou maken :(.

Bij deze doe ik een beroep op julie behulpzaamheid en vraag ik jullie mij te helpen!

Ik zal hieronder het script plaatsen wat ik wil gebruiken en wat ook prima werkt, het is echter zo dat met dit script het mogelijk is om in te loggen in een afgeschermde omgeving, maar een ieder die inlogt komt op de zelfde pagina terecht.
Nu wil ik voor ieder ingelogt persoon een eigen pagina hebben waarop zij persoonlijke info kunnen vinden.

Hier het huidige script

index.php
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
<?php
ob_start();
session_start();
error_reporting(E_ALL);
include "config.php";
?>

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Login</title>
</head>

<body>
<div align="center">
<?php
if($_SERVER['REQUEST_METHOD']=="POST"){
    # Er is ingelogd, controleer alles
    $naam = $_POST['usrnaam'];
    $pass = md5(trim($_POST['adminpassw']));
    
    foreach($admin as $adm=>$admkey){
        if($naam==$admkey['name']
        &&
$pass==$admkey['pass']){
            # Alles klopt, zet de sessies goed en login
            $_SESSION['loggedin'] = $naam;
            $_SESSION['loggedinnr'] = $adm;
            $_SESSION['loggedintype'] = $admkey['type'];
            header("location: loggedin/index.php");
            exit();
        }
    }

    # De login en/of pass was/waren niet correct
    echo '<b><font color="red">Dit is niet correct</font></b>';
}

# Indien er al ingelogd is wordt de gebruiker doorgestuurd
if(isset($_SESSION['loggedin'])
&&
$_SESSION['loggedin']==$admin[$_SESSION['loggedinnr']]['name']){
    header("location: loggedin/");
    exit();
}

?>

  <table border="1" width="30%" bordercolor="#FF9933" bgcolor="#FF9933">
    <tr>
      <td>
      <p align="center"><b>Welkom op de admin site<br />
      &nbsp;</b></td>
    </tr>
    <tr>
      <td>
<form action="" method="post">
<p align="center"><b>Username: <br />
</b> <input type="text" name="usrnaam"><br><br />
<b>Password: <br></b> <input type="password" name="adminpassw"><br /><br />
<input type="submit" value="Login"><br />
</form>
      </td>
    </tr>
  </table>
</div>
</body>

</html>


config.php
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
<?php
$admin
[0]['name'] = "admin";
$admin[0]['pass'] = "098f6bcd4621d373cade4e832627b4f6"; ### een md5 gecodeerd wachtwoord, in dit geval (test)
$admin[0]['type'] = 2;
$admin[1]['name'] = "test";
$admin[1]['pass'] = "098f6bcd4621d373cade4e832627b4f6";
$admin[1]['type'] = 1;
$admin[2]['name'] = "test";
$admin[2]['pass'] = "098f6bcd4621d373cade4e832627b4f6";
$admin[2]['type'] = 0;

/*
Rechten:
0    =    gewone user
1    =    moderator
2    =    administrator
*/

?>


/loggedin/auth.php
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
<?
include "../config.php";
if(!isset($_SESSION['loggedin']) ||
$_SESSION['loggedin'] != $admin[$_SESSION['loggedinnr']]['name']){
    header("location: logout.php");
    exit();
}
function
checkAuth($type=0){
    if(is_numeric($type)){
        if($_SESSION['loggedintype'] < $type){
            echo '<div style="color:red; text-align:center;">Deze pagina is niet voor jou ogen bestemd<br />';
            echo '<a href="'.$_SERVER['HTTP_REFERER'].'">Klik hier om terug te gaan</a></div>';
            exit();
        }
    }
}

?>


/loggedin/index.php
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
<?php
/* Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd */
ob_start();
session_start();
include("auth.php");
checkAuth();
/* Tot hier dus  ;-) */
error_reporting(E_ALL);
?>


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Administratie || Home</title>
</head>

<body>

<table border="0" width="100%" height="100%" bgcolor="#FF9900">
  <tr>
    <td height="98">&nbsp;</td>
    <td height="98" align="center" width="50%"><a href="logout.php">logout [<?php echo $_SESSION['loggedin'] ?>]</a></td>
  </tr>
  <tr>
    <td><a href="testpagina.php">Klik hier om naar<br />de testpagina te gaan</a></td>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>


/loggedin/logout.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
ob_start();
session_start();
unset($_SESSION['loggedin']);
unset($_SESSION['loggedinnr']);
unset($_SESSION['loggedintype']);
header("location: ../index.php");
exit();
?>


/loggedin/testpagina.php
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
<?php
/* Deze 3 regels zijn het enige vereiste om te controleren of er is ingelogd */
ob_start();
session_start();
include("auth.php");
checkAuth(2);
/* Tot hier dus  ;-) */
error_reporting(E_ALL);
?>


<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Administratie || Test pagina</title>
</head>

<body>

<table border="0" width="100%" height="100%" bgcolor="#FF9900">
  <tr>
    <td height="98">&nbsp;</td>
    <td height="98" align=center width="50%"><font color=green><b><?php echo "Welkom ".$_SESSION['loggedin']?></b></font><br />
    <a href="logout.php">logout</a></td>
  </tr>
  <tr>
    <td><a href=index.php>Terug naar Home</a></td>
    <td>&nbsp;</td>
  </tr>
</table>

</body>

</html>


Ik heb het inmiddels 1 keer voor elkaar gekregen om 2 gebruikers in 2 verschillende pagina's terecht te laten komen na het inloggen, maar per ongeluk heb ik dit weer gewist :(
Is er iemand die mij hiermee kan helpen of evt. tips geven, rekening houdende met mijn zeer, maar dan ook echt zeer beperkte kennis van PHP.
 
PHP hulp

PHP hulp

01/10/2020 17:51:32
 
Vincent Huisman

Vincent Huisman

10/09/2010 22:15:23
Quote Anchor link
gewoon na het inloggen naar ?id=65 oid laten gaan en dan op die pagina kijken welk id bij welke persoon hoort
 
Rinus Schuurman

Rinus Schuurman

10/09/2010 22:21:47
Quote Anchor link
hmm ok Vincent, jij gaat er nu vanuit dat ik de kennis bezit om dat maar even te doen, maar helaas... niets is minder waar :)

Het script is een bestaand script, ik heb getracht hier wijzigingen in aan te brengen waardoor het meer aan mijn wensen zou voldoen, maar dat is finaal verkeerd gegaan, dit forum is dus ook een noodgreep.

Wat jij nu zegt, wat 'gewoon' zou moeten zijn is voor mij abracadabra, dus als je wat specifieker zou willen zijn zou ik dat zeer op prijs stellen ;)

Toevoeging op 10/09/2010 22:30:36:

Wat ik dus wil is jantje logt in met zijn wachtwoord, dan moet jantje op pagina jantje.php, truusje dan op truusje.php enz.
Kan dat met dit script?
Zo ja, hoe ga ik dat voor elkaar krijgen?
Zo nee, wat heb ik nodig om dit wel voor elkaar te krijgen?

Bij voorbaat dank!
 
Niek s

niek s

10/09/2010 22:54:33
Quote Anchor link
Allereerst is het niet slim om die wachtwoorden hier neer te zetten, haal die even weg! Ookal is het een md5je, check namelijk maar eens plain-text.info

Anyway, wat Je eigenlijk moet willen is afhankelijk van de user id de bijbehorende (persoonlijke) data uit een database halen. Daar moet je wel uit kunnen komen met tuts en Google, mocht het dan nog niet lukken dan heb je altijd nog wel weer dit forum:)
 
Wim E

Wim E

10/09/2010 23:03:40
Quote Anchor link
Daarnaast zou je zelf eens na kunnen gaan. Je post behoorlijk wat code. Je weet hopelijk wel hoe je iets in php moet laten zien...(echo).
Dan heb je de mogelijkheid om een UserId op te halen. Als het zoals Vincent aangaf via de URL gebeurd kun je $_GET['id'] gebruiken.

Ik weet niet precies wat het verschil is tussen jou loggedin/index.php en die loggedin/testpagina.php
Maar in de index.php moet je de id van de ingelogde gebruiker zien te achterhalen.
Vandaaruit kun je een query sturen naar de browser om daarin de specieke data op te halen.
 
Mick ForSure

Mick ForSure

11/09/2010 11:00:58
Quote Anchor link
Je maakt gebruik van een sessie als je ingelogd bent... Gebruik die dan om data uit de database te halen en de info weer te geven.

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
<?php
//Haal de gegevens van de persoon uit de database
$query = "SELECT * FROM tabelnaam WHERE naam='$_SESSION[loggedin]'";
if(mysql_query($query)) {
  if(mysql_num_rows($query) != false) {
    //Fetch alle data
    $fetch = mysql_fetch_assoc($query);
    print_r($fetch);
  }
}

else {
  die(mysql_error());
}

?>


Heb nu even print_r(); gebruikt zodat je alle velden uit je table te zien krijgt en deze kunt gaan verwerken: $fetch['naam'], like this.
 
Rinus Schuurman

Rinus Schuurman

13/09/2010 10:18:59
Quote Anchor link
Allereerst wil ik jullie bedanken voor de moeite om mijn vraag te beantwoorden.

Het probleem is dat alleen dat ik er weinig van begrijp.
Ik denk dat ik maar eens een ontzettend dik boek "Php voor Dummies" ga aanschaffen :).

Ik moet erkennen, denk ik, dat ik simpelweg te weinig kennis bezit om dit werkende te krijgen, probleem is wel dat ik het wel heel dringend nodig heb.
Kan iemand mij misschien een tip geven hoe ik dit het snelst voor elkaar kan krijgen?

Bij voorbaat dank!

edit: wat ik nog even moet vertellen misschien, is dat ik de code zoals deze bovenin het topic staat uiteraard niet zelf heb geschreven, misschien dat dat voor enige verwarring heeft gezorgd?!
Gewijzigd op 13/09/2010 10:21:37 door Rinus Schuurman
 
Obelix Idefix

Obelix Idefix

13/09/2010 12:26:20
Quote Anchor link
Je stuurt nu iedereen die goed inlogt door naar loggedin/index.php
Mocht je voor een ieder verschillende pagina's willen, zul je daar een afvraging uit bv een database kunnen/moeten gaan doen (obv $_SESSION['loggedin']) en op basis daarvan gegevens moeten laten zien.
 
Rinus Schuurman

Rinus Schuurman

13/09/2010 12:52:05
Quote Anchor link
ik snap het, al is het een beetje.
Dit houdt in dat ik begrijp wat jullie bedoelen, maar dat ik nog niet echt in de gaten heb hoe ik dit moet toepassen dmv php.
Op dit moment ben ik bezig met een (online) cursus php en ik hoop dat dit mij kennis genoeg geeft om met jullie input verder te werken.

Obelix en Idefix, wat jij zegt klopt inderdaad, iedereen die nu maar de juist combinatie inlognaam en wachtwoord heeft wordt naar één en de zelfde pagina verwezen, dit zou dus voor iedereen een andere pagina moeten zijn, althans... er moet andere info zichtbaar worden.
 



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.