Login System met Mysql

Door Rutger , 19 jaar geleden, 31.500x bekeken

Ik heb veel over PHP geleerd en wilde dus een login system maken want dat leek me wel vet om dat is te doen

Dit is mijn eeste script dus ik hoop dat jullie ermee blij zijn en vertel de fouten die ik heb gemaakt dan kan ik het weer verbeteren en dan weet ik meer :)

De login if/else statements zijn weg als je al ingelogd bent

Voorbeeld: http://77.161.222.204/index.php

Gesponsorde koppelingen

PHP script bestanden

  1. login-system-met-mysql

 

Er zijn 22 reacties op 'Login system met mysql'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen


19 jaar geleden
 
0 +1 -0 -1
Zet hier eerst maar eens code tags omheen zodat het te lezen is ;-)
Lars Groot
Lars Groot
19 jaar geleden
 
0 +1 -0 -1
Leuk en mooi script ;), heb je een voorbeeld?
Rutger
Rutger
19 jaar geleden
 
0 +1 -0 -1
Ok het voorbeeld is er het kan mischien wat sloom zijn of mischien niet want ik doe ik thuis en niet op een host
Jeroen Spaans
Jeroen Spaans
19 jaar geleden
 
0 +1 -0 -1
Je register account blijft wit...
Rutger
Rutger
19 jaar geleden
 
0 +1 -0 -1
Download het maar gewoon want het voorbeeld kan wat sloom zijn... xD
Jelle -
Jelle -
19 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
<?php
     $dbusername
= $row['username'];
     $dbpassword = $row['password'];
     $dbnickname = $row['nickname'];
?>


beetje onnodig om variabelen te kopieren en daarmee extra geheugen te gebruiken.
RvW Of toch niet
RvW Of toch niet
19 jaar geleden
 
0 +1 -0 -1
`username`
backtips gespot
Frank -
Frank -
19 jaar geleden
 
0 +1 -0 -1
Een kleine opmerking:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    $query
= sprintf("SELECT id, username, password, nickname, date FROM users WHERE `username`='%s' AND `password`='%s'",
?>

Een wachtwoord heb je nooit en te nimmer nodig binnen de applicatie, je hebt hem UITSLUITEND nodig voor een vergelijking. Vraag het wachtwoord dan ook nooit op, je hebt hem toch niet nodig. Sla wachtwoorden nooit plaintext op, maar uitsluitend de md5- of sha1-hash. Is wederom meer dan genoeg maar wel een stuk veiliger.
- SanThe -
- SanThe -
19 jaar geleden
 
0 +1 -0 -1
Er mist nog wel het een en ander aan contrôles in je script.

Notice: Undefined index: username in C:\wamp\www\login.php on line 15
Notice: Undefined index: password in C:\wamp\www\login.php on line 16
Rutger
Rutger
19 jaar geleden
 
0 +1 -0 -1
Notice: Undefined index: username in C:\wamp\www\login.php on line 15
Notice: Undefined index: password in C:\wamp\www\login.php on line 16

krijg je alleen als je in 1keer naar login.php gaat je moet eerst naar index.php gaan en inloggen ;)
Jesper Diovo
Jesper Diovo
19 jaar geleden
 
0 +1 -0 -1
Dan zou een beveiliging nog altijd de bezoeker naar index.php moeten sturen.

Op zich ziet het er wel goed uit, alleen:
- beetje jammer van telkens weer opnieuw verbinding maken met de database. Waarom niet gewoon een config.php die je één keer bovenaan index.php (bijv.) include en dat je je pagina's in index.php include?
- header() i.p.v. javascript location-dinges.
- isset() of empty() over een variabele gebruiken i.p.v. alleen in de if-voorwaarde zetten.
- Ohja en gebruik fatsoenlijke foutafhandeling in je scripts i.p.v. or die()!
Rutger
Rutger
19 jaar geleden
 
0 +1 -0 -1
issset() en empty() ken ik nog niet, Ik ga nog even door leren :)
er is echt zoo veel te leren over PHP, Dat maakt het nou zo leuk
Jesper Diovo
Jesper Diovo
19 jaar geleden
 
0 +1 -0 -1
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
    $numrows = mysql_num_rows($rows);

    if($numrows)


Hoe weet je nu of er records zijn? Je controleert alleen of $numrows true/false is. Misschien met een vergelijking dat je wel kunt zien of er records teruggegeven zijn ;-).
Roel -
Roel -
19 jaar geleden
 
0 +1 -0 -1
Je maakt bovenaan 2 variabelen, dit is onnodig. Je kunt ook de gegevens ophalen op de volgende manier:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("SELECT * FROM website WHERE username = '".mysql_real_escape_string($_POST['username'])."', password = '".sha1(mysql_real_escape_string($_POST['password']))."'");
?>
Rutger
Rutger
19 jaar geleden
 
0 +1 -0 -1
werkt niet echt als ik die 2 variable weg haal en die sql code gebruik
Roel -
Roel -
19 jaar geleden
 
0 +1 -0 -1
Je moet ook niet letterlijk mijn SQL query kopiëren, dit heb jij.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php
$register
= sprintf("INSERT INTO users VALUES('', '%s', '%s', '%s', '%s')",
                mysql_real_escape_string($username),
                mysql_real_escape_string($password),
                mysql_real_escape_string($nickname),
                mysql_real_escape_string($date));
                
                mysql_query($register);
?>


Het kan aan mij liggen, maar ik snap hier niks van. Je kunt beter gegevens filteren bij INSERT. Zo dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
mysql_query("INSERT INTO users (username, password, nickname, date) VALUES ('".mysql_real_escape_string($_POST['username'])."', '".mysql_real_escape_string($_POST['password'])."', '".mysql_real_escape_string($_POST['nickname'])."', '".date("Y-m-d")."')");
?>


Verder gebruik je options.php alleen om een titel in op te slaan, je kunt beter daar verbinding maken met mysql_connect() en mysql_select_db(). Dan kun je die 2 regels op alle andere pagina's weggooien.

Ik hoop dat je iets aan m'n reactie hebt.

Succes ermee! :)
W W
W W
19 jaar geleden
 
0 +1 -0 -1
This file is neither allocated to a Premium Account, or a Collector's Account, and can therefore only be downloaded 10 times.

This limit is reached.

gz. -.-
Probeer kllm
probeer kllm
19 jaar geleden
 
0 +1 -0 -1
Maak een Salt in je loginscript
Arjan jansen
arjan jansen
19 jaar geleden
 
0 +1 -0 -1
Hallo

Ik heb even een vraagje over de register.php
Ik krijg alleen maar een wit scherm.
Heeft hier nog iemand last van


Arjan
Fdsfdsf sfddddddddd
fdsfdsf sfddddddddd
18 jaar geleden
 
0 +1 -0 -1
Waar moet ik de database gegevens invoeren? nu kan die geen databese connection maken

Mvg
Ik
Loran DP
Loran DP
18 jaar geleden
 
0 +1 -0 -1
@fdsfdsf
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
// Databases
$db_1        =    'localhost'; // Host
$db_2        =    ''; // MySQL username
$db_3        =    ''; // MySQL password
$db_4        =    ''; // MySQL database

// Database connect

$mysql_account = mysql_connect($db_1    ,$db_2,$db_3) or die('Er kon geenverbinding met een database worden gemaakt.' );
mysql_select_db($db_4, $mysql_account) or die('Kon database niet selecteren.');

?>


Kan je het beste toevoegen aan de pagina options.php
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Toby hinloopen
toby hinloopen
18 jaar geleden
 
0 +1 -0 -1
http://www.levensweg.net/host/

Hier kan je kleine files (max 8mb per file) hosten zonder 10x limiet.

Overzicht van bestaande uploads: (om aan te tonen dat de host al een tijd online + betrouwbaar is)
http://www.levensweg.net/host/users.php

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

Inhoudsopgave

  1. login-system-met-mysql

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.