login checken in database

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
hallo,

ik probeer voor het eerst met een database te werken. ik heb mijn database gelinkt maar hij geeft altijd aan foute gebruikers naam of wachtwoord. ik heb ik mijn database een tabel en daar staat in: id-----username----password-----email

maakt dit uit? of moet ik er alleen de gebruikersnaam en wachtwoord er in zetten?

ik heb wamp gedownload en als ik localhost in typ dan heb ik daar een database

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?php
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="periode2"; // Database name
$tbl_name="users"; // Table name

// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");

// username and password sent from form
$myusername=$_POST['gebruikersnaam'];
$mypassword=$_POST['wachtwoord'];


// Mysql_num_row is counting table row
$count=mysql_num_rows($result);

// If result matched $myusername and $mypassword, table row must be 1 row
if($count==1){

// Register $myusername, $mypassword and redirect to file "login_success.php"
session_register("myusername");
session_register("mypassword");
header("location:login_success.php");
}
else {
echo "Wrong Username or Password";
}
?>

[ Voor 59% gewijzigd door Verwijderd op 09-12-2016 14:03 ]


Acties:
  • 0 Henk 'm!

  • MAX3400
  • Registratie: Mei 2003
  • Nu online

MAX3400

XBL: OctagonQontrol

een database?

Doe eens wat meer info; neem aan dat jouw database een merk & type heeft? En dat je ergens een URL hebt hoe je alles denkt te hebben geconfigureerd?

Mijn advertenties!!! | Mijn antwoorden zijn vaak niet snowflake-proof


Acties:
  • 0 Henk 'm!

  • kenneth
  • Registratie: September 2001
  • Niet online

kenneth

achter de duinen

Verwijderd schreef op vrijdag 9 december 2016 @ 13:59:
PHP:
1
2
3
4
5
<?php

$count=mysql_num_rows($result);

?>
Waar wordt $result gevuld? Volgens mij nergens.

Look, runners deal in discomfort. After you get past a certain point, that’s all there really is. There is no finesse here.


Acties:
  • 0 Henk 'm!

  • Ypho
  • Registratie: April 2008
  • Laatst online: 11:24

Ypho

Allround Nerd

Dat foute wachtwoord, dat gaat om de $myusername en $mypassword neem ik aan, en niet om een fout tijdens het verbinden met de database? Wat doe je tussentijds met het wachtwoord? Hashen? Staat het als een bepaald type in de database? Wat zijn de queries die je gebruikt om de username/password combinatie te controleren?

🃏 TCG Codex - Je volledige TCG verzameling in je broekzak ::: 🍏 TCG Codex for iOS ::: 🤖 TCG Codex for Android


Acties:
  • +1 Henk 'm!

  • RedHat
  • Registratie: Augustus 2000
  • Laatst online: 09-09 17:16
Ten eerste zou ik mijzelf eens inlezen in validatie van input. Erg belangrijk!

Ten tweede bewaar je nooit een wachtwoord in je database of een cookie / sessie. Hier worden vaak SessionID's voor gebruikt clientside en hashed / salted passwords serverside.

Voor de rest vul je je result niet dus kun je deze ook niet vergelijken / inzien.

Verder: Lees jezelf eens in op de termen 'PDO' en 'SQL Injection'.

Succes!

Acties:
  • 0 Henk 'm!

  • LordSinclair
  • Registratie: Oktober 2014
  • Laatst online: 13:08
Lees je vooral eerst eens in hoe je met een database communiceert. Je verwacht een antwoord van de database maar je stelt hem nergens een vraag.

There's no need to kneel, I'm a very democratic sort of lord.


Acties:
  • +1 Henk 'm!

  • emnich
  • Registratie: November 2012
  • Niet online

emnich

kom je hier vaker?

STOP!

Het is 2016 en je gebruikt nog mysql_... Ik snap dat je nog aan het leren bent maar zoek eerst even een tutorial van minder dan 5 jaar oud. Daarna zijn we graag bereidt te helpen maar elk advies om dit nu op te lossen is m.i. verkeerd.

Om nog te zwijgen van session_register en van md5() die je tutorial gaat gebruiken om je wachtwoord `veiliger` op te slaan (nadat je plain text leert)...

[ Voor 24% gewijzigd door emnich op 09-12-2016 14:22 ]


Acties:
  • 0 Henk 'm!

  • DJMaze
  • Registratie: Juni 2002
  • Niet online
Je hebt blijkbaar zo'n enorm foute tutorial gebruikt, dat ik van mijzelf jou een "goed" voorbeeld moet geven.
Een statement is beter dan een query maar je hebt totaal niet verteld welke kolommen er in de users tabel zitten, dus please andere techies, ga niet muggenziften dat ik hier query() gebruik (ik gebruik gelukkig een escape_string() tegen sql injecties).

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 <?php
$host     = "127.0.0.1"; // Host name
$username = "root";      // Mysql username
$password = "";          // Mysql password
$db_name  = "periode2";  // Database name

// Connect to server and select databse.
// http://php.net/mysqli
$mysql = new mysqli($host, $username, $password, $db_name);

$myusername = $mysql->escape_string($_POST['gebruikersnaam']);

$result = $mysql->query("SELECT * FROM users WHERE username = '{$myusername}'");

$user = $result->fetch_assoc();

if ($user && password_verify($_POST['wachtwoord'], $user['password_hash'])) {
    // Register $myusername, $mypassword and redirect to file "login_success.php"
    unset($user['password_hash']);
    $_SESSION['user'] = $user;
    header("location:login_success.php");
} else {
    echo "Wrong Username or Password";
}

Hoe je een password hash maakt staat hier: http://php.net/password_hash

P.S. Ik heb even gegoogled en "man oh man" het internet staat vol met die foute tutorial sinds 2006!
Ik vraag mij af hoeveel websites er te hacken zijn.

[ Voor 12% gewijzigd door DJMaze op 09-12-2016 15:37 ]

Maak je niet druk, dat doet de compressor maar

Pagina: 1