HELP ik zit vast in mijn eerste project md5
tot nu toe is
het betalen van een user naar de ander dmv aftrekken en bijtellen van punten
controleren of het aantal punten aanwezig is
het id controleren
nieuwe leden aanmaken via een admin gedeelte
en hier heb ik mijn eerste probleempje ik kom er maar niet achter hoe ik het voor elkaar krijg om in mysql een aantal gebruikers als admin te markeren
dus nu heb ik een extra tafel ?
dus ipv
naam id pw punten
heb ik
naam id pw punten admin?
kan dit makkelijker ??
zo niet valt het leed te overzien
maar waar ikecht op vastloop is de wachtwoorden beveiligen met md5
ben er achter hoe ik wachtwoorden wegschrijf naar de database als md5
dit doe ik als volgd
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$pas = md5($pas);
$q = "INSERT INTO $tabel VALUES ('$date', '$name' , '$pas' , '$number' , '$punt')";
return mysql_query($q, $con);
?>
$pas = md5($pas);
$q = "INSERT INTO $tabel VALUES ('$date', '$name' , '$pas' , '$number' , '$punt')";
return mysql_query($q, $con);
?>
maar als ik dan wil inloggen met een net aangemaakte account werkt het niet
omdat ik niet weet hoe ik een ingevoerd wachtwoord verstuurd krijg als md5
mijn inlog gedeelte is als volgd nu
Code (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
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
<?php
//-----------------------pasword controle-----------------------
$query = mysql_query("Select wachtwoord From $tabel WHERE naam = '$naamform' ");
$res = mysql_fetch_assoc($query);
{
$juisteww = $res['wachtwoord'];
}
if ($wachtwoord != $juisteww )
{
die('controleer uw passwoord of neem contact op' . mysql_error());
}
//--------------------------------------------------------------------------------
//----------------selecteer punten van tabel ophalen bestaande aantal punten------
$query = mysql_query("Select punten From $tabel WHERE naam = '$naamform' ");
$res = mysql_fetch_assoc($query);
{
$puntnu = $res['punten'];
}
echo "u heeft $puntnu punten";
?>
//-----------------------pasword controle-----------------------
$query = mysql_query("Select wachtwoord From $tabel WHERE naam = '$naamform' ");
$res = mysql_fetch_assoc($query);
{
$juisteww = $res['wachtwoord'];
}
if ($wachtwoord != $juisteww )
{
die('controleer uw passwoord of neem contact op' . mysql_error());
}
//--------------------------------------------------------------------------------
//----------------selecteer punten van tabel ophalen bestaande aantal punten------
$query = mysql_query("Select punten From $tabel WHERE naam = '$naamform' ");
$res = mysql_fetch_assoc($query);
{
$puntnu = $res['punten'];
}
echo "u heeft $puntnu punten";
?>
wie kan mij een handje helpen
en niet aleen de code verbeteren en kwakkeloos neergooien aub
graag ook een uitleg van hoe en waarom ik zou diegene zeer dankbaar zijn
Gewijzigd op 03/05/2011 03:25:11 door Hendrik net
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
// let op, deze code is onveilig, je moet hem zelf beveiligen!
// Wanneer je op een gebruiker controleerd kan je beter op alle waardes controleren.
$naam = $_POST['naam'];
// md5 roep je simpelweg dus aan door md5() te gebruiken rond de variabel wachtwoord.
$wachtwoord = md5($_POST['wachtwoord'];
// query opbouw met naam en wachtwoord.
$query = mysql_query("SELECT naam,wachtwoord FROM $tabel WHERE naam = '$naamform' AND wachtwoord = '$wachtwoord' ");
// wanneer gelukt:
if ($query)
{
// sessie aanmaak hier
}
// anders: error
else {
echo 'Uw wachtwoord komt niet overeen met de gebruikersnaam.';
}
// zorg altijd voor een mooie afhandeling en vermijd die();
// Zoals de meeste zeggen, wanneer jij iets fout doet sterf jij ook niet, php dus ook niet.
?>
// let op, deze code is onveilig, je moet hem zelf beveiligen!
// Wanneer je op een gebruiker controleerd kan je beter op alle waardes controleren.
$naam = $_POST['naam'];
// md5 roep je simpelweg dus aan door md5() te gebruiken rond de variabel wachtwoord.
$wachtwoord = md5($_POST['wachtwoord'];
// query opbouw met naam en wachtwoord.
$query = mysql_query("SELECT naam,wachtwoord FROM $tabel WHERE naam = '$naamform' AND wachtwoord = '$wachtwoord' ");
// wanneer gelukt:
if ($query)
{
// sessie aanmaak hier
}
// anders: error
else {
echo 'Uw wachtwoord komt niet overeen met de gebruikersnaam.';
}
// zorg altijd voor een mooie afhandeling en vermijd die();
// Zoals de meeste zeggen, wanneer jij iets fout doet sterf jij ook niet, php dus ook niet.
?>
Gewijzigd op 03/05/2011 03:43:02 door Alex L
Code (php)
P.S.
Hendrik net op 03/05/2011 03:14:31:
ik ben bezig met een punten ruil systeem, wat ik voor elkaar heb gekregen
tot nu toe is
het betalen van een user naar de ander dmv aftrekken en bijtellen van punten
controleren of het aantal punten aanwezig is
...
tot nu toe is
het betalen van een user naar de ander dmv aftrekken en bijtellen van punten
controleren of het aantal punten aanwezig is
...
tjee ehhh... wat een bijzonder ruil systeem :-|
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
$query = mysql_query("SELECT id FROM '".$tabel."' WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND passsword = '".mysql_real_escape_string(md5($_POST['password']))."'");
if($query){
//query is gelukt
$numrow = mysql_num_rows($query);
if($numrow == 1){
//er zijn rows gevonden dus ingelogd.
}
else{
//er is of nix of meer dan 1 row gevonden wat ook niet kan kloppen dus niet ingelogd
}
}
else{
//query is mislukt
}
?>
$query = mysql_query("SELECT id FROM '".$tabel."' WHERE username = '".mysql_real_escape_string($_POST['username'])."' AND passsword = '".mysql_real_escape_string(md5($_POST['password']))."'");
if($query){
//query is gelukt
$numrow = mysql_num_rows($query);
if($numrow == 1){
//er zijn rows gevonden dus ingelogd.
}
else{
//er is of nix of meer dan 1 row gevonden wat ook niet kan kloppen dus niet ingelogd
}
}
else{
//query is mislukt
}
?>
edit: dankje Vincent voor mysql_num_rows ;)
Gewijzigd op 03/05/2011 10:46:18 door gerhard l
mysql_num_rows
Code (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
32
33
34
35
36
37
38
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
32
33
34
35
36
37
38
<?php
session_start();
if( $_SERVER['REQUEST_METHOD'] == 'POST')// Controle of er op de knop is gedrukt.
{
if(!empty($_POST['gebruikersnaam']) AND !empty($_POST['password'])) // Controle of alles is ingevult.
{
include_once 'connect.php';// Connectie met database.
include_once 'uwx3g.php'; // Connectie salt page.
$gebruikersnaam= mysql_real_escape_string($_POST['gebruikersnaam']);// Gevaren voor sql injectie weren dmv. mysql_real_.......
$password= sha1(salt($_POST['password']));// Hash en Salting van pw.
$sql = ("SELECT gebruikersnaam, password FROM gebruikers WHERE gebruikersnaam='". $gebruikersnaam . "' AND password='" . $password . "'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle != 0)
{
//VERDERE VERWERKING. (DIT is aanjou, bijv. sessie ofziets?
}
else
{
header('Refresh: 2; url=login.php');
exit ('Verkeerde gebruikersnaam of wachtwoord.');// Negatieve melding van ingevoerde gegevens.
}
}
else
{
header('Refresh: 2; url=login.php');
exit ('U heeft een van de gegevens niet goed ingevuld.');// Negatieve melding van ingevoerde gegevens.
}
}
else
{
header('Refresh: 2; url=login.php'); // Negatief op de verwerk pagina gekomen, direct terug verwijzen met gepaste melding.
exit ('U bent op de verkeerde pagina gekomen, u wordt doorverwezen.');
}
?>
session_start();
if( $_SERVER['REQUEST_METHOD'] == 'POST')// Controle of er op de knop is gedrukt.
{
if(!empty($_POST['gebruikersnaam']) AND !empty($_POST['password'])) // Controle of alles is ingevult.
{
include_once 'connect.php';// Connectie met database.
include_once 'uwx3g.php'; // Connectie salt page.
$gebruikersnaam= mysql_real_escape_string($_POST['gebruikersnaam']);// Gevaren voor sql injectie weren dmv. mysql_real_.......
$password= sha1(salt($_POST['password']));// Hash en Salting van pw.
$sql = ("SELECT gebruikersnaam, password FROM gebruikers WHERE gebruikersnaam='". $gebruikersnaam . "' AND password='" . $password . "'"); // Selecteer user waar de gebruiker overeenkomt met ingevoerde pas
$uitvoer = mysql_query($sql);
$controle = mysql_num_rows($uitvoer); //Uitvoer van inlog
if($controle != 0)
{
//VERDERE VERWERKING. (DIT is aanjou, bijv. sessie ofziets?
}
else
{
header('Refresh: 2; url=login.php');
exit ('Verkeerde gebruikersnaam of wachtwoord.');// Negatieve melding van ingevoerde gegevens.
}
}
else
{
header('Refresh: 2; url=login.php');
exit ('U heeft een van de gegevens niet goed ingevuld.');// Negatieve melding van ingevoerde gegevens.
}
}
else
{
header('Refresh: 2; url=login.php'); // Negatief op de verwerk pagina gekomen, direct terug verwijzen met gepaste melding.
exit ('U bent op de verkeerde pagina gekomen, u wordt doorverwezen.');
}
?>
dit is de eerste keer dat ik php gebruik
en alles wat ik gemaakt heb werkte (niet veilig genoeg)
en het kan beter dat weet ik maar stap voor stap
ik heb nu als variable voor het ingevoerde password
$wachtwoord = $_POST['wachtwoord'];
dit zo bij het aanmaken
en het inloggen
als ik het goed begrijp hoef ik daar aleen maar
$wachtwoord = md5($_POST['wachtwoord']);
van te maken om in plaats van het woord een md5 van het wachtwoord te krijgen
bij het aanmaken van een account werkt dit prima
bij het inloggen totaal niet omdat hij dan aleen maar zegt dat het wachtwoord niet klopt.
en daar kom ik gewoon niet bij
want als ik dan
het ingevoerde wachtwoord echo op de pagina
zie ik dezelfde hash als die er in de database staat
edit
ik krijg 2 extra letters in de has van de inlogpagina
:S
Toevoeging op 03/05/2011 14:08:48:
sorry
echt dom van mij
ik heb het probleem al gevonden
de hash is 32 tekens
ik heb het wachtwoord veld max 30 gemaakt
dus slaat hij er maar 30 op
en maakt hij er wel een volledige 32 tekens has van bij het inloggen
GRRRR
waarom hebbe computers altijd gelijk !:S:S
Toevoeging op 03/05/2011 14:11:55:
nu heb ik wel een andere vraag aangezien ik de database opnieuw moet creeren om de volledige hash op te kunnen slaan.
hoe kan ik bij datum in mysql
automatisch de datum van de laatste wijziging laten invullen
Gewijzigd op 03/05/2011 14:04:17 door hendrik net