| Schrijver |
Bericht |
DNA Forum Lid
8110 posts |
# Geplaatst: 21 Sep 2009 15:52
uuuh...een nieuwe beveiligde pagina maken, die je alleen ziet als je ingelogd bent? :p
|
| |
|
vlerknozem Hoofd-moderator
4636 posts |
# Geplaatst: 21 Sep 2009 20:07
Quoting: jeroenny helaas als er iemand is ingelogd werkt het registratieformulier niet.
Hoe kan ik ingelogd een nieuwe gebruiker aanmaken.
Ik heb gezorgd dat ingelogde mensen niet kunnen registreren omdat het mij logisch leek dat dit niet nodig is.
Maar als jij het anders wil:
php codeif($_SERVER['REQUEST_METHOD'] == 'POST' && $this->loginsessie===false) {
Die regel moet je veranderen in dit:
php code if($_SERVER['REQUEST_METHOD'] == 'POST') {
Maar je zegt dat je wilt dat slechts enkele mensen nieuwe gebruikers mogen toevoegen? Daarvoor zou je in de gebruikerstabel een veld aan moeten maken, bijvoorbeeld 'reg_rechten' ofzo. Een INT is hier goed voor. Dan check je bij de registratie pagina of die op 1 staat. Zoja dan mag je een gebruiker toevoegen, zo nee dan niet. Wel moet je die zelfde check dan ook doen in de login klasse. In die zelfde IF-lus die je even moet aanpassen kan je dat eventueel doen.
|
jeroenny Forum Lid
22 posts |
# Geplaatst: 22 Sep 2009 11:09
Ook heb ik een error met de split functie op regel 79 en 84. Ik heb hier ook explode geprobeerd, maar dan liet het script geen errors meer zien. en zet het script alle gegevens gelijk in de db.
Hoe kan ik die split error oplossen.
|
Josaus Forum Lid
39 posts |
# Geplaatst: 1 Okt 2009 17:35 · Aangepast door: Josaus
registreer.php werkt niet...
Kan je helpen?
http://josaus.com/login/
|
bigmister Forum Lid
61 posts |
# Geplaatst: 22 Okt 2009 13:09
Ik wil ook een pagina aanmaken waar mensen hun wachtwoord kunnen opvragen, hoe maak ik dit aan. Ik heb dit script gevolgd, werkt geweldig bij mij!
|
Superkluns Forum Lid
1012 posts |
# Geplaatst: 22 Okt 2009 15:39
@bigmaster
Ik ben dan wel niet de schrijver van het script, maar ik kan wel antwoord geven. Als je de wachtwoorden met md5-codering opslaat, dan kan je niet de wachtwoorden geven. Je kunt wel een code sturen waarmee een nieuw wachtwoord kan worden aangemaakt. Op mijn testserver heb ik een succesvol systeem dat dat doet, maar ik weet niet of dat aansluit op dit systeem. Dat zou ik even moeten overleggen met vlerk.
|
bigmister Forum Lid
61 posts |
# Geplaatst: 23 Okt 2009 11:53
ik sla de wachtwoorden niet op met md5. Ik kan in mijn database zien wat de wachtwoorden zijn van de mensen, maar je moet toch een soort recovery kunnen maken dat het wachtwoord opvraagd en verzend naar het emailadres wat is opgegeven bij aanmelding? Ik zou het graag op deze manieer doen. Maar bedankt voor je reactie en het meedenken!
|
Superkluns Forum Lid
1012 posts |
# Geplaatst: 23 Okt 2009 17:50 · Aangepast door: Superkluns
Dan is het een stuk makkelijker. Ik zal wel even een scriptje voor je maken. (al kan ik niet garanderen dat hij foutloos is!). Mogelijk zul je hem iets aan moeten passen (de html-opmaak enzo):
php code<?php
if ($_POST['wwvergeten'] == 'OK') { // checken of het formulier is verzonden
$query = mysql_query("SELECT * FROM gebruikers WHERE gebruikersnaam='".$_POST['gebruikersnaam']."' AND email='".$_POST['email']."'");
if (mysql_num_rows($query) == 1) { //checken of gegevens kloppen
$gegevens = mysql_fetch_assoc($query);
$to = $gegevens['email'];
$from = 'naam@host.com';
$onderwerp = 'Wachtwoord opvragen';
$bericht = 'Beste ' . $gegevens['gebruikersnaam'] . ',' . "\n";
$bericht .= 'Uw wachtwoord is: ' . $gegevens['wachtwoord'];
if (mail($to,$onderwerp,$bericht,'From: '.$from)) { //mail verzenden
$melding = 'Uw wachtwoord is naar uw email-adres verstuurd.'; //mail is verzonden
} else {
$melding = 'Door een fout op de server is de mail niet verzonden.'; //de mail-functie werkt niet.
}
} else {
$melding = 'Gebruikersnaam en/of email adres is niet juist.'; //gegevens zijn niet goed.
}
}
echo "<p>".$melding."</p>";
?>
<form action="<?php echo $_SERVER['REQUEST_URI']; ?>" method="post">
Typ hier je gebruikersnaam en het bij ond bekende email-adres:<br />
Gebruikersnaam: <input name="gebruikersnaam" type="text" value="<?php echo $_POST['gebruikersnaam']; ?>" /><br />
Email: <input name="email" type="text" value="<?php echo $_POST['email']; ?>" /><br />
<input name="wwvergeten" type="submit" value="OK" />
</form>
|
vlerknozem Hoofd-moderator
4636 posts |
# Geplaatst: 23 Okt 2009 19:38
@superkluns, ik heb verder niet echt naar je scriptje gekeken, maar ik heb wel even een typefout in een variabele gefixed.
|
Superkluns Forum Lid
1012 posts |
# Geplaatst: 23 Okt 2009 22:38
oke, en heb je nog gekeken naar het script dat ik je op sckripts.nl heb gestuurd? (k kan me voorstellen dat je het druk heb, dus als je dat niet heb, dan is dat natuurlijk niet erg)
|
bigmister Forum Lid
61 posts |
# Geplaatst: 24 Okt 2009 00:00
thnx jongens!
|
bigmister Forum Lid
61 posts |
# Geplaatst: 24 Okt 2009 12:18
het werkt voortreffelijk! Nog leuke andere functies die ik kan toevoegen?
|
jeroenny Forum Lid
22 posts |
# Geplaatst: 27 Okt 2009 11:51
Hoe kan ik de cookies verwijderen na het sluiten van de browser ?
Dus als je de browser of een tabblad sluit dat je dan weer overnieuw moet inloggen ?
|
Anywhy Forum Lid
2326 posts |
# Geplaatst: 27 Okt 2009 12:18
Quoting: jeroenny Hoe kan ik de cookies verwijderen na het sluiten van de browser ?
Als je dit bedoelt:
FF: Start je browser op -> ga naar extra -> opties -> privacy -> induviduele cookies verwijderen.
Chrome: Start de browser -> ga naar het sleuteltje (Google Chrome beheren & aanpassen) -> browsegegevens wissen... -> rest wijst zich wel ;)
IE: ga naar je bureaublad -> rechtermuisknop IE icoon -> het kopje 'Browsegeschiedenis' -> Verwijderen -> rest wijst zich van zelf...
Of je moet de opgeslagen wachtwoorden verwijderen, misschien is dit te googlen.
Succes!
|
jeroenny Forum Lid
22 posts |
# Geplaatst: 27 Okt 2009 12:30 · Aangepast door: jeroenny
Quoting: Anywhy Als je dit bedoelt:
FF: Start je browser op -> ga naar extra -> opties -> privacy -> induviduele cookies verwijderen.
Chrome: Start de browser -> ga naar het sleuteltje (Google Chrome beheren & aanpassen) -> browsegegevens wissen... -> rest wijst zich wel ;)
IE: ga naar je bureaublad -> rechtermuisknop IE icoon -> het kopje 'Browsegeschiedenis' -> Verwijderen -> rest wijst zich van zelf...
Of je moet de opgeslagen wachtwoorden verwijderen, misschien is dit te googlen.
Succes!
sorry, nee ik bedoel dat de cookies uit de database worden verwijdert en dat je weer opnieuw moet inloggen.
Dus als je ingelogd bent met piet.
En je sluit het tabblad www.mijnsite.nl
je gaat weer naar www.mijnsite.nl
dat je dan weer moet inloggen , en niet dat er blijft staan hallo piet.
|
Anywhy Forum Lid
2326 posts |
# Geplaatst: 27 Okt 2009 12:37 · Aangepast door: Anywhy
Quoting: jeroenny dat je dan weer moet inloggen , en niet dat er blijft staan hallo piet.
Dan moet je de sessie sluiten, uitloggen.
Ik gebruik dit inlog systeem zelf ook. Ik zal eens zoeken of ik een voorbeeld heb ervan.
EDIT:
Bij dit inlogsysteem is het uitloggen zo:
html code<a href="index.php?actie=uitloggen">Uitloggen</a>
Maar als je het venster sluit moet ie ook uitloggen zei je. Nou zover ik me nog kan herinneren heeft vlerk er een sessie ingebouwd. Kan je zelf aanpassen.
|
Karin Boer Forum Lid
4 posts |
# Geplaatst: 16 Nov 2009 23:12
Hallo, ik wil dit login systeem gebruiken voor mijn website maar buiten de gebruikersnaam en wachtwoord laat ik ook de geboortedatum invullen.
Ik heb het registratieformulier enz. aangepast en dat werkt prima als ik het test. Alleen zou ik graag willen dat bij het opnieuw inloggen zowel de gebruikersnaam en geboortedatum niet automatisch aangevuld worden, dus zoals bij het wachtwoord. Hoe krijg ik dat voor elkaar?
En ik zou ook graag willen dat de mensen die registreren dan een e-mail krijgen met hun relevante gegevens, is dat simpel te doen?
Ik ben btw heel blij met dit script! Bedankt
|
Erwin537 Moderator
4454 posts |
# Geplaatst: 16 Nov 2009 23:30
Je wilt dat het opslaan van wachtwoord, username en datum NIET mogelijk is? Wat bedoel je precies?
Als het klopt wat ik zei: Kan volgens mij niet. Het is namelijk de browser die het wachtwoord opslaat.
|
Karin Boer Forum Lid
4 posts |
# Geplaatst: 16 Nov 2009 23:37 · Aangepast door: Karin Boer
wat ik bedoel is dit: als ik ga inloggen op mijn testpagina en ik typ het cijfer 1 in het geboortedatumveld dan krijg ik zo'n rijtje met ooit eerder ingevulde getallen die met een 1 beginnen en hetzelfde bij het gebruikersnaamveld.
Bij het wachtwoordveld gebeurt dat echter niet.. dus vandaar dat ik dacht dat het op de een of andere manier in het script uit te schakelen is.
Dat popup schermpje met wil je deze gebruikersnaam en wachtwoord opslaan op deze pc bedoel ik dus niet....
|
Karin Boer Forum Lid
4 posts |
# Geplaatst: 16 Nov 2009 23:40 · Aangepast door: Karin Boer
moet je dan misschien bij de veldnaam ipv input type 'text', input type 'password' gebruiken of kan dat niet?
|
egaTniv Forum Lid
6240 posts |
# Geplaatst: 17 Nov 2009 10:51
html code<input type="text" name="naam" autocomplete="off" value="">
name="naam " even veranderen in de name van het veld wat je vrij wilt hebben van history.
|
Karin Boer Forum Lid
4 posts |
# Geplaatst: 17 Nov 2009 11:09 · Aangepast door: Karin Boer
Oke bedankt, het werkt!!!
|
Erwin537 Moderator
4454 posts |
# Geplaatst: 17 Nov 2009 11:35
Hmm nog nooit van dat attribuut gehoord =|
|
egaTniv Forum Lid
6240 posts |
# Geplaatst: 17 Nov 2009 13:35
Quoting: Erwin537 Hmm nog nooit van dat attribuut gehoord =|
Dat is niet mijn schuld :D
|
Sebastiaan Franken Moderator
5632 posts |
# Geplaatst: 4 Jan 2010 00:26 · Aangepast door: Sebastiaan Franken
@Vlerk (en de rest)
Ik heb commentaar in je code verwerkt, en een minimale wijziging gemaakt.
Ik vind commentaar in code altijd wel fijn, daar leer je van denk ik.
1. De database
mysql code
/*
| Met deze SQL file kun je snel en makkelijk
| de database voor het loginssyteem (laten)
| maken.
|
| Loginsysteem in kwestie: <a href=\"http://www.html-site.nl/forum/24_20196_0.html\" target=\"_blank\" rel=\"nofollow\">http://www.html-site.nl/forum/24_20196_0.html</a>
|
| Alle credits gaan naar Vlerknozem (van <a href=\"http://www.sckripts.nl\" target=\"_blank\" rel=\"nofollow\">http://www.sckripts.nl</a> )
*/
/*
| Een database (loginsysteem) maken als
| deze nog niet bestaat
*/
CREATE DATABASE if NOT EXISTS loginsysteem;
/*
| En gebruiken
*/
USE loginsysteem;
/*
| Een tabel maken (gebruikers) als deze nog niet bestaat,
| met daarin een ID van het datatype int (lengte: 11) die bij elk
| nieuw lid automatisch +1 word en de primaire sleutel is,
|
| En een gebruikersnaam veld van 54 bits varchar (variabel character (mag alles in))
| En een wachtwoord veld met dezelfde specificaties als het gebruikersnaam veld
*/
CREATE TABLE if NOT EXISTS gebruikers(
id INT(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
gebruikersnaam VARCHAR(54) NOT NULL,
wachtwoord VARCHAR(54) NOT NULL);
/*
| Een test lid in de tabel gooien, met gebruikersnaam 'test', wachtwoord 'test' en id 1
*/
INSERT INTO gebruikers(id, gebruikersnaam, wachtwoord) VALUES(1, 'test', 'test');
/*
| De logins tabel maken als deze nog niet bestaat
| Ook deze heeft weer een paar velden:
| + uid (een varchar van 54 bits)
| + sid (een varchar van 54 bits)
| + ip (een varchar van 256 bits)
| + datum (een datetime die geen lengte heeft)
*/
CREATE TABLE if NOT EXISTS logins(
uid VARCHAR(54) NOT NULL,
sid VARCHAR(54) NOT NULL,
ip VARCHAR(256) NOT NULL, /* Moet dat echt zo lang zijn @Vlerk? */
datum DATETIME NOT NULL);
2. Het configuratiebestand
php code
<?php
/*
| Dit is het configuratiebestand van het loginsysteem. Hier worden
| bepaalde dingen ingesteld die door het gehele loginsysteem gebruikt
| worden.
|
| Gemaakt door Vlerknozem (dit hele loginsysteem eigenlijk!)
*/
# Een beveiliging om te voorkomen dat men
# probeert je config.php te openen
if(basename($_SERVER['PHP_SELF']) == "config.php")
{
# De bezoeker terug verwijden naar de index
header("Location: index.php");
# En stoppen met PHP uitvoeren, voor de zekerheid
exit;
}
# Een config array aanmaken
$cfg = array();
# De mysql host, waar je database op draait. Is meestal localhost
define("mysql_host", 'localhost');
# De mysql gebruikersnaam. Is meestal niet root
define("mysql_user", 'root');
# Het mysql wachtwoord, is eigenlijk nooit leeg
define("mysql_password", '');
# De tabel waar het systeem op draait. Als je de SQL niet hebt uitgevoerd moet je deze aanpassen
define("mysql_database", 'loginsysteem');
# De login sessie tijd, het aantal uren dat je bent ingelogd dus.
define("login_session_time", 24);
# MD5 gebruiken om wachtwoorden te coderen? Staat standaard uit
define("login_password_md5", false);
# Fouten weergeven ? Alleen handig als je aan het testen bent!
define("show_errors", false);
?>
3. Het login scherm
php code
<?php
// Het login venster. Vrij simpel te begrijpen dus vrij weinig commentaar!
# Er is iets foutgegaan tijdens het inloggen, eens laten zien wat.
if(!$login->fouten)
{
print "<p>".$login->fouten."</p>";
}
?>
<form method="post" action="<?php print $_SERVER['REQUEST_URI'];?>">
<input type="hidden" value="login" name="actie" />
<p>Gebruikersnaam</p>
<p><input type="text" name="gebruikersnaam" /></p>
<p>Wachtwoord</p>
<p><input type="password" name="wachtwoord" /></p>
<p><input type="submit" value="Login" /></p>
</form>
4. De registratie pagina
php code
<?php
/*
| De registreer pagina waar nieuwe leden zich kunnen registreren.
| Ook hier is niet zoveel spannends aan de hand
|
| We beginnen met de hoofdklasse in te voegen.
*/
include("header.php");
/*
| Als er fouten zijn (na registreren dan) gaan we die nu tonen.
*/
if(!$login->fouten)
{
print "<p>".$login->fouten."</p>";
}
/*
| Als er geen fouten zijn dan het formulier
*/
?>
<form method="post" action="">
<input type="hidden" name="actie" value="registreer_gebruiker" />
<p>Gebruikersnaam</p>
<p><input type="text" name="gebruikersnaam" /></p>
<p>Wachtwoord</p>
<p><input type="password" name="wachtwoord" /></p>
<p>Controle wachtwoord</p>
<p><input type="password" name="wachtwoord2" /></p>
<p><input type="submit" value="Registreer!" /></p>
</form>
Voor de rest, zie het volgende bericht!
|
Sebastiaan Franken Moderator
5632 posts |
# Geplaatst: 4 Jan 2010 00:28 · Aangepast door: Sebastiaan Franken
7. Header
Aangezien dit bestand te lang was (600 regels), post ik dit op mijn website, tesamen met alle code. Ik weet dat ik stap 5 en 6 heb overgeslagen, die kun je HIER vinden.
EDIT
De url: link is dood, sorry
|
jwvos Forum Lid
1402 posts |
# Geplaatst: 4 Jan 2010 07:18
Mooi Sebas ;)
maar er staat een typefout in de 'Credits van vlerknozem' regel.
Er staat: http://sckrits.nl
En dat moet zijn: http://sckripts.nl/
|
vlerknozem Hoofd-moderator
4636 posts |
# Geplaatst: 4 Jan 2010 11:51
Nice Sebas, maar er zaten nog wat fouten in die ik heb verbeterd. Je throw exception gaf fouten, dus heb ik nu ff vervangen door trigger_error. Ook had je nog wat fouten dat er geen foutmeldingen werden gegeven bij verkeerde inloggegevens. Ik heb mijn tutorial op sckripts.nl aangepast en een zipje gemaakt. Hier pas ik het niet aan omdat het teveel code is.
|
Sebastiaan Franken Moderator
5632 posts |
# Geplaatst: 4 Jan 2010 14:22 · Aangepast door: Sebastiaan Franken
Ik kwam er idd ook achter dat throw error fouten gaf, maar dat is nu opgelost. Al gebruik ik geen trigger_error().
edit
Typfout van sckripts aangepast
edit edit
De automatische URL plugin van het forum stoort met mijn commentaar...
|
vlerknozem Hoofd-moderator
4636 posts |
# Geplaatst: 4 Jan 2010 15:49
Quoting: Sebastiaan Franken De automatische URL plugin van het forum stoort met mijn commentaar...
Ja die bug zal er denk ik altijd in blijven ;)
|