2018-08-06, 20:02
  #1
Medlem
Tjaba. Håller på med ett inloggningsskript till en simpel hemsida. Jag vill läsa in alla användare och deras lösenord in i en array men jag får det inte riktigt att fungera, sidan blir bara vit.

Så här ser koden ut när den fungerar:

[PHP]$LOGIN_INFORMATION = array(

'Admin' => 'Admin'
);
[/PHP]

Då tyckte ju jag att jag var supersmart när jag gjorde på detta viset:

[PHP]$LOGIN_INFORMATION = array(

$sql = "SELECT * FROM FORARE";

$result = $conn->query($sql);

while($row = $result->fetch_assoc())

{

$anvnamn = $row["ANVNAMN"];
$password = $row["LOSENORD"];


echo "'$anvnamn' => '$password',";


}

'Admin' => 'Admin'
);[/PHP]

Men det funkade givetvis inte :/

Har försökt hitta något bra svar på nätet men utan resultat.

Vad jag försöker göra är helt enkelt att läsa in alla rader ifrån en tabell i mysql där jag har användarnamn och lösenord sparat. Men hur fasiken får jag in det i arrayen? En rad med användarnamn och lösenord ska vara utformat likadant som näst sista raden där det står admin.
Citera
2018-08-06, 20:06
  #2
Medlem
Du bygger ju inte din array genom att echo:a ut den. Läs på grunderna i hur man gör en array - tar 5 minuter att lära sig: https://www.w3schools.com/php/func_array.asp (dålig källa egentligen, men rätt så pedagogisk åt en nybörjare)
Citera
2018-08-06, 20:18
  #3
Medlem
Citat:
Ursprungligen postat av DJ-Emerald
Du bygger ju inte din array genom att echo:a ut den. Läs på grunderna i hur man gör en array - tar 5 minuter att lära sig: https://www.w3schools.com/php/func_array.asp (dålig källa egentligen, men rätt så pedagogisk åt en nybörjare)

Tackar, löste det såhär:
[PHP]$dbhost = ('*******');
$dbuser = '*******';
$dbpass = '*******';
$dbname = '*******';
$query = "SELECT * FROM FORARE";
$dbh=mysql_connect ($dbhost, $dbuser, $dbpass) or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($dbname);

$result = mysql_query($query) or die('Error : ' . mysql_error());

while(list($ANVNAMN, $LOSENORD) = mysql_fetch_array($result, MYSQL_NUM))
{
$LOGIN_INFORMATION = array(
$ANVNAMN => $LOSENORD,);
}[/PHP]
Citera
2018-08-06, 20:25
  #4
Medlem
Citat:
Ursprungligen postat av abiz2
Tackar, löste det såhär:
[PHP]$dbhost = ('*******');
$dbuser = '*******';
$dbpass = '*******';
$dbname = '*******';
$query = "SELECT * FROM FORARE";
$dbh=mysql_connect ($dbhost, $dbuser, $dbpass) or die('Cannot connect to the database because: ' . mysql_error());
mysql_select_db ($dbname);

$result = mysql_query($query) or die('Error : ' . mysql_error());

while(list($ANVNAMN, $LOSENORD) = mysql_fetch_array($result, MYSQL_NUM))
{
$LOGIN_INFORMATION = array(
$ANVNAMN => $LOSENORD,);
}[/PHP]

Sedär ja. Flikar in med en liten parentes: Om du ska hantera folks inloggningsuppgifter så hoppas jag att du lärt dig att lagra lösenord som saltade hash-värden? Allt annat vore mycket illa ur säkerhetssynpunkt.
Citera
2018-08-06, 20:31
  #5
Medlem
Citat:
Ursprungligen postat av DJ-Emerald
Sedär ja. Flikar in med en liten parentes: Om du ska hantera folks inloggningsuppgifter så hoppas jag att du lärt dig att lagra lösenord som saltade hash-värden? Allt annat vore mycket illa ur säkerhetssynpunkt.

japp tänkte omvandla alla till md5 sen, men tack för tipset
Citera
2018-08-06, 20:53
  #6
Medlem
Citat:
Ursprungligen postat av abiz2
japp tänkte omvandla alla till md5 sen, men tack för tipset

Använd absolut inte md5 - den är crackad för länge sedan. Finns mängder med sajter där du kan avkryptera md5-hashar på en sekund.

Använd något av: bcrypt, sha512, sha256 - ordning från bäst till sämst.
Citera
2018-08-07, 19:58
  #7
Medlem
Tänkte inflika lite här också att inte använda mysql_* funktionerna då dom är satta som deprecated.

Använd PDO eller mysqli_ istället.

Bäst att lära dig korrekt från början än att behöva lära om dig.
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in