Inloggen m.b.v. PHP/mysql om beveiligde pagina's te bekijken

Status
Niet open voor verdere reacties.

ikkukk

Gebruiker
Lid geworden
19 apr 2010
Berichten
15
Hallo,

Op http://www.html-site.nl/inlog-registratie-script heb ik een methode gevonden om pagina's te beveiligen. Nu heb ik het registratie en inlog script aan de praat gekregen met MySql maar als ik nu een pagina probeer te beveiligen krijg ik of een fout 500 of "De cookies konden niet gecombineerd worden." in verschillende browsers.

Wie kan mij verder helpen?
 
Welkom op Helpmij :)

Helaas zit het script op die website zo slecht in elkaar dat ik je eigenlijk aan wil raden een ander voorbeeld te vinden. Er worden in dat script namelijk nog oude functies gebruikt (mysql_*) en worden formulieren op een onveilige manier afgehandeld.

De database opzet kun je gelijk houden, de rest is nagenoeg onbruikbaar. Voor het opvragen van data uit de database (of gegevens er in stoppen) zul je MySQLi (http://php.net/manual/en/mysqli-result.fetch-assoc.php Example #1 heeft de voorkeur) of PDO (http://php.net/manual/en/book.pdo.php) moeten gebruiken.

De enige juiste manier om te controleren of een formulier verzonden is doe je zo:
PHP:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Er is een formulier verzonden
} else {
    // Er is geen formulier verzonden
}

Er zijn twee formulieren merk ik, je moet je kunnen registeren en je moet kunnen inloggen.

Ik zou deze zaken gescheiden houden in twee bestanden zodat je overzicht houdt.

Voor het registreren ziet de opzet er dan zo uit:
PHP:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Er is een formulier verzonden
    // 1. Formulier velden controleren
    // 2. Gegevens in database stoppen
    // 3. Feedback naar bezoeker sturen / Doorsturen naar andere pagina
} else {
    // Er is geen formulier verzonden dus formulier tonen
}
 
Jammer dat het script niet werkt. Heb eigenlijk geen tot weinig verstand van PHP en MySQL dus was blij dat ik zo'n script vond. Bedankt dat je mij een opzetje geeft maar kom er niet verder mee.

Wat ik wil is een beveiligd gedeelte op mijn website waar mensen dan eerst moeten inloggen. Hoe kan ik dat het beste aanpakken?
 
Programmeren kun je zien als fietsen, hoe verwacht je te kunnen fietsen wanneer je niet weet hoe zo'n apparaat werkt? :)

Welke kennis heb je? Wellicht kunnen we je vanuit daar op weg helpen.
 
Laten we dan eerst beginnen met een HTML-formulier voor het registreren maken.

We houden de database aan zoals in jouw voorbeeld is aangemaakt
[sql]
CREATE TABLE members (

id int(10) unsigned NOT NULL auto_increment,

inlognaam varchar(50) default NULL,

passwoord varchar(20) default NULL,

PRIMARY KEY (id)
) TYPE=MyISAM;
[/sql]

Ik zou alleen aanraden om het wachtwoord wel geëncodeerd in de database op te slaan (Bij voorkeur met SHA512-codering). Daarvoor kom je echter ruimte tekort in het wachtwoord veld want een SHA512-wachtwoord is 128 tekens lang.

Om eenduidig te zijn in onze opzet gebruiken we alleen engelse kolommen en tabellen.

Dit wordt dus de query:
[sql]CREATE TABLE members (
id int(10) unsigned NOT NULL auto_increment,
username varchar(50) default NULL,
password varchar(128) default NULL,
PRIMARY KEY (id)
) TYPE=MyISAM;[/sql]

Nu hebben we dus een formulier nodig waarmee we die velden op kunnen slaan. Dat komt dus in de "else" van deze opzet:
PHP:
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Er is een formulier verzonden
    // 1. Formulier velden controleren
    // 2. Gegevens in database stoppen
    // 3. Feedback naar bezoeker sturen / Doorsturen naar andere pagina
} else {
    // Er is geen formulier verzonden dus formulier tonen
}
 
Ontzettend bedankt dat je mij wilt helpen, maar ik zoek een, voor mij makkelijke, manier hoe ik een pagina op mijn website kan afschermen met een login en bovenstaand verouderd voorbeeld leek mij eens leuk om uit te proberen.
Is dit,voor mij, de gemakkelijkste manier om een pagina afteschermen en ook nog dat het een beetje professioneel uit ziet? Of zijn er ook nog andere mogelijkheden?
Het hoeft niet met een registratieformulier. Wil het zelf handmatig ook wel allemaal invoeren.

Wil graag ook nog eens een keer in PHP duiken, eerst eens een keer een mailform maken die het goed doet...
 
Je zou de registratie over kunnen slaan en de gebruikersnamen en wachtwoorden hardcoded er in kunnen zetten.

De opzet blijft hetzelfde, alleen de stappen zijn anders:
PHP:
// Configuratie
$users = array(
    // 'gebruikersnaam' => 'wachtwoord',
    'admin' => 'admin',
);

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    // Er is een formulier verzonden
    // 1. Formulier velden controleren, is er uberhaupt een waarde ingevoerd?
    // 2. Controleren of de gebruikersnaam voorkomt in de user-array
    // 3. Gebruikersnaam komt voor? Is het wachtwoord juist?
    // 4. Gebruikersnaam en wachtwoord zijn juist, cookie of sessie aanmaken
    // 5. Feedback naar bezoeker sturen / Doorsturen naar andere pagina
} else {
    // Er is geen formulier verzonden dus formulier tonen
}
Wil graag ook nog eens een keer in PHP duiken, eerst eens een keer een mailform maken die het goed doet...

Zonder PHP te begrijpen kun je niets, je zult je er dus in moeten verdiepen anders heeft het geen zin. Probeer anders codecademy.com om basiskennis op te doen.
 
Ik zal mijn best doen voor PHP.

Nog een vraagje. Hoe beveilig ik dan een pagina? Want bij punt 5 staat ".../Doorsturen naar andere pagina". Maar als je de url van die doorgestuurde pagina hebt kom je er toch ook :confused: ?
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan