Archief - PhP: Login met Membersysteem

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

50Euro

Legacy Member
Op http://www.tipke.be heb ik nu de basis gemaakt.

Ik zou graag hebben dat na registratie alle gegevens opgeslagen blijven per member.

Dus je moet ingelogd zijn om de site te kunnen zien. (Voorlopig kan je nu gewoon op 'Login" klikken. ;) ) Later zou ik, als "vergeet me niet" functie aangevinkt is, direct doorschakel naar site.

Moet ik nu alles in databases steken?

En hoe werkt de "vergeet me niet" functie? Best met Sessies of Cookies?

tikketim

Legacy Member
50Euro zei:
Ik zou graag hebben dat na registratie alle gegevens opgeslagen blijven per member.

Dus je moet ingelogd zijn om de site te kunnen zien. (Voorlopig kan je nu gewoon op 'Login" klikken. ;) )

gewoon in de database steken :)
die vergeet me niet functie weet ik niet maar ik denk dat het iets te maken heeft met ip adres en cookies en/of sessies
dat inloggen kan je ook doen met sessies en coockies

grtz Tim

orez

Legacy Member
persoon niet vergeten werkt gewoon met cookies...

@ tikketim wtf @ ip??

Ge zorgt er gewoon voor dat password en username als soort van inscryptie opgeslagen wordt in uw database, en zet zelfde inscryptie bv in uwen cookie, dan haalde info op uit uwen cookie en controleerde me de waarden vanuit den database, als er geen cookie is, dan toonde gewoon de login form.

ne sessie sluit zichzelf af na het sluiten van jen browser. Ne cookie blijft, tenzij dagge ze wist

tikketim

Legacy Member
ja idd makkelijkere oplossing , ik was ook maar aan het brainstormen eh :)

Dece

Legacy Member
ja alles opslaan in de db.
en de vergeet me niet functie kan enkel via cookies, want sessies zijn verlopen als je je browserwindow afsluit

50Euro

Legacy Member
Oke.. Kheb nu die Cookies gemaakt. Het werkt zoals het moet denk ik..

Vraag is nu of dit de juiste methode is...

Er is wel nog nergens controle op.. De Cookies zijn ook niet gecodeerd..

Je kan het bekijken op http://www.tipke.be

index.php:

PHP:
<?php
if ((isset($_COOKIE['gebruikersnaam']))&&(isset($_COOKIE['paswoord']))&&($_COOKIE['onthouden']==once)){
	setcookie('onthouden',$_POST['onthouden'],time()-3600);
	header("Location: home.php");
	}
if ((isset($_COOKIE['gebruikersnaam']))&&(isset($_COOKIE['paswoord']))&&($_COOKIE['onthouden']==always)){
	header("Location: home.php");	
	}
if ((!isset($_COOKIE['gebruikersnaam']))OR(!isset($_COOKIE['paswoord']))){
	header("Location: login.php");
	}
if ((isset($_COOKIE['gebruikersnaam']))&&(isset($_COOKIE['paswoord']))&&(!isset($_COOKIE['onthouden']))){
	header("Location: login.php");
	}
?>

login.php:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head>
<title>Welkom bij de Plaskesvrienden! - Login!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<link href="site/styles.css" rel="stylesheet" type="text/css">
<table class="style1" align="center">
<tbody>
<tr>
	<td>
	<img src="site/header.gif" alt="De Plaskesvrienden!" align="middle">
	</td>
</tr>
</tbody>
</table>
<br />
<form action="login_verw.php" method="post">
<table class="style3" align="center">
  <tbody>
  <tr>
    <td>
	<table class="style5">
  <tr>
    <td colspan="2" align="center" class="kop">Login Formulier</td>
  </tr>
  <tr>
    <td align="left">Gebruikersnaam:</td>
    <td><input type="text" size="20" name="gebruikersnaam" /></td>
  </tr>
  <tr>
    <td align="left">Paswoord:</td>
    <td><input type="password" size="20" name="paswoord" /></td>
  </tr>
  <tr>
    <td><input type="submit" value="Log In!" name="login" /></td>
    <td>Vergeet me niet! <input type="checkbox" name="onthouden" /></td>
  </tr>
  <tr>
    <td colspan="2"><a href="registreer.php">Registreer</a></td>
  </tr>
  <tr>
    <td colspan="2"><a href="paswoord_vergeten.php">Paswoord Vergeten?</a></td>
  </tr>
	</table>
	</td>
  </tr>
</tbody>
</table>
</form>
<br />
<?php
require ('layout-down.php');
?>

login_verw.php:

PHP:
<?php
if ((isset($_POST['gebruikersnaam']))&&(isset($_POST['paswoord']))&&(!isset($_POST['onthouden']))){
	setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()+3600);
	setcookie('paswoord',$_POST['paswoord'],time()+3600);
	setcookie('onthouden',once,time()+3600);
	header("Location: index.php");
	}
if ((isset($_POST['gebruikersnaam']))&&(isset($_POST['paswoord']))&&(isset($_POST['onthouden']))){
	setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()+3600);
	setcookie('paswoord',$_POST['paswoord'],time()+3600);
	setcookie('onthouden',always,time()+3600);
	header("Location: index.php");	
	}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head>
<title>Welkom bij de Plaskesvrienden! - Login!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<link href="site/styles.css" rel="stylesheet" type="text/css">
<table class="style2" align="center">
  <tbody>
  <tr>
    <td>Gegevens worden verwerkt!</td>
  </tr>
</tbody></table>
</body>
</html>

layout-down.php:

PHP:
<table class="style2" align="center">
  <tbody><tr>
    <td width="33%">
	<?php
	print date ('l, d F, Y');
	?>
	</td>
    <td width="33%">
		<?php 
			if ((isset($_COOKIE['gebruikersnaam']))&&(isset($_COOKIE['paswoord']))&&(isset($_COOKIE['onthouden']))){
		?><a href="loguit.php">Uitloggen?</a>
		<?php } ?>
	</td>
    <td width="33%">
	  <a href="mail.php" target="_self">Contacteer Webmaster</a>
	 </td>
  </tr>
</tbody></table>
</body>
</html>

loguit.php:

PHP:
<?php
	setcookie('gebruikersnaam',$_POST['gebruikersnaam'],time()-3600);
	setcookie('paswoord',$_POST['paswoord'],time()-3600);
	setcookie('onthouden',$_POST['onthouden'],time()-3600);
	header("Location: index.php");
?>

Waar kan het beter of waar moet het beter?

Col.Kurtz

Legacy Member
nooit gebruikersnamen / wachtwoorden opslaan in sessies / cookies

hoe je best te werk gaat :

wanneer een user inlogt met correcte gegevens, sla je zijn ID op in een sessie en/of cookie

in je db sla je ook zijn IP

je slaat in een cookie een md5 op van combinatia ID + IP of andersom (desnoods nog een tussenvoegsel)

wanneer een gebruiker terug op je site komt, controleer je of die md5 uit de cookie overeenkomt met de md5 van id uit de cookie + huidige ip van gebruiker

50Euro

Legacy Member
Col.Kurtz zei:
nooit gebruikersnamen / wachtwoorden opslaan in sessies / cookies

Die gegevens komen later in Database.. Ik wil vooral weten of de Cookie van de functie "Vergeet me niet!" goed is..

Thx for advice.. :niceone:

DarkBone

Legacy Member
Euh dat is toch HELEMAAL niet hoe het moet?
Nooit gehoord van strings ook zeker? Uw once en always moet ge tussen quotes zetten, anders denkt PHP dat het om constanten gaat. PHP is dan nog eens zo flexibel dat het daar niet over struikelt...

Maareuh gij hebt echt nog nie de basis van PHP door als ik dit zo zie.

Soit, bekijk dit login script maar eens:

http://www.phpfreakz.nl/artikelen.php?aid=98&page=1

50Euro

Legacy Member
DarkBone zei:
Euh dat is toch HELEMAAL niet hoe het moet?
Nooit gehoord van strings ook zeker? Uw once en always moet ge tussen quotes zetten, anders denkt PHP dat het om constanten gaat. PHP is dan nog eens zo flexibel dat het daar niet over struikelt...

Maareuh gij hebt echt nog nie de basis van PHP door als ik dit zo zie.

Soit, bekijk dit login script maar eens:

http://www.phpfreakz.nl/artikelen.php?aid=98&page=1

Thx voor de link..

Ook al vind ik dat die Cookie om ingelogd te blijven wat overbeveiligt is.. ;)

Ik heb toch geschreven dat die bij mij niet beveiligt is? En dat gebruikersnaam en paswoord in database komen?

Ik heb PhP inderdaad nog niet onder de knie maar zo een functie op iedere pagina is ook mijn uiteindelijke bedoeling. Met connectie naar database en controle vanuit database op gebruikersnaam en paswoord.. Maar de controle van de Cookie op de index.php is toch handig en simpel? Allé, is het principe goed?

Kijk.. Ik denk dat ik Cookies nu wel snap. Nu ga ik Sessies doen en daarna databases. En ondertussen vraag ik of ik het goed doe aan kenners.

servi

Legacy Member
je slaat in een cookie een md5 op van combinatia ID + IP of andersom (desnoods nog een tussenvoegsel)

wanneer een gebruiker terug op je site komt, controleer je of die md5 uit de cookie overeenkomt met de md5 van id uit de cookie + huidige ip van gebruiker



daar sta je dan met een dynamisch IP-adres en je kan niet inloggen op die site !

De meeste surfers hebben een dynamisch IP-adres dus dat kan je niet gebruiken om te controleren of zijn login wel klopt.

50Euro

Legacy Member
servi zei:
je slaat in een cookie een md5 op van combinatia ID + IP of andersom (desnoods nog een tussenvoegsel)

wanneer een gebruiker terug op je site komt, controleer je of die md5 uit de cookie overeenkomt met de md5 van id uit de cookie + huidige ip van gebruiker



daar sta je dan met een dynamisch IP-adres en je kan niet inloggen op die site !

De meeste surfers hebben een dynamisch IP-adres dus dat kan je niet gebruiken om te controleren of zijn login wel klopt.

idd.. Daar had ik ook al over zitten nadenken. Met Ip adres ga ik toch niet werken. Zover ga ik het niet drijven.

Ik ga er gewoon voor zorgen dat mijn members hun gebruikersnaam, paswoord en e-mail adres veilig zijn.

Als ik nu een tabel maak in mijn database, als ik zover ben, om alles te testen
kan ik dan later velden bijmaken? Of moet ik dan een geheel nieuwe tabel maken?

DarkBone

Legacy Member
Tabellen kunnen op ieder tijdstip gewijzigd worden, da's geen probleem.

50Euro

Legacy Member
Hoe is het nu eigenlijk veilig?

Dit is men registreer pagina. (Werkt nog niet, enkel layout! Alle PhP is trouwens van men site voorlopig.)

Na registratie wil ik al deze gegevens bijhouden. Gebruikersnaam en paswoord zullen nodig zijn om hier in te loggen. Met 'Remember Me' functie.

Ik zou alles in database steken en dan elke keer iemand beveiligde pagina bezoekt een sessie starten. Enkel 'Remember Me' functie in een cookie. Hoe moet ik die Cookie beveiligen? Coderen?

En welke gegevens mogen niet zomaar zonder codering in database staan?
Gebruikersnaam en paswoord?

Thx alvast..

50Euro

Legacy Member
Hier staat de onderstaande registreer pagina..

Is dit goed zo? Ik bedoel dus qua code en werking..
Bv Als iemand zijn paswoord vergeet te bevestigen komt ook het email adres er niet terug op. Is dat goed zo? Hetzelfde voor het paswoord..

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><head>
<title>Welkom bij de Plaskesvrienden! - Home!!</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link href="site/styles.css" rel="stylesheet" type="text/css">
</head>
<?php
if (!empty($_POST['registreer'])){
$voornaam= $_POST['voornaam'];
$naam= $_POST['naam'];
$gebruikersnaam= $_POST['gebruikersnaam'];
$paswoord= $_POST['paswoord'];
$paswoord_bev= $_POST['paswoord_bev'];
$email= $_POST['email'];
$email_bev= $_POST['email_bev'];
}
?>
<table class="style1" align="center">
<tbody>
<tr>
	<td>
	<img src="site/header.gif" alt="De Plaskesvrienden!" align="middle">
	</td>
</tr>
</tbody>
</table>
<br />
<form action="registreer.php" method="post">
<table class="style3" align="center">
  <tbody>
  <tr>
    <td>
	<table class="style0">
  <tr>
    <td colspan="3" align="center" class="kop" height="100">Registratieformulier</td>
  </tr>
  <tr>
    <td width="130">Voornaam:</td>
    <td width="190"><input type="text" size="30" name="voornaam" value="<?php if (!empty($voornaam)){ print $voornaam; } ?>" /></td>
	<td width="205">
	<?php
	if ((empty($voornaam))&&(isset($_POST['registreer']))){
	echo "* Vul uw voornaam in!";
	}
	?>
	</td>
  </tr>
  <tr>
    <td>Naam:</td>
    <td><input type="text" size="30" name="naam" value="<?php if (!empty($naam)){ print $naam; } ?>" /></td>
	<td>
	<?php
	if ((empty($naam))&&(isset($_POST['registreer']))){
	echo "* Vul uw naam in!";
	}
	?>
	</td>
  </tr>
  <tr>
    <td>Gebruikersnaam:</td>
    <td><input type="text" size="30" name="gebruikersnaam" value="<?php if (!empty($gebruikersnaam)){ print $gebruikersnaam; } ?>" /></td>
	<td>
	<?php
	if ((empty($gebruikersnaam))&&(isset($_POST['registreer']))){
	echo "* Vul uw gebruikersnaam in!";
	}
	?>
	</td>
  </tr>
    <tr>
    <td>Paswoord:</td>
    <td><input type="password" size="30" name="paswoord" /></td>
	<td>
	<?php
	if ((empty($paswoord))&&(isset($_POST['registreer']))){
	echo "* Vul uw paswoord in!";
	}
	?>
	</td>
  </tr>
  <tr>
    <td>Paswoord bevestigen:</td>
    <td><input type="password" size="30" name="paswoord_bev" /></td>
	<td>
	<?php
	if ((!empty($paswoord))&&(!empty($paswoord_bev))&&($paswoord!==$paswoord_bev)&&(isset($_POST['registreer']))){
	echo "* Paswoord komt niet overeen!";
	}
	if ((!empty($paswoord))&&(empty($paswoord_bev))){
	echo "* Bevestig uw paswoord!";
	}
	?>
	</td>
  </tr>
  <tr>
    <td>E-Mail:</td>
    <td><input type="text" size="30" name="email" /></td>
	<td>
	<?php
	if ((empty($email))&&(isset($_POST['registreer']))){
	echo "* Vul uw E-mail adres in!";
	}
	?>
	
	</td>
  </tr>
  <tr>
    <td>E-Mail bevestigen:</td>
	<td><input type="text" size="30" name="email_bev" /></td>
	<td>
	<?php
	if ((!empty($email))&&(!empty($email_bev))&&($email!==$email_bev)&&(isset($_POST['registreer']))){
	echo "* E-mail adres komt niet overeen!";
	}
	if ((!empty($email))&&(empty($email_bev))){
	echo "* Bevestig uw E-mail!";
	}
	?>	
	</td>
  </tr>
  <tr>
    <td colspan="3" align="center" height="100"><input type="submit" name="registreer" value="Registreer!" /></td>
  </tr>
	</table>
	</td>
  </tr>
</tbody>
</table>
</form>
<br />
<?php
require ('layout-down.php');
?>

Dus als dit goed is zou ik bovenaan d.m.v. voorwaarde alles opslaan in database en terug naar loginpagina doorsturen om in te loggen.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan