If statement
Ik heb een probleem waar ik maar niet uitkom, namelijk bij deze code:
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
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
<?php
$gebruikersnaam = $_POST['gebruikersnaam'];
$promotag = $_POST['promotag'];
$gegeven_door = $_SESSION['gebruikersnaam'];
$date = date("Y-m-d h:i:s");
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam'] || $promotag == $result['promotag']){
$error = 'error';
}
else{
$sql = "INSERT INTO `paneel_promotags` (gebruikersnaam, promotag, gegeven_door, datum) VALUES ('$gebruikersnaam', '$promotag', '$gegeven_door', '$date')";
if ($con->query($sql) === true) {
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
$sql = "INSERT INTO `paneel_logs` (gebruikersnaam, subject, log, datum) VALUES ('$gegeven_door', 'Promotag toegevoegd', '$gegeven_door heeft $gebruikersnaam de promotag $promotag gegeven.', '$date')";
if ($con->query($sql) === true) {
header('Location: /paneel/admin/promotag/overzicht');
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
}
?>
$gebruikersnaam = $_POST['gebruikersnaam'];
$promotag = $_POST['promotag'];
$gegeven_door = $_SESSION['gebruikersnaam'];
$date = date("Y-m-d h:i:s");
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam'] || $promotag == $result['promotag']){
$error = 'error';
}
else{
$sql = "INSERT INTO `paneel_promotags` (gebruikersnaam, promotag, gegeven_door, datum) VALUES ('$gebruikersnaam', '$promotag', '$gegeven_door', '$date')";
if ($con->query($sql) === true) {
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
$sql = "INSERT INTO `paneel_logs` (gebruikersnaam, subject, log, datum) VALUES ('$gegeven_door', 'Promotag toegevoegd', '$gegeven_door heeft $gebruikersnaam de promotag $promotag gegeven.', '$date')";
if ($con->query($sql) === true) {
header('Location: /paneel/admin/promotag/overzicht');
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
}
?>
Alvast bedankt voor de hulp
Toevoeging op 27/11/2016 19:42:32:
Bij gebruikersnaam werkt die wel, maar bij promotag niet, ze zijn alle 2 goed gedifind...
Gewijzigd op 27/11/2016 20:13:42 door - Ariën -
Maar niet door elkaar.
Toevoeging op 27/11/2016 20:57:40:
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
39
40
41
42
43
44
45
46
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
39
40
41
42
43
44
45
46
<?php
session_start();
include '../../assets/include/config.php';
include '../../assets/include/functions.php';
$sql_PaneelLevel = mysqli_query($con, "SELECT * FROM paneel_personeel WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'");
$PaneelLevel = mysqli_fetch_assoc($sql_PaneelLevel);
if ($PaneelLevel['toegang_promotag'] == 1)
{
if(!logged_in()) {
header('Location: /');
die();
}
$error = '';
if(isset($_POST['submit'])){
$gebruikersnaam = $_POST['gebruikersnaam'];
$promotag = $_POST['promotag'];
$gegeven_door = $_SESSION['gebruikersnaam'];
$date = date("Y-m-d h:i:s");
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam'] || $promotag == $result['promotag']){
$error = 'error';
}
else{
$sql = "INSERT INTO `paneel_promotags` (gebruikersnaam, promotag, gegeven_door, datum) VALUES ('$gebruikersnaam', '$promotag', '$gegeven_door', '$date')";
if (mysqli_query($con,$sql) === true) {
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
$sql = "INSERT INTO `paneel_logs` (gebruikersnaam, subject, log, datum) VALUES ('$gegeven_door', 'Promotag toegevoegd', '$gegeven_door heeft $gebruikersnaam de promotag $promotag gegeven.', '$date')";
if (mysqli_query($con,$sql) === true) {
header('Location: /paneel/admin/promotag/overzicht');
} else {
}
}
}
?>
session_start();
include '../../assets/include/config.php';
include '../../assets/include/functions.php';
$sql_PaneelLevel = mysqli_query($con, "SELECT * FROM paneel_personeel WHERE gebruikersnaam='".$_SESSION['gebruikersnaam']."'");
$PaneelLevel = mysqli_fetch_assoc($sql_PaneelLevel);
if ($PaneelLevel['toegang_promotag'] == 1)
{
if(!logged_in()) {
header('Location: /');
die();
}
$error = '';
if(isset($_POST['submit'])){
$gebruikersnaam = $_POST['gebruikersnaam'];
$promotag = $_POST['promotag'];
$gegeven_door = $_SESSION['gebruikersnaam'];
$date = date("Y-m-d h:i:s");
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam'] || $promotag == $result['promotag']){
$error = 'error';
}
else{
$sql = "INSERT INTO `paneel_promotags` (gebruikersnaam, promotag, gegeven_door, datum) VALUES ('$gebruikersnaam', '$promotag', '$gegeven_door', '$date')";
if (mysqli_query($con,$sql) === true) {
} else {
echo "Error: " . $sql . "<br>" . $con->error;
}
$sql = "INSERT INTO `paneel_logs` (gebruikersnaam, subject, log, datum) VALUES ('$gegeven_door', 'Promotag toegevoegd', '$gegeven_door heeft $gebruikersnaam de promotag $promotag gegeven.', '$date')";
if (mysqli_query($con,$sql) === true) {
header('Location: /paneel/admin/promotag/overzicht');
} else {
}
}
}
?>
Volgensmij alles goed veranderd, maar werkt nog steeds niet...
Toevoeging op 27/11/2016 21:13:23:
Laat maar! Hartelijk dank voor uw reactie! Ik heb het problemeen gevonden.. Namelijk dit:
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
ik plakte dit eronder:
$sql = "SELECT * FROM paneel_promotags WHERE promotag='$promotag'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
en toen werkte het :D
Toevoeging op 27/11/2016 21:25:13:
Huh, nu werkt het niet!!! Pls help me
Toevoeging op 27/11/2016 21:31:43:
en ipv $sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'" dit: $sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam' AND promotag='$promotag'" werkt ook niet...
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Gewijzigd op 27/11/2016 23:58:36 door - Ariën -
Waar loop je precies op vast, en wat werkt er precies niet en wat gebeurt er?
Toevoeging op 28/11/2016 14:08:29:
- Ariën - op 28/11/2016 00:01:18:
Los van het feit dat je makkelijk hackbaar bent vanwege SQL-injection, ben ik benieuwd wat er niet werkt?
Waar loop je precies op vast, en wat werkt er precies niet en wat gebeurt er?
Waar loop je precies op vast, en wat werkt er precies niet en wat gebeurt er?
Volgensmij kan dat niet echt want je moet ten eerste ingelogd zijn, en een admin zijn, als je dat niet bent wordt je door gelinkt naar index.
Rob Chesture op 28/11/2016 14:07:32:
Volgensmij kan dat niet echt want je moet ten eerste ingelogd zijn, en een admin zijn, als je dat niet bent wordt je door gelinkt naar index.
- Ariën - op 28/11/2016 00:01:18:
Los van het feit dat je makkelijk hackbaar bent vanwege SQL-injection...
Volgensmij kan dat niet echt want je moet ten eerste ingelogd zijn, en een admin zijn, als je dat niet bent wordt je door gelinkt naar index.
Als het inloggen op bovenstaande manier van query-opbouw is gemaakt zal ook daar een lek zitten.
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
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
<?php
$error = "";
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = $_POST['wachtwoord'];
$gebruikersnaam = stripslashes($gebruikersnaam);
$wachtwoord = stripslashes($wachtwoord);
$gebruikersnaam = mysqli_real_escape_string($con, $gebruikersnaam);
$wachtwoord = mysqli_real_escape_string($con, $wachtwoord);
$wachtwoord = md5($wachtwoord);
$sql = "SELECT * FROM paneel_leden WHERE gebruikersnaam='$gebruikersnaam' and wachtwoord='$wachtwoord'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result) == 1)
{
$_SESSION['gebruikersnaam'] = ucfirst($gebruikersnaam);
$sql = "UPDATE `paneel_leden` SET inactief='0' WHERE gebruikersnaam='$gebruikersnaam'";
if (mysqli_query($con, $sql) === true) {
header("Location: paneel/dashboard");} else {
}
}
else
{
$error = "Log opnieuw in, geen account? <a href='/registreer'>Maak er één!</a>";
}
?>
$error = "";
$gebruikersnaam = $_POST['gebruikersnaam'];
$wachtwoord = $_POST['wachtwoord'];
$gebruikersnaam = stripslashes($gebruikersnaam);
$wachtwoord = stripslashes($wachtwoord);
$gebruikersnaam = mysqli_real_escape_string($con, $gebruikersnaam);
$wachtwoord = mysqli_real_escape_string($con, $wachtwoord);
$wachtwoord = md5($wachtwoord);
$sql = "SELECT * FROM paneel_leden WHERE gebruikersnaam='$gebruikersnaam' and wachtwoord='$wachtwoord'";
$result = mysqli_query($con,$sql);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
if(mysqli_num_rows($result) == 1)
{
$_SESSION['gebruikersnaam'] = ucfirst($gebruikersnaam);
$sql = "UPDATE `paneel_leden` SET inactief='0' WHERE gebruikersnaam='$gebruikersnaam'";
if (mysqli_query($con, $sql) === true) {
header("Location: paneel/dashboard");} else {
}
}
else
{
$error = "Log opnieuw in, geen account? <a href='/registreer'>Maak er één!</a>";
}
?>
Toevoeging op 28/11/2016 14:24:44:
Bij index staat er wel if(isset($_POST['submit'])){ CODE VAN HIERBOVEN} ga ik denk zo even veranderen
- Ariën -:
Gelieve in het vervolg bij code de [code][/code]-tags gebruiken.
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Hier kan je meer lezen over de mogelijke opmaakcodes.
Alvast bedankt!
Toevoeging op 28/11/2016 14:33:37:
Ik kon ze al niet vinden ;P bedankt!
Gewijzigd op 28/11/2016 14:32:43 door - Ariën -
Verder is mysqli_real_escape_string() voor een wachtwoord niet nodig, want een wachtwoord in MD5 bevat toch alleen maar hexadecimale tekens. Los daarvan is MD5 behoorlijk verouderd.
En zou je voortaan de code-tags op het forum willen gebruiken?
Gewijzigd op 28/11/2016 14:35:46 door - Ariën -
Toevoeging op 28/11/2016 14:37:46:
Maar dit probleem heb ik ook bij het registreren, de gebruikersnaam controleert die, maar de email niet..
Dan neemt niet weg dat md5() behoorlijk zwak blijft. Gebruik liever de password_hash() en password_verify() functies.
okay, zal ik doen
- compleet willekeurige inspring
- het compleet ontbreken van annotatie, *wat* zou deze code uberhaupt moeten doen?
Daarnaast controleer je niet of er resultaten zijn maar haal je deze meteen op...
Is het mogelijk dat eenzelfde gebruiker meerdere promotags heeft? In het algemeen: hoe luidt het gedrag van promotags.
En als het loggen van "paneelacties" een terugkerend fenomeen is loont het misschien de moeite om hier een functie voor te introduceren?
Ik ga straks ook even overnieuw beginnen, want heb nieuwe dingen toegevoegd en door al die spaghetti code is het erg moeilijk te verbeteren.
Toevoeging op 28/11/2016 15:38:12:
- Ariën - op 28/11/2016 14:42:53:
Dan neemt niet weg dat md5() behoorlijk zwak blijft. Gebruik liever de password_hash() en password_verify() functies.
Als ik deze functie gebruik, kan ik niet meer inloggen. Ik heb het ook bij registreren die functie gedaan (password_hash()) met 2 values
Toevoeging op 28/11/2016 17:46:20:
Hebbes! Ik moet niet <code>
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam'] || $promotag == $result['promotag']){
$error = 'error';
}</code> maar dit doen: <code>
$sql = "SELECT * FROM paneel_promotags WHERE gebruikersnaam='$gebruikersnaam'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($gebruikersnaam == $result['gebruikersnaam']){
$error = 'error';
}
$sql = "SELECT * FROM paneel_promotags WHERE promotag='$promotag'";
$result = mysqli_query($con,$sql);
$result = mysqli_fetch_array($result);
if($promotag== $result['promotag']){
$error = 'error';
</code>
Allemaal hartstikke dank voor jullie hulp! Ik heb er zeer veel aan gehad en ook veel geleerd :D.
Gewijzigd op 28/11/2016 15:12:46 door - Rob -