Login script dmv een class

Door Manaus , 20 jaar geleden, 10.754x bekeken

Dit is een script geheel gemaakt dmv een class.
Ik hoop dat jullie er iets aan hebben ik heb het net gemaakt...
Het moest af en nu post ik het.
Het is men eerste script dat ik post.
Commentaar welkom:)

Gesponsorde koppelingen

PHP script bestanden

  1. login-script-dmv-een-class

 

Er zijn 10 reacties op 'Login script dmv een class'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Paul K
Paul K
20 jaar geleden
 
0 +1 -0 -1
Erg goed gescript, alleen wat is het voordeel om het in een class te zetten?
Manaus
Manaus
20 jaar geleden
 
0 +1 -0 -1
Omdat ik veel hoor van oop, wilde ik eens iets proberen, en toen begon ik hieraan.
Ik heb het hier gepost omdat het misschien nuttig kan zijn voor beginners?


20 jaar geleden
 
0 +1 -0 -1
Nee dat is het niet,

het is keurig gescript alleen heeft het hier geen enkele meerwaarde om het in een klasse te doen omdat je eigenlijk niets meer gedaan hebt dan alle functies in een klasse zetten en dan heeft het allemaal niet zoveel zin.
Jan Koehoorn
Jan Koehoorn
20 jaar geleden
 
0 +1 -0 -1
Een voorbeeld maken in OOP heeft pas zin op het moment dat je de sterke kanten van OOP naar voren laat komen. Verder vind ik ook, dat je niet je eerste schreden op een bepaald pad meteen in de scriptlib moet zetten. Het is lief dat je je laatste ontdekkingen wilt delen, maar dit moedigt beginners in OOP niet aan. Wat is in dit geval de reden om OOP te gebruiken?
Edit:

Er staat trouwens nog een foutje in head_class.php:
regel 126: $doe = new loginsys;
moet zijn: $doe = new loginsys ();
Bo az
Bo az
20 jaar geleden
 
0 +1 -0 -1
Het is helaas ook niet meer dan het gebruiken van een klasse. Voor OOP moet je namelijk objecten gebruiken en dat gebeurt hier niet, login is namelijk een actie die bij de klasse gebruiker hoort. Je zou dus een gebruiker klasse moeten maken.

Verder, zijn de globale variabelen wel eigenschappen?

En je methoden zijn vrij onoverzichtelijk, een kenmerk van OOP is dat je de methoden zo klein en overzichtelijk mogelijk probeert te houden, dan kan je er later ook nog wat mee.

Het is niet heel erg slecht hoor, gewoon een begin wat je zoals Jan al zegt, niet met ons hoeft te delen, je had beter op het forum kunnen vragen of je op de goede weg zit.
Joeri
Joeri
20 jaar geleden
 
0 +1 -0 -1
Mooi script en erg goed gescript ook maar een dooddoener voor OOP dat je het in een class hebt gepropt, het stemd helemaal niet overeen met de bedoeling van Object Oriented Programming.

Voor de rest is het wel erg leuk.

Grtz.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
1) Je klasse is gewoon een verzameling van functies die niet echt samenwerken met elkaar. Ook is er geen constructor. (Tip: haal alles uit die klasse en zet de aparte functies in bv, login.func.php en include die)

2) Dit login script is zeer onveilig, iemand kan zo je sessie overnemen door de cookie te stelen ( Session Hi-Jacking ). (Tip: voeg wat controles bij. (vb: IP, tijd, browser, ... ) )

Voor de rest is alles wel mooi gescript ;-)
Hopelijk doe je wat met deze constructieve commentaar..
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
Spijtig dat je nog steeds niet hebt veranderd aan je script om het te verbeteren.. Zo toon je alvast dat je met slechte beveiliging niet inzit en dat je ook tips van anderen gewoon negeert.

Jammer voor je gemiste kansen..
Manaus
Manaus
20 jaar geleden
 
0 +1 -0 -1
het is een standaard scriptje het is gewoon de basis en omdatk momenteel neit zoveel tijd heb door school heb ik nog geen tijd gehad om eraan te werken
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
ChrisB
ChrisB
20 jaar geleden
 
0 +1 -0 -1
Ik zal het verhaaltje oop overslaan, omdat dit nu wel genoeg behandeld is. Ik wilde eigenlijk alleen een opmerking plaatsen over de feedback van de login procedure in login.php.

Hierin geef je aan of een wachtwoord onjuist is of dat een gebruiker niet bestaat. Het geeft zo iemand wel een indicatie of een gebruiker bestaat. het is makkelijk voor de ontwikkelaar, maar ik zou hier toch echt de algemene term gebruiken:

ongeldige gebruikersnaam/wachtwoord combinatie.

Je zou kunnen overwegen om de feedback gescheiden op te slaan in een logging, waardoor je ondersteuning aan je gebruikers kunt geven, mocht het fout gaan.

Nog over de SELECT query van op regel 14 in head_class.php. deze is nu:

$select = "SELECT `id`,`username`,`password`, `activated` FROM `users` WHERE `username` = '".$username."'";

Ik zou deze aanpassen naar:

$select = "SELECT `id`,`username`,`password`, `activated` FROM `users` WHERE `username` = '".$username."' LIMIT 1";

Hiermee weet je zeker dat je altijd maar een enkel record terug krijgt. Ondanks dat je in de register functie een controle uitvoert op het eventueel bestaan van de gebruikersnaam, is dit geen garantie!!!

Een tip, welke je zeker kunt gebruiken, is om de return values ander op te pakken. in plaats van overal return "U bent geregistreerd"; etc te gebruiken, zou je dit met codes kunnen opvangen. Deze codes kun je vervolgens in een language file omzetten naar de juiste tekst. Verder kun je hier ook makkelijker acties op ondernemen.

een voorbeeld:

huidige functie:

function change_password($oud, $nieuw, $id) {
$select = "SELECT `password` FROM `users` WHERE `id` = '".id."'";
$query = mysql_query($select) OR DIE (mysql_error());
$row = mysql_fetch_assoc($query);

if(MD5($oud) == $row['password']) {
$nieuw = MD5($nieuw);
$query2 = mysql_query("UPDATE `users` SET `password` = '".$nieuw."' WHERE `id` = '".$id."'") OR DIE (mysql_error());
return "Paswoord succesvol veranderd!";
}
else {
return "Oud paswoord klopt niet!";
}
}

Hiervan zou je kunnen maken:

function change_password($oud, $nieuw, $id) {
$select = "SELECT `password` FROM `users` WHERE `id` = '".id."'";
$query = mysql_query($select) OR DIE (mysql_error());
$row = mysql_fetch_assoc($query);

if(MD5($oud) == $row['password']) {
$nieuw = MD5($nieuw);
$query2 = mysql_query("UPDATE `users` SET `password` = '".$nieuw."' WHERE `id` = '".$id."'") OR DIE (mysql_error());
$return['code'] = 1;
$return['msg'] = "Paswoord succesvol veranderd!";
}
else {
$return['code'] = 0;
$return['msg'] = "Oud paswoord klopt niet!";
}
return $return;
}

Je kunt nu een if-statement gebruiken om acties te ondernemen, zoals:

$result = $user->change_password($oud, $nieuw, $id);


if ($result['code'] == 1) {
echo $msg[$language]['password_changed'];
}
else {
echo $msg[$language]['faulty_password'];
}

// de $msg variabele zou je kunnen vullen met teksten in verschillende talen, waardoor je wat flexibeler bent. tevens heb je zo een algemenere functie, welke breder toepasbaar is.

Je zou met alle tips nu wel een mooie user klasse kunnen maken, waar je dus alle onderdelen in opvangt.

Mijn advies: blijven proberen!!!!

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. login-script-dmv-een-class

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.