Inlog probleem
Dit is mijn code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
$iq = "SELECT*FROM Tabelname WHERE name='".$_POST['name']."' AND password='".$_POST['password']."' LIMIT 1";
$q = mysql_query($iq);
if (mysql_num_rows($q) == 1) {
$_SESSION['login']=$_POST['name'];
echo "<script> window.location = 'Website locatie(is goed)'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
$iq = "SELECT*FROM Tabelname WHERE name='".$_POST['name']."' AND password='".$_POST['password']."' LIMIT 1";
$q = mysql_query($iq);
if (mysql_num_rows($q) == 1) {
$_SESSION['login']=$_POST['name'];
echo "<script> window.location = 'Website locatie(is goed)'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
foutafhandeling in te bouwen, en over te stappen op de functie-bibliotheek van MySQLi.
Tevens raad ik met klem aan om mysqli_real_escape_string() op je $_POST-variabelen in je query ($iq) te gebruiken omdat je nu behoorlijk vatbaar bent voor hacking via SQL-injection.
Ik denk dat je er beter aan doet om goede Tevens raad ik met klem aan om mysqli_real_escape_string() op je $_POST-variabelen in je query ($iq) te gebruiken omdat je nu behoorlijk vatbaar bent voor hacking via SQL-injection.
Gewijzigd op 15/07/2014 18:48:32 door - Ariën -
Veiliger is om enkel de velden uit de database te benoemen die je echt nodig hebt.
Het * moeten spaties omheen.
Bedankt ik zal er naar gaan kijken
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$con = mysqli_connect('host','username','ww','db-naam');
if (mysqli_connect_errno($con)) {
echo mysqli_connect_error($con)
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$iq = "SELECT*FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($iq);
if (mysqli_num_rows($q) == 1) {
$_SESSION['login'] = $name;
echo "<script> window.location = 'website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
$con = mysqli_connect('host','username','ww','db-naam');
if (mysqli_connect_errno($con)) {
echo mysqli_connect_error($con)
}
$name = mysqli_real_escape_string($con, $_POST['name']);
$password = mysqli_real_escape_string($con, $_POST['password']);
$iq = "SELECT*FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($iq);
if (mysqli_num_rows($q) == 1) {
$_SESSION['login'] = $name;
echo "<script> window.location = 'website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
Toevoeging op 15/07/2014 18:23:21:
Hij weergeeft alleen de style
Bas IJzelendoorn op 13/07/2014 19:14:12:
Het * moeten spaties omheen.
En waar is de foutafhandeling?
Gewijzigd op 15/07/2014 18:34:40 door - SanThe -
Overigens zie ik het nut niet in om mysqli_real_escape_sting op een wachtwoord los te laten.
Een wachtwoord hoor je namelijk gecodeerd op te slaan in een database.
Kijk bv. naar bcrypt.
En voor een password die je gehashed op wilt slaan in het niet nodig om deze nog door mysql(i)_real_escape_string() te halen. De output zelf kan al geen schadelijke tekens meer bevatten.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
$con = mysqli_connect('host','naam','ww','dbnaam');
if (mysqli_error($con)) {
echo mysqli_error($con);
}
$name = $_POST['name'];
$password = $_POST['password'];
$iq = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($iq);
if (mysqli_num_rows == 1) {
$_SESSION['login'] = $_POST['name'];
echo "<script> window.location = 'Website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
$con = mysqli_connect('host','naam','ww','dbnaam');
if (mysqli_error($con)) {
echo mysqli_error($con);
}
$name = $_POST['name'];
$password = $_POST['password'];
$iq = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($iq);
if (mysqli_num_rows == 1) {
$_SESSION['login'] = $_POST['name'];
echo "<script> window.location = 'Website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
mysqli_num_rows is wel een functie, dus je moet wel aangeven voor welke query deze moet gelden.
O thx, helemaal over het hoofd gezien
Foutafhandeling op $q is ook wel aangeraden om toe te voegen.
Ik heb een fouthandeling ingebouwd en er gaat inderdaad iets fout maar met de connect is niets mis
Wat gaat er fout? Relevante code?
Toevoeging op 17/07/2014 19:42:02:
Dit is de code 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
27
28
29
30
31
32
33
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
<?php
define('DEBUG_MODE',true);
$con = mysqli_connect('host','naam','ww','db_naam');
if (mysqli_error($con)) {
echo mysqli_error($con);
}
$name = mysqli_real_escape_string ($con,$_POST['name']);
$password = $_POST['password'];
$iq = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($con, $iq);
$fouth = $con->query($iq);
if (!$fouth) {
echo "Er is ergens een fout opgetreden <BR />";
if (DEBUG_MODE) {
echo $con->error() . "<BR />" . $ig;
}
}
if (mysqli_num_rows($q) == 1) {
$_SESSION['login'] = $_POST['name'];
echo "<script> window.location = 'Website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
define('DEBUG_MODE',true);
$con = mysqli_connect('host','naam','ww','db_naam');
if (mysqli_error($con)) {
echo mysqli_error($con);
}
$name = mysqli_real_escape_string ($con,$_POST['name']);
$password = $_POST['password'];
$iq = "SELECT * FROM userscms WHERE name='".$name."' AND password='".$password."' LIMIT 1";
$q = mysqli_query($con, $iq);
$fouth = $con->query($iq);
if (!$fouth) {
echo "Er is ergens een fout opgetreden <BR />";
if (DEBUG_MODE) {
echo $con->error() . "<BR />" . $ig;
}
}
if (mysqli_num_rows($q) == 1) {
$_SESSION['login'] = $_POST['name'];
echo "<script> window.location = 'Website locatie'; </script>";
} else {
echo "Fout wachtwoord of gebruikersnaam";
}
?>
Waarom gebruik je $con->query (OOP-stijl) terwijl je daarboven de procedurele mysqli_query() gebruikt?
Ik heb dit dit van internet gekopieërd (databases in php is niet mijn sterkste kant)
Je mengt nu twee verschillende MySQLfuncties-methodes met elkaar, en dat werkt niet!
Toevoeging op 17/07/2014 19:53:14:
Wat voor fouthandeling kan ik het beste erin zetten?
Gewijzigd op 17/07/2014 19:58:44 door - Ariën -
Toevoeging op 17/07/2014 19:59:35:
Thx