query wordt niet uitgevoerd
Het is best uitgebreid, maar er is iets dat niet goed gaat.
Error reporting geeft geen error. Het probleem is dat de query niet wordt uitgevoerd op regel 36.
Waar kan dit aan liggen? Alles werkt perfect behalve die ene query. De sessions worden wel gewoon gevuld van gegevens die uit eerdere query's komen.
hier is het script:
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?PHP
session_start();
ob_start();
mysql_connect('', '', '');
mysql_select_db('') or die ('Er is iets fout gegaan');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE BINARY naam='".mysql_real_escape_string($_POST['loginnaam'])."' AND BINARY wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
$row = mysql_fetch_assoc($query);
if($aantal==1)
{
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$session = md5(mt_rand(0, 999999999));
mysql_query("DELETE FROM sessions WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."'");
mysql_query("INSERT INTO sessions (naam,ip,session) VALUES ('".mysql_real_escape_string($_POST['loginnaam'])."','".$_SERVER['REMOTE_ADDR']."','".$session."')");
mysql_query("UPDATE leden SET loginip='".$_SERVER['REMOTE_ADDR']."' AND loginaantal='+1' WHERE naam='".$row['naam']."'");
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
setcookie(onthoudLogin, $session, 60*60*24*30, pad, domein);
}
header('location: /me');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
}
?>
session_start();
ob_start();
mysql_connect('', '', '');
mysql_select_db('') or die ('Er is iets fout gegaan');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE BINARY naam='".mysql_real_escape_string($_POST['loginnaam'])."' AND BINARY wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
$row = mysql_fetch_assoc($query);
if($aantal==1)
{
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$session = md5(mt_rand(0, 999999999));
mysql_query("DELETE FROM sessions WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."'");
mysql_query("INSERT INTO sessions (naam,ip,session) VALUES ('".mysql_real_escape_string($_POST['loginnaam'])."','".$_SERVER['REMOTE_ADDR']."','".$session."')");
mysql_query("UPDATE leden SET loginip='".$_SERVER['REMOTE_ADDR']."' AND loginaantal='+1' WHERE naam='".$row['naam']."'");
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
setcookie(onthoudLogin, $session, 60*60*24*30, pad, domein);
}
header('location: /me');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
}
?>
Gewijzigd op 02/03/2012 17:04:07 door Jan terhuijzen
Probeer eens:
Uhm, probeer deze query eens in phpadmin uit te voeren en kijk wat die zegt over het gebruik van "loginaantal = '+1'".
Of zet gewoon error reporting aan, dan krijg je hier ongetwijfeld ook een melding van.
Gewijzigd op 02/03/2012 17:04:55 door Erwin H
ik heb ook al gekeken of de rij namen goed zijn getypt
Gewijzigd op 02/03/2012 17:06:55 door jan terhuijzen
Een form post controleer je niet door te controleren op een $_POST, maar met $_SERVER['REQUEST_METHOD'] == 'POST'
Het is zinloos om empty over $_POST/$_GET enz te halen, dus weg met die functie, welke je overigens nooit in je code wilt gebruiken. Zo ook gebruik je uiteraard ook geen or die() constructies.
Voor de rest, leer je code zelf te debuggen.
Note: op deze manier kunnen we je niet helpen want je vertelt ons geen zak over wat de $_POST / $_GET / $_SESSION wel dan niet bevat, laat staan dat je ons vertelt of er parse / warnings ed gegeven worden.
Ik heb gewoon een tabel met leden in phpmyadmin.
ik doe een query uitvoeren met het SQL venster in phpmyadmin:
als ik nu bijvoorbeeld in de rij van de naam "Jan" loginip wil veranderen naar 000.000.000 dan gaat dat niet, ook weer zonder een error die phpmyadmin geeft
Edit:
Noppes Homeland, ik heb al gezegt dat php me geen error geeft. geen parse error, geen fatal error, niks. ik heb elke error reporting aan staan.
En ik gebruik de functie empty om het te kunnen zeggen als een bezoeker iets niet invult.
Toevoeging op 02/03/2012 17:25:42:
Ik heb wat in het script aangepast. De query geeft nu 0 terug. en in de database wordt ook 0 gezet.
weet iemand hoe dit kan?
Gewijzigd op 02/03/2012 17:15:59 door jan terhuijzen
O dat heb ik ook al eens gehad! ik weet ook niet waarom maar ik denk dat hier iemand anders het wel weet.
Wel zie ik ob_start();
Echo je query. Klopt die met wat je verwacht?
Jan terhuijzen op 02/03/2012 17:11:17:
Ik heb wat in het script aangepast. De query geeft nu 0 terug. en in de database wordt ook 0 gezet.
weet iemand hoe dit kan?
weet iemand hoe dit kan?
Je hebt iets veranderd. Je geeft alleen niet aan wat.
Klopt de structuur van de tabel wel?
Harry hogeveen op 02/03/2012 17:26:49:
O dat heb ik ook al eens gehad! ik weet ook niet waarom maar ik denk dat hier iemand anders het wel weet.
Lekker zinvolle bijdrage :(
Gewijzigd op 02/03/2012 18:04:06 door Obelix Idefix
Probeer het eerst eens als volgt... ik heb achter de querys or die(mysql_error()) gezet, eens kijken of die een error geeft
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<?PHP
session_start();
ob_start();
mysql_connect('', '', '');
mysql_select_db('') or die ('Er is iets fout gegaan');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE BINARY naam='".mysql_real_escape_string($_POST['loginnaam'])."' AND BINARY wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
$row = mysql_fetch_assoc($query);
if($aantal==1)
{
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$session = md5(mt_rand(0, 999999999));
mysql_query("DELETE FROM sessions WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."'") or die(mysql_error());
mysql_query("INSERT INTO sessions (naam,ip,session) VALUES ('".mysql_real_escape_string($_POST['loginnaam'])."','".$_SERVER['REMOTE_ADDR']."','".$session."')") or die(mysql_error()'';
mysql_query("UPDATE leden SET loginip='".$_SERVER['REMOTE_ADDR']."' AND loginaantal='+1' WHERE naam='".$row['naam']."'") or die(mysql_error());
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
setcookie(onthoudLogin, $session, 60*60*24*30, pad, domein);
}
header('location: /me');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
}
?>
session_start();
ob_start();
mysql_connect('', '', '');
mysql_select_db('') or die ('Er is iets fout gegaan');
if(isset($_POST['login']))
{
if(!empty($_POST['loginnaam']))
{
if(!empty($_POST['wachtwoord']))
{
$sql = "SELECT id,naam,wachtwoord,emailbevestigd,blokkade,rang FROM leden WHERE BINARY naam='".mysql_real_escape_string($_POST['loginnaam'])."' AND BINARY wachtwoord='".mysql_real_escape_string($_POST['wachtwoord'])."'";
$query = mysql_query($sql);
$aantal = mysql_num_rows($query);
$row = mysql_fetch_assoc($query);
if($aantal==1)
{
if($row['emailbevestigd'] !== 'nee')
{
if($row['blokkade'] !== 'blokkade')
{
if($row['rang'] == 'admin')
{
$_SESSION['rang'] = 'admin';
}
if($row['rang'] == 'moderator')
{
$_SESSION['rang'] = 'moderator';
}
// Alles is gecontroleerd
$session = md5(mt_rand(0, 999999999));
mysql_query("DELETE FROM sessions WHERE naam='".mysql_real_escape_string($_POST['loginnaam'])."'") or die(mysql_error());
mysql_query("INSERT INTO sessions (naam,ip,session) VALUES ('".mysql_real_escape_string($_POST['loginnaam'])."','".$_SERVER['REMOTE_ADDR']."','".$session."')") or die(mysql_error()'';
mysql_query("UPDATE leden SET loginip='".$_SERVER['REMOTE_ADDR']."' AND loginaantal='+1' WHERE naam='".$row['naam']."'") or die(mysql_error());
$_SESSION['loguit'] = mt_rand(0, 999999);
$_SESSION['naam'] = $row['naam'];
$_SESSION['id'] = $row['id'];
if(isset($_POST['checklogin']))
{
setcookie(onthoudLogin, $session, 60*60*24*30, pad, domein);
}
header('location: /me');
} else {
echo 'Je account is geblokkeerd';
}
} else {
echo 'Je emailaderes is niet bevestigd';
}
} else {
echo 'Onjuist wachtwoord of gebruikersnaam';
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
} else {
echo ('<div class="arhoeken"><b class="arb1"></b><b class="arb2"></b><b class="arb3"></b><b class="arb4"></b><div class="arboxinhoud">
Vul een gebruikersnaam en wachtwoord in om in te loggen</div><b class="arb4"></b><b class="arb3"></b><b class="arb2"></b><b class="arb1"></b></div>');
}
}
?>
Gewijzigd op 02/03/2012 19:13:53 door Martin Meijer