Hallo,
ik ben sinds kort bezig om php te leren. Heb veel voorbeelden gelezen en nagemaakt.Voor de simpele dingen wordt eigenlijk wel veel script gebruikt en vind het zelf niet echt duidelijk.

Heb zelf een inlog script gemaakt en een scriptje die kan wijzigen,toevoegen en verwijderen(met picture upload,etc).

Als iemand tijd en zin heeft, zal die dan deze simpele script door lezen en kijken of het wel veilig genoeg is? Kan soms wat netter en meer duidelijk response.Kwa form en md5 nog niet gedaan. Maar kan er zo tussen.

login.php
-------------
<?php
session_start();
if (!empty($_POST)){
include("../data.php");
$gebruikernaam = $gebruikernaam;
$wachtwoord = $wachtwoord;

$sql = mysql_query("SELECT * FROM gebruiker WHERE gebruiker_naam='$gebruikernaam'");
while($res = mysql_fetch_array($sql)){
$gebruikernaamdb = "$res[gebruiker_naam]";
$wachtwoorddb = "$res[gebruiker_wachtwoord]";
}
if( ($gebruikernaam == $gebruikernaamdb)
AND ($wachtwoord == $wachtwoorddb))
{ session_register("gebruikernaam");
echo "<meta http-equiv='refresh' content='0; url=logged.php'>"; }
else { echo "Controleer u wachtwoord en gebruikersnaam"; }
}
?>
<form method="post" action=<?php echo "$_SERVER[PHP_SELF]";?>>
naam:<input type="tekst" name="gebruikernaam">
w8woord:<input type="password" name="wachtwoord">
<input type="submit" name="toevoegen" value="Inloggen" >
</form>

logged.php
----------------------
<?php
session_start();
$gebruikernaam = $_SESSION[gebruikernaam];
echo "U bent ingelogd als $gebruikernaam";?>
<a href="afmelden.php">Afmelden</a>

afmelden.php
----------------------
<?php
SESSION_START();
SESSION_DESTROY();
echo "U bent afgemeld. "
?>
<a href="login.php">Inloggen</a>


Weet niet of het goed is, maar misschien ook wel handig voor tutorial......Vind het zelf iets logicher.Registratie pagina mist.:p
session_register("gebruikernaam");`

Dat hoort tegen woordig zo:

$_SESSION['gebruikersnaam'] = $gebruikersnaam;

En daarnaast gebruiken wij hier nog steeds Superglobals! Want dat is gewoon veiliger.

Daarnaast zal ik nooit alleen gebruikers naam opslaan in de sessies. Maar zeker altijd ip om sesion hacking te voor komen.
aha dank voor het advies. Zijn Superglobals erg onveilig?Geld dat ook voor onderdelen omtrendt het toevoegen van gegevens naar database?
Het een groot voordeel voor je zelf als overzichtelijkheid. Door het goed gebruiken krijg je inzicht wat het script doet. En dat vergeet je vaak.
jah dat klopt kan je even laten zien hoe het script nu eruit ziet want mischien zit er nog een foutje in...
jij moet het laten zien zodat wij kunnen zien of je nog wat fout hebt, nadat je het zelf hebt getest ;)
in het begin $gebruikersnaam = $gebruikersnaam heeft ook nie veel zin he :s .
BIj logged in is het meschein beter om $_SESSION['gebruikersnaam']; te gebruiken met de ' '.
lol, superglobals zijn dus *niet* veilig en staan bij php4 standaard zelfs af.
<?
$gebruikernaam = $gebruikernaam;
$wachtwoord = $wachtwoord;
?>
Dat kan niet echt he...
Dat zegt Christophe ook al ;p...

<?
$sql = mysql_query("SELECT * FROM gebruiker WHERE gebruiker_naam='$gebruikernaam'");
while($res = mysql_fetch_array($sql)){
$gebruikernaamdb = "$res[gebruiker_naam]";
$wachtwoorddb = "$res[gebruiker_wachtwoord]";
}
if( ($gebruikernaam == $gebruikernaamdb)
AND ($wachtwoord == $wachtwoorddb))
{ session_register("gebruikernaam");
echo "<meta http-equiv='refresh' content='0; url=logged.php'>"; }
else { echo "Controleer u wachtwoord en gebruikersnaam"; }
}
?>

Daarvan kan je misschien beter dit maken:

<?
$sql = mysql_query("SELECT * FROM gebruiker WHERE gebruiker_naam='".$gebruikernaam."' AND gebruiker_wachtwoord = '".$wachtwoord."'");
$res = mysql_num_rows($sgl);
if($res == 1)
{
$_SESSION['gebruikernaam'] = $gebruikernaam;
echo "<meta http-equiv='refresh' content='0; url=logged.php'>";
}
else
{
echo "Ongeldige gebruikersnaam en/of wachtwoord";
}
?>

En inspringen is ook erg handig en overzichtelijk...


Keep it up!
Maar hoe installeer je die dan want hij gebruikt een SQL database ... wat moet ik toevoegen in de SQL database ?? kan iemand een kort SQL scriptje maken ??

Reageren