ik heb een inlogsysteem alleen nu moet ik elke pagina van de website laten beginnen met het checken van gebruikersnaam en wachtwoord, zodat als je de link in de adresbalk intikt niet op die pagina kan komen voordat je ingelogt ben.
kan iemand mij helpen met een stukje script?? (php)
alvast bedankt
?
Onbekende gebruiker
23-04-2011 10:11
1. Hoe is je inlogsysteem gemaakt, dus maakt hij een sessie aan of een cookie e.d.?
2. Laat eens het inloggedeelte van je script zien.
Ik neem trouwens aan als je een "inlogsysteem" kan maken dat je dat dan ook wel kan? Maar maak eerst je vraag even compleet!
mysql_connect("$host", "$username", "$password")or die("kan niet connecten met de database");
mysql_select_db("$db_name")or die("Kan de database niet selecteren");
$sql="select * FROM toevoegen WHERE Gebruikersnaam='$gb' AND Password='$ww'";
$sel=mysql_query($sql);
$aantal=mysql_num_rows($sel);
if($aantal == "1" )
{
session_start();
$_SESSION['gebruiker']=$gb;
echo "Je bent nu ingelogd <br>";
if ($_SESSION['Type'] == 'Admin') {
session_start();
else
{
header( 'refresh:2 url=./inloggen.php' );
}
Je moet een inlogsysteem met sessies gebruiken en zet dan boven elke pagina:
<?php
session_start();
if(!isset($_SESSION['login']))
{
// niet ingelogd
}
else
{
// wel ingelogd
}
?
Onbekende gebruiker
23-04-2011 10:30
1. Gebruik geen or die maar een nette foutafhandeling.
2. 4x session_start? 1 op lijn 22, lijn 36, lijn 57 en lijn 27? session_start() hoort maar 1x in je pagina te staan en wel helemaal bovenaan.
3. Gebruik geen mysql_fetch_array maar mysql_fetch_assoc.
4. Laat nooit mysql_error aan de gebruikers zien! (Mag wel als je zelf debugged).
5. Wat probeer je hiermee?
De echo moet eronder omdat je voor een header functie geen html output mag hebbben.
6. Op lijn 35 heb je staan: "if ($_SESSION['gebruiker'] //Nogwat)" daar moet je of empty() of isset() voor gebruiken anders krijg je een notice error wanneer je dit probeerd en de sessie bestaat niet. Dit heb je overigens vaker in je script staan.
7. DENK AAN SQL INJECTIONS!! Je script is enorm onveilig, kijk in ieder geval eens naar: http://php.net/manual/en/function.mysql-real-escape-string.php (of gebruik mysqli of PDO).
8. Probeer je script wat duidelijker te maken, beetje commentaar e.d.
10. Gebruik geen ob_start() e.d. die zijn er (volgens mij) niet voor bedoeld om header fouten op te lossen, je moet gewoon zorgen dat je geen output voor session_start(), setCookie() en header() hebt staan.