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
Je test in bovenstaande code ook nergens of het wachtwoord dat gePOST is gelijk is aan het wachtwoord in de database. En hetzelfde geldt voor de username.

Je moet eerst een 'SELECT * FROM TABLENAME query toevoegen die dus de gegevens uit je database haalt en dan vergelijken met de $_POST variabelen
Ik heb onderstaand opgebouwd vanuit een youtube tutorial, ik blijf de melding krijgen incorrect password.... ziet iemand hier iets wat niet juist is?

<?php

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

if($username&&$password)

{

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

$query = mysql_query("SELECT * FROM users WHERE username='$username'");

$numrows = mysql_num_rows($query);


if ($numrows!==0)

{

while ($rows = mysql_fetch_assoc ($query))
{
$dbusername = $row['username'];
$dbpassword = $row['password'];
}
// check to see if they match!

if ($username==$dbusername&&$password==$dbpassword)
{

echo "You`re in!";
}
else
echo "Incorrect password!";

}


else die("That user doesn`t exist!");




}

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

?>
Te veel, ik weet niet welke tutorial dit is, maar het is blijkbaar een behoorlijk verouderde:

- Onnodige while, voor één record
- Variabelen staan niet buiten quotes
- Onnodig $_POST variabelen opslaan in nieuwe variabelen
- Er is geen controle op $_SERVER['REQUEST_METHOD']=="POST"
- Onnodig gebruik van die() een script hoort niet te sterven. Dat doen wij ook niet zomaar als we iets fout doen...
- Mogelijkheid tot hacking d.m.v. SQL-injection, er ontbreekt mysql_real_escape_string()
- Foutafhandeling op je query ontbreekt
- Password is wordt in plain-text opgeslagen. Zeer onveilig!!!!! Op zijn minst met SHA1() encoden, met het liefste een vaste 'salt'-waarde eraan vast.

Met andere woorden... Rijp voor de vuilnisbak, hier kan je in 2012/2013 niks mee........

Ik zou zeggen, leer php vanaf het begin, en bij voorkeur vanaf phptuts.nl. Leer SESSIONS te benutten, zorg dat je weet hoe de basis van PHP en MySQL werkt.
ok, ik ben inderdaad maar een leek en dit is de video waarna ik verwezen werd in dit topic.

Niet doen dus!!

Is phptuts echt iets voor iemand die totaal geen ervaring heeft of waar kan ik het beste beginnen om het ook goed te kunnen volgen?

Is het maken van zulk soort script login/registreren dan een stap te ver?
Dank je.
Welk pakket van WampServer kan ik het beste downloaden?
Ik heb een 64 bits systeem.

Is het ook mogelijk de php code te schrijven in dreamweaver of is de voorgeschreven editor Eclipse PDT beter?
Als je voor Eclipse kiest zou ik als ik jou was gaan voor Aptana...
Wat is aptana, is dit binnen eclipse?

Reageren