waarde verloren na insert
ik insert een aantal waardes met succes
vlak achter die insert vraag ik 1 van de waardes op, die moet dan tezien zijn in een succes message, en je verderwijzen naar een bepaalde pagina adhv dat getal ...
het inserten lukt zonder probleem, het id zit in de database
maar in de message en forward helemaal onderaan, krijg ik de waarde 0 ...
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
include("./includes/egl_inc.php");
$secure = new secure();
$secure->secureGlobals();
page_protect();
session_start();
$playerid = $_SESSION['tid'];
$matchidcheck = $_POST['match'];
if($_SESSION['user'])
{
global $config;
$matchcheck = mysql_query("SELECT status FROM ffa_matches where id=$matchidcheck");
while($row = mysql_fetch_array($matchcheck))
{
$matchcheckcheck = $row['status'] ;
$matchcheckcheckstr = (string) $matchcheckcheck;
}
if ($matchcheckcheckstr == '1')
{
$mes="This match is full";
return error($mes,'./ffamatches.php');
}
$vote1 = $_POST['map1'];
$vote2 = $_POST['map2'];
$vote3 = $_POST['map3'];
$votecheck = mysql_fetch_array(mysql_query("SELECT id FROM ffa_mapvotes WHERE playerid=$playerid and matchid=$matchidcheck"));
$votechecker = $votecheck[id];
$vote1check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote1'"));
$vote1checker = $vote1check[map];
$vote2check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote2'"));
$vote2checker = $vote2check[map];
$vote3check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote3'"));
$vote3checker = $vote3check[map];
if (!$votechecker)
{
$insertSite_sql = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote1,'$vote1checker')";
$insertSite= mysql_query($insertSite_sql);
$insertSite_sql2 = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote2,'$vote2checker')";
$insertSite2= mysql_query($insertSite_sql2);
$insertSite_sql3 = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote3,'$vote3checker')";
$insertSite3= mysql_query($insertSite_sql3);
$mes="$matchidcheck Vote Succesfull ... Please Wait ...";
return success($mes,'./ffacheckin.php?match=$matchidcheck');
}
$mes="You cannot vote again !";
return error($mes);
}
include("$config[html]");
?>
vervang ik de laatste regel door
return success($mes,'./ffacheckin.php?match=122');
werkt het wel
dus men waarde van $matchidcheck is ineens weg. hoe kan dit?
include("./includes/egl_inc.php");
$secure = new secure();
$secure->secureGlobals();
page_protect();
session_start();
$playerid = $_SESSION['tid'];
$matchidcheck = $_POST['match'];
if($_SESSION['user'])
{
global $config;
$matchcheck = mysql_query("SELECT status FROM ffa_matches where id=$matchidcheck");
while($row = mysql_fetch_array($matchcheck))
{
$matchcheckcheck = $row['status'] ;
$matchcheckcheckstr = (string) $matchcheckcheck;
}
if ($matchcheckcheckstr == '1')
{
$mes="This match is full";
return error($mes,'./ffamatches.php');
}
$vote1 = $_POST['map1'];
$vote2 = $_POST['map2'];
$vote3 = $_POST['map3'];
$votecheck = mysql_fetch_array(mysql_query("SELECT id FROM ffa_mapvotes WHERE playerid=$playerid and matchid=$matchidcheck"));
$votechecker = $votecheck[id];
$vote1check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote1'"));
$vote1checker = $vote1check[map];
$vote2check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote2'"));
$vote2checker = $vote2check[map];
$vote3check = mysql_fetch_array(mysql_query("SELECT map FROM ffa_maplists WHERE id='$vote3'"));
$vote3checker = $vote3check[map];
if (!$votechecker)
{
$insertSite_sql = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote1,'$vote1checker')";
$insertSite= mysql_query($insertSite_sql);
$insertSite_sql2 = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote2,'$vote2checker')";
$insertSite2= mysql_query($insertSite_sql2);
$insertSite_sql3 = "INSERT INTO ffa_mapvotes (matchid,playerid,mapid,mapname) VALUES
($matchidcheck,$playerid,$vote3,'$vote3checker')";
$insertSite3= mysql_query($insertSite_sql3);
$mes="$matchidcheck Vote Succesfull ... Please Wait ...";
return success($mes,'./ffacheckin.php?match=$matchidcheck');
}
$mes="You cannot vote again !";
return error($mes);
}
include("$config[html]");
?>
vervang ik de laatste regel door
return success($mes,'./ffacheckin.php?match=122');
werkt het wel
dus men waarde van $matchidcheck is ineens weg. hoe kan dit?
Gewijzigd op 06/05/2012 16:26:00 door Groovez acid
Toevoeging op 06/05/2012 16:32:18:
$vars buiten quotes houden
Script is lek -> sql-injection
Om een array-key horen quotes
Gewijzigd op 06/05/2012 16:28:48 door - SanThe -
verder veels te veel queries, dat kan je samenvoegen.
variabelen buiten quotes
foutafhandeling, zou je misschien iets opleveren
kan je een voorbeeld geven van hoe ik men vars buiten die quotes haal?
maar in dit geval lost het mijn probleem niet op
er zit plots een 0 in mijn $matchidcheck ipv het id ...
Toevoeging op 06/05/2012 16:48:50:
het waren de single ' in return success($mes,'./ffacheckin.php?match=$matchidcheck');
toch bedankt voor de moeite
Gewijzigd op 06/05/2012 16:42:50 door groovez acid
Groovez acid op 06/05/2012 16:24:58:
vervang ik de laatste regel door
return success($mes,'./ffacheckin.php?match=122');
werkt het wel
dus men waarde van $matchidcheck is ineens weg. hoe kan dit?
vervang ik de laatste regel door
return success($mes,'./ffacheckin.php?match=122');
werkt het wel
dus men waarde van $matchidcheck is ineens weg. hoe kan dit?
Dan lijkt het in de function error() te zitten.