Hallo allemaal,

ik probeer al enige tijd een registratie/inlogscript te maken vor op de site.

Als voorbeel heb ik gekozen voor het script op deze pagina:
http://www.web-garden.be/cursusphp/Hoofdstuk14.pdf


Registreren lukt wel al en wordt in de database opgeslagen.... wanneer ik wil inloggen
kom ik tot op de pagina beveiligd.php maar dan moet ik opnieuw inloggen of registreren.
Het html gedeelte waar het eigenlijk om gaat kan ik niet lezen.


Hieronder het script van beveiligd.php


<?php
session_start();
if (!isset($_SESSION["email"])){
$tekst = "<h2>U bent nog niet aangemeld.</h2>
U kunt <a href=\"login.php\">hier inloggen</a> of<br>
U kunt zich <a href=\"registreer.php\">hier registreren</a>";
echo($tekst);
exit();
}
if (isset($_POST['u'])){
session_unset(); // alle variabelen vrijgeven
session_destroy();} // sessie afsluiten
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>

</head>

<body>
<h1>Welkom op de beveiligde pagina</h1>
<img src="beveiligd.jpg" alt="beveiligd" />
<p>Op deze beveiligde pagina kunnen links opgenomen zijn.<br />
Zorg dat de opgeroepen pagina's ook beveiligd zijn.</p>

<form action="beveiligd.php" method="post">
<input class="knop" name="u" type="submit" value="Uitloggen">
</form>
</body>
</html>


Kan iemand me zeggen wat ik verkeerd doe.... bij isset gaat er iets fout.


Groeten,
Marcel
Ik heb de pdf vlug (diagonaal) gelezen; De code staat me niet aan.

- Er is geen beveiliging tegen injection.
- Het wachtwoord wordt ongecodeerd bijgehouden ( paswoord vergeten: je krijgt een mail met je wachtwoord )

Dat zijn dingen die not done zijn. Zeker niet in combinatie.
Gewapend met een snelcursus hacken in 1 dag heb je binnen de kortste keren alle leden hun paswoorden te pakken.

Ik zou je aanraden om niet verder te doen met deze code.
Ik ben maar tot de helft van de pdf gekomen en inmiddels ben ik het al volledig eens met Kris. Beter dat voorbeeld niet gebruiken, je leert meer foute dingen aan dan goede.

Maar om toch ook nog even antwoord te geven op je vraag, het probleem zit hem waarschijnlijk niet in geposte code, maar in de login.php. Daar moet er iets in de sessie worden gezet zodat je op de beveiligde pagina weet dat de gebruiker is ingelogd. Staat er niets in de sessie dan kom je continu weer terug naar de login pagina.
dus als ik het goed begrijp is de code verder ook niet correct in de sessie op de loginpagina. Er ontbreekt iets op die pagina.

Maar hoe kom ik aan een goed voorbeeld voor een registratie en login.... zou ik de database dan in php 4 of 5 moeten maken?
Of het niet correct is weet ik niet, zover ben ik niet doorgedrongen in de pdf. Het enige wat ik zeg is dat ik denk dat daar de fout zit, want als er niets in de sessie staat dan krijg je die beveiligde pagina nooit te zien.

En de database in php 4 of 5 moeten maken.... dat lijkt me een leuke uitdaging.... of ik begrijp gewoon niet wat je met die opmerking bedoelt.
Alsjeblieft, een duidelijke tutorial over een Registratie en Login script voor beginners. Als je redelijk nieuw bent met PHP raad ik je aan meer van zijn videos te bekijken, heel erg handig als beginner.

http://www.youtube.com/watch?v=4oSCuEtxRK8
Bedoelde MySQL 4 OF 5 moet kiezen waar is dat afhankelijk van?
Waar haal ik nu een goed script vandaan om daar vervolgens wat eigen dingen aan toe te voegen?
Hoe weet je als beginner of zo`n script redelijk veilig is?

Verder nog de vraag wanneer je pagina beveiligd b.v. beveiligd.php dan staat daar dus ook php in. Maar beveilig je dan ook losse foto`s... dt vraag ik omdat je geen map beveiligd of zie ik dit niet goed?
Volgens mij heb je weinig te kiezen welke database of welke php versie je zal gaan gebruiken, dat bepaalt je hoster over het algemeen. Mocht je zelf kunnen bepalen omdat je de complete server beheert, ga dan altijd voor de laatste stabiele versie.

Foto's beveilig je niet door de pagina waarop ze staan te beveiligen. Dat komt omdat je de foto's via de url normaal gesproken linkt en als je dus gewoon die url copieert kan je die ook zonder de hele pagina bekijken. Er zijn wel manieren om ook de foto's achter beveiliging te krijgen, maar ik gok dat dat nog even te ver gaat.

Als beginner weet je dat niet en op zich is dat ook geen probleem. Je eerste script zal nooit het beste zijn. Wat je alleen niet moet doen (wat hier helaas te vaak gebeurt), is je eerste boek/tutorial/filmpje/whatever als de heilige waarheid te beschouwen. Veel mensen denken 'dat stond daar, dus dat klopt' en leren dus nooit in te zien dat die eerste scriptjes niet goed waren. Probleem van het voorbeeld van jou is dat het wel zo ongeveer alle fouten tegelijk aanleert en daarmee toch wel extreem te noemen is, helaas. Het filmpje van Albert heb ik niet gezien (dus zal ik er niet over oordelen), maar tutorials op deze site zijn over het algemeen wel goed te noemen. Maar wat je ook gebruikt, zorg dat je het uiteindelijk nooit als absolute waarheid beschouwt. Bouw een script, maar kijk dan verder. Probeer een ander voorbeeld, zoek de verschillen en probeer te begrijpen waarom de een beter is dan de ander. Weet je niet waarom, vraag het dan.
Leren scripten (lees: goed leren scripten) doe je niet van de ene op de andere dag.
Dank je allemaal tot zover.
ik heb via de youtube tutorial een begin gemaakt.

heb nu een pagina met het formulier wat verwijst naar onderstaand script in php.

Krijg nog geen connectie met de database, de pagina`s staan op de server.
Lokaal had ik veranderd in het ipadres van hoster, op de eerste reeks kruisjes had ik de username en op de tweede kruisjes het password.


syntax error in line 10 en dat is waar ik de gegeven moet neerzetten voor connectie.

Kan iemand me een stuk op weg helpen a.u.b.?

<?php

$username = $_POST['username'];
$password = $_POST['password'];

if($username&&$password)

{

$connect = mysql_connect("localhost", "xxx", "kxxx",)or die ("Couldn`t connect!");
mysql_select_db("login")or die ( "Couldn`t find db");

}

else
die ("Please enter a username and password!");

?>
een , te veel in de mysql_connect
ok, dat heb ik veranderd maar ik kan met iedere willekeurig wachtwoord inloggen terwijl ik er maar 1 in de database aangemaakt heb. Lijkt me dat ik nu al de fout in ga omdat dit mogelijk is.

Wat doe ik verkeerd?

Reageren