Tutorials >
PHP >
Maak een login-script.
|
Gepost op: 29 september 2004 - 19:14 |
|
|
|
Nieuw lid
|
Hoe moet ik dit script nu gebruiken? Gewoon alles onder elkaar zetten? |
|
|
|
Gepost op: 02 oktober 2004 - 18:28 |
|
|
|
PHP interesse
|
ja, en aanpassen aan de eigen situatie, doch dit is geen script het is een tutorial! Het is vooral een werkwijze om een loginscript te maken. Het illusteert dat met een klasse werken in dit geval heel handig is. |
|
|
|
Gepost op: 30 januari 2005 - 11:35 |
|
|
|
Lid
|
Hoi ik had jou tutorial als basis voor een loginscript gebruikt, alles werkt perfect maar wanneer ik ingelogd ben geeft hij volgende fout weer, Hoe kan ik dit het best oplossen?
foutmelding:
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/account/public_html/class.php:83) in <b>/home/account/public_html/class.php</b> on line <b>25</b><br />
<br />
<b>Warning</b>: Cannot modify header information - headers already sent by (output started at /home/account/public_html/class.php:83) in <b>/home/account/public_html/class.php</b> on line <b>26</b><br />
<br /> <b >Warning </b >: Cannot modify header information - headers already sent by (output started at /home /account /public_html /class.php :83) in <b >/home /account /public_html /class.php </b > on line <b >25</b ><br /> <br /> <b >Warning </b >: Cannot modify header information - headers already sent by (output started at /home /account /public_html /class.php :83) in <b >/home /account /public_html /class.php </b > on line <b >26</b ><br />
verdere info,
class.php is de pagina met de loginclasse die ik steeds include.
regel 83 is het einde van m'n klasse & pagina.
regel 25 & 26 zijn de regels waar de cookie wordt geplaatst:
setcookie ("member_id",$_SESSION['member_id'],time() + 3600*24*5,'/','webadres.be');
setcookie ("pass_hash",md5($_POST['pass']),time() + 3600*24*5,'/','webadres.be');
setcookie ("member_id",$_SESSION['member_id'],time() + 3600*24*5,'/','webadres.be'); setcookie ("pass_hash",md5($_POST['pass']),time() + 3600*24*5,'/','webadres.be');
|
|
|
|
Gepost op: 02 februari 2005 - 18:09 |
|
|
|
PHP interesse
|
cookies moeten altijd aangemaakt worden voordat de headers worden verzonden. Dit is waar het probleem ligt.
Citaat: Ik quote de tutorial:
Cookies moeten namelijk aangemaakt worden voor we de headers versturen (dus voordat we enige echo doen) We zullen dus op twee tijdstippen werken, bij het begin van het parsen van een pagina (cookies verzenden/ontvangen) en later voor het echoën van de login-informatie.
bovenaan het script, voordat je maar iets geëchoëd hebt, (dus html hebt aangemaakt in enige vorm) moet de include van de klasse gedaan worden en de klasse worden geconstructed met bv $bezoeker = new login;
dan op de goeie plaats in het script echo je de getoutput.
met cookies moet je altijd in twee tijden werken. Cookies altijd aanmaken voordat de headers worden verstuurd. Werkelijke ouput, zoals de inloggevolgen, worden dan later bij het outputten afgehandeld. Met behulp van klasses is dit, in twee tijden werken makkelijker en overzichtelijker te realiseren. Dit was een van de voornaamste elementen die ik wilde meegeven met deze tutorial -niet script- |
|
|
|
Gepost op: 03 februari 2005 - 12:36 |
|
|
|
Lid
|
Mja die heb ik ook voor alle html geinclude. :
<?
require('class.php');
$bezoeker = new login;
?>
<html>
<head>
<title>Index</title>
</head>
<body>
<div id='algemeen'>
<div id='menu'>
<?php include "menu.php"; ?>
</div>
<div id='inhoud'>
<?php include "inhoud.php"; ?>
</div>
</div>
</body>
</html>
<? require('class.php'); $bezoeker = new login; ?> <html> <head> <title>Index</title> </head> <body> <div id='algemeen'> <div id='menu'> <?php include "menu.php"; ?> </div> <div id='inhoud'> <?php include "inhoud.php"; ?> </div> </div> </body> </html>
in de pagina 'menu.php' heb ik de echo getoutput; gezet. dus die opent in de index.php tussen < div > tags
verder zijn menu.php & inhoud.php gewone html pagina's met hier en daar wat php om te kijken of hij ingelogd is.
Toch geeft hij nog steeds die fout..... |
|
|
|
Gepost op: 04 februari 2005 - 16:24 |
|
|
|
PHP interesse
|
raar, misschien is het iets banaals als:
het foute
en
het goeie, want een enter of spacie is wel degelijk een output, en dus worden de headers verzonden. Kijk gewoons eens alles goed na, je moet volgens mij al iets geoutput hebben, voordat je de klasse aanroept. |
|
|
|
Gepost op: 25 augustus 2005 - 21:16 |
|
|
|
PHP expert
|
Citaat: [I][B]ParaCdo[/B] schreef op 30 Januari 2005 - 11:35[/I]
Hoi ik had jou tutorial als basis voor een loginscript gebruikt, alles werkt perfect maar wanneer ik ingelogd ben geeft hij volgende fout weer, Hoe kan ik dit het best oplossen?
foutmelding:
[..code..]
verdere info,
class.php is de pagina met de loginclasse die ik steeds include.
regel 83 is het einde van m'n klasse & pagina.
regel 25 & 26 zijn de regels waar de cookie wordt geplaatst:
[..code..]
zet ob_start(); bovenaan je pagina |
|
|
|
Gepost op: 22 januari 2006 - 20:44 |
|
|
|
Nieuw lid
|
Citaat: Nu de klasse af is kunnen we het implementeren in onze website.
We moeten dus op alle pagina's van onze website deze klasse includen. Temeer moeten we de klasse aanroepen, met $bezoeker = new login;
Dan kunnen we gelijk waar in onze scripts de functie $bezoeker->is_ingelogd() gebruiken. Of de forms echoën door $bezoeker->get_output(); aan te roepen.
Bovendien, als de functie $bezoeker->is_ingelogd() een true retourneerde, dan kunnen we de sessie variabelen $_SESSION['member_id'], $_SESSION['member_name'] en $_SESSION['count'] raadplegen. We kunnen eveneens overal nieuwe sessie variablen aanmaken om gegevens op te slaan.
Wat moet ik nou precies op elke pagina zetten? Ik snap dit niet helemaal. |
|
|
|
Gepost op: 07 mei 2006 - 17:46 |
|
|
|
PHP interesse
|
--
We moeten dus op alle pagina's van onze website deze klasse includen. Temeer moeten we de klasse aanroepen, met $bezoeker = new login;
--
Bovenstaande dus op iedere pagina |
|
|
|
Gepost op: 20 november 2006 - 19:11 |
|
|
|
Nieuw lid
|
Dus ik plaats op elke pagina:
include "login.php"; // het login script dus met de klasse
$bezoeker = new login();
en dan zou het moeten werken?
(Ik krijg slechts de pagina die eigenlijk zou moeten beschermd worden) |
|
|
|
Gepost op: 23 november 2006 - 10:49 |
|
|
|
Nieuw lid
|
moet dit: if($this->is_ingelogd)
niet dit zijn: if($this->is_ingelogd())
??
volgens mij wel |
|
|
|
Gepost op: 27 november 2006 - 00:52 |
|
|
|
PHP interesse
|
ja, idd maestrochico, een overtypfoutje |
|
|
|
Gepost op: 27 november 2006 - 17:08 |
|
|
|
PHP interesse
|
|
|
|
Gepost op: 04 mei 2007 - 07:11 |
|
|
|
Nieuw lid
|
Om toch noch even de puntjes op de ï te zetten...
Moet, onder kopje 6 (get_output), bij het 2e kader met code:
if($this->is_ingelogd) return 'string met login informatie en een button om [b]in[/b] te loggen';
if($this->is_ingelogd) return 'string met login informatie en een button om [b]in[/b] te loggen';
niet button om uit te loggen zijn?
aangezien je al ingelogd bent (zie code).
Ik wil niks afkraken, maar ik dacht laat ik het toch maar even zeggen, was voor mij ietwat verwarrend...
|
|
|
|
Gepost op: 26 november 2007 - 22:30 |
|
|
|
Nieuw lid
|
Bij mij werkt het, tof |
|
|
|
Gepost op: 01 augustus 2008 - 08:20 |
|
|
|
Nieuw lid
|
Ik snap veel van login scripts en ik heb er al een aantal geschreven, maar ik vind dit wel ovendreven moeilijk hoe jij met al die functies werkt...
Wel moet ik je een compliment geven met het gebruiken van hash IPV 32 bit codering. die zijn namelijk ez om te hacken. |
|
|
|
Gepost op: 04 september 2009 - 10:49 |
|
|
|
Nieuw lid
|
Slecht login systeem do not use this.
De schrijver dient mij prive te contacteren om enkele essentiele fouten er uit te halen.
Vooral als je OO gebruikt moet je het volledig doorvoeren en het User object op de sessie zetten. Dat maakt dat je bij elke verandering van je object (toevoegingen) geen essentiele code hoeft te veranderen en dat u alle info over de user onmiddelijk hebt zonder de database te ondervragen.
Dit om te maken dat je veel users aankan en dit is al zeker niet het geval. |
|
|
|
Gepost op: 24 februari 2011 - 09:42 |
|
|
|
MySQL interesse
|
Ik snap niet waar je alle code onder gooit. In welke functie komt nu welke code? |
|
|
Enkel aanvullende informatie is welkom. Geen prijzende of afkeurende reacties. |
|
|
|