Door
Peter Prijs
op 27-03-2006 21:05
gewijzigd op 27-03-2006 21:11
1.064 views
ik heb een scriptje gemaakt om in te loggen maar als ik het submit wil ik "u bent nu ingelogd zien".
Maar ik krijg elke keer mijn html form voor het invoeren erbij wat doe ik verkeerd ?????????
het script is als volgt
<?php
session_start();//een sessie starten
include('data.inc.php');// de gegevens laden voor mysql aanlog
if ($_SESSION['ingelogd']==="Wel"){// controle of er al ingelogd is d.m.v. controle of sessie al een password toegeken heeft gekregen.
Print"U bent al ingelogd.";
}else{
include('loginform.html');
}
if(isset($_POST['submit'])){// kijken of loginform.html al gesubmit is
if((!empty($_POST['gebruikersnaam']))&&(!empty($_POST['wachtwoord']))){// controleren of 1 van de 2 velden niet leeg is
include("connection.php");
//De opgehaalde gegevens aan een variabele toewijzen.
$gebruiker=$_POST['gebruikersnaam'];
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$gebruiker')";
//De opgehaalde gegevens aan een variabele toewijzen.
If ($r=mysql_query($qryOphalenInlogGegevens)){
// De opgehaalde waarde weergeven
while($rlogin = mysql_fetch_array($r)){
if($rlogin['WachtwoordGebruiker']===md5($_POST['wachtwoord'])){
//De waarde meegeven aan de sessie zodat de gegevens indien nodig gebruikt kunnen worden
$_SESSION['username']=$gebruiker;
$_SESSION['naam']=$rlogin['NaamGebruiker'];
$_SESSION['adres']=$rlogin['AdresGebruiker'];
$_SESSION['postcode']=$rlogin['PostcodeGebruiker'];
$_SESSION['plaats']=$rlogin['PlaatsGebruiker'];
$_SESSION['telefoon']=$rlogin['TelefoonnummerGebruiker'];
$_SESSION['faxnummer']=$rlogin['FaxnummerGebruiker'];
$_SESSION['emailadres']=$rlogin['EmailAdresGebruiker'];
$_SESSION['ingelogd']="Wel";
mysql_close();
}else{
mysql_close();
echo"<p>foutief wachtwoord</p>";
}
}
}
}else{//De tekst voor als een gebruikersnaam of wachtwoord of beide vergeten worden.
echo"<p>Vul een gebruikersnaam en een wachtwoord in anders kan u niet aangemeld worden.</p>";
}
}
?>
<!-- html eind tags voor het geval dat er niet ingelogd is en het loginform.html word ingevoegd -->
</body>
</html>
Sorry voor de titel maar dat krijgje naar 2 UUR
zo iets simpels zit tezoeken. Kon mijn toetsenbord wel op eten gelukkig heeft iemand de titel al aangepast!!
En is deze Avatar wat vriendelijker ??
Stefan bedankt man !!!!!
ik heb het als volgt gedaan.
<?php
session_start();//een sessie starten
include('data.inc.php');// de gegevens laden voor mysql aanlog
if ($_SESSION['ingelogd']==="Wel"){// controle of er al ingelogd is d.m.v. controle of sessie al een password toegeken heeft gekregen.
Print"U bent al ingelogd.";
exit();
}
if(isset($_POST['submit'])){// kijken of loginform.html al gesubmit is
if((!empty($_POST['gebruikersnaam']))&&(!empty($_POST['wachtwoord']))){// controleren of 1 van de 2 velden niet leeg is
include("connection.php");
//De opgehaalde gegevens aan een variabele toewijzen.
$gebruiker=$_POST['gebruikersnaam'];
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$gebruiker')";
//De opgehaalde gegevens aan een variabele toewijzen.
If ($r=mysql_query($qryOphalenInlogGegevens)){
// De opgehaalde waarde weergeven
while($rlogin = mysql_fetch_array($r)){
if($rlogin['WachtwoordGebruiker']===md5($_POST['wachtwoord'])){
//De waarde meegeven aan de sessie zodat de gegevens indien nodig gebruikt kunnen worden
$_SESSION['username']=$gebruiker;
$_SESSION['naam']=$rlogin['NaamGebruiker'];
$_SESSION['adres']=$rlogin['AdresGebruiker'];
$_SESSION['postcode']=$rlogin['PostcodeGebruiker'];
$_SESSION['plaats']=$rlogin['PlaatsGebruiker'];
$_SESSION['telefoon']=$rlogin['TelefoonnummerGebruiker'];
$_SESSION['faxnummer']=$rlogin['FaxnummerGebruiker'];
$_SESSION['emailadres']=$rlogin['EmailAdresGebruiker'];
$_SESSION['ingelogd']="Wel";
mysql_close();
Print"U bent ingelogd";
}else{
mysql_close();
echo"<p>foutief wachtwoord</p>";
}
}
}
}else{//De tekst voor als een gebruikersnaam of wachtwoord of beide vergeten worden.
echo"<p>Vul een gebruikersnaam en een wachtwoord in anders kan u niet aangemeld worden.</p>";
}
}else{
include('loginform.html');
}
?>
<!-- html eind tags voor het geval dat er niet ingelogd is en het loginform.html word ingevoegd -->
</body>
</html>
nu heb ik mijn script iets aangepast naar wat kritieken van de kenners
dit is als volgt.
<?php
session_start();//een sessie starten
include('data.inc.php');// de gegevens laden voor mysql aanlog
if ($_SESSION['ingelogd']==="Wel"){// controle of er al ingelogd is d.m.v. controle of sessie al een password toegeken heeft gekregen.
Print"U bent al ingelogd.";
exit();
}
if(isset($_POST['submit'])){// kijken of loginform.html al gesubmit is
if((!empty($_POST['gebruikersnaam']))&&(!empty($_POST['wachtwoord']))){// controleren of 1 van de 2 velden niet leeg is
include("connection.php");
//De opgehaalde gegevens aan een variabele toewijzen.
$gebruiker=$_POST['gebruikersnaam'];
$gebruiker=mysql_real_escape_string($gebruiker);
$password=$_POST['wachtwoord'];
$password=mysql_real_escape_string($password);
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$gebruiker')";
//De opgehaalde gegevens aan een variabele toewijzen.
If ($r=mysql_query($qryOphalenInlogGegevens)){
// De opgehaalde waarde weergeven
while($rlogin = mysql_fetch_array($r)){
if($rlogin['WachtwoordGebruiker']===sha1($password)){
//De waarde meegeven aan de sessie zodat de gegevens indien nodig gebruikt kunnen worden
$_SESSION['username']=$gebruiker;
$_SESSION['naam']=$rlogin['NaamGebruiker'];
$_SESSION['adres']=$rlogin['AdresGebruiker'];
$_SESSION['postcode']=$rlogin['PostcodeGebruiker'];
$_SESSION['plaats']=$rlogin['PlaatsGebruiker'];
$_SESSION['telefoon']=$rlogin['TelefoonnummerGebruiker'];
$_SESSION['faxnummer']=$rlogin['FaxnummerGebruiker'];
$_SESSION['emailadres']=$rlogin['EmailAdresGebruiker'];
$_SESSION['ingelogd']="Wel";
mysql_close();
Print"U bent ingelogd";
}else{
mysql_close();
echo"<p>foutief wachtwoord</p>";
}
}
}
}else{//De tekst voor als een gebruikersnaam of wachtwoord of beide vergeten worden.
echo"<p>Vul een gebruikersnaam en een wachtwoord in anders kan u niet aangemeld worden.</p>";
}
}else{
include('loginform.html');
}
?>
<!-- html eind tags voor het geval dat er niet ingelogd is en het loginform.html word ingevoegd -->
</body>
</html>
Nu is het alleen als je een foute gebruiker met een fout wachtwoord op geeft dat de pagina wit wordt
include('data.inc.php');// de gegevens laden voor mysql aanlog
if ($_SESSION['ingelogd']==="Wel"){// controle of er al ingelogd is d.m.v. controle of sessie al een password toegeken heeft gekregen.
Print"U bent al ingelogd.";
exit();
}
if(isset($_POST['submit'])){
if(!empty($_POST['gebruikersnaam'])){
$user=$_POST['gebruikersnaam'];
}else{
echo"u geeft geen gebruikersnaam ingevoerd<br />";
}
if(!empty($_POST['wachtwoord'])){
$password=$_POST['wachtwoord'];
}else{
echo"u geeft geen wachtwoord ingevoerd<br />";
}
if((!empty($_POST['gebruikersnaam']))&&(!empty($_POST['wachtwoord']))){
include("connection.php");
$user=mysql_real_escape_string($user);
$password=mysql_real_escape_string($password);
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$user')";
$r = mysql_query($qryOphalenInlogGegevens);
if ($r){
$rij = mysql_num_rows($r);
}else{
$rij = 0;
}
if($rij===0){
print"u heeft een verkeerde combinatie ingetikt";
}else{
while($rlogin = mysql_fetch_array($r)){
if($rlogin['WachtwoordGebruiker']===sha1($password)){
//De waarde meegeven aan de sessie zodat de gegevens indien nodig gebruikt kunnen worden
$_SESSION['username']=$gebruiker;
$_SESSION['naam']=$rlogin['NaamGebruiker'];
$_SESSION['adres']=$rlogin['AdresGebruiker'];
$_SESSION['postcode']=$rlogin['PostcodeGebruiker'];
$_SESSION['plaats']=$rlogin['PlaatsGebruiker'];
$_SESSION['telefoon']=$rlogin['TelefoonnummerGebruiker'];
$_SESSION['faxnummer']=$rlogin['FaxnummerGebruiker'];
$_SESSION['emailadres']=$rlogin['EmailAdresGebruiker'];
$_SESSION['ingelogd']="Wel";
mysql_close();
Print"U bent ingelogd";
}else{
mysql_close();
echo"<p>Foutief Wachtwoord!</p>";
}
}
}
}
}else{
include('loginform.html');
}
?>
Mocht iemand nog op of aanmerkingen hebben m.b.t.
Tot dit script in welke vorm dan ook hoor ik het graag !!
Persoonlijk zou ik het zo doen:
<?PHP
$gebruiker=$_POST['gebruikersnaam'];
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('$gebruiker')"; If ($r=mysql_query($qryOphalenInlogGegevens)){
$qryOphalenInlogGegevens= "SELECT * FROM gebruikers WHERE NicknameGebruiker =('".$_SESSION['username']."')";
If ($r=mysql_query($qryOphalenInlogGegevens)){
$users = @mysql_fetch_array($r);
}
}else{
echo "Vieze vuile hacker";
exit();
}
?>
Dan kan je in plaats van $_SESSIONs alle gegevens uit je database halen, en is het dus minder gevoelig voor SESSION HIJACKING.