Parse error: syntax error, unexpected T_STRING
Kan iemand me zeggen waar het in zit?
Ik krijg deze foutmelding : Parse error: syntax error, unexpected T_STRING in /config.php on line 61
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
<?php
error_reporting(0);
$locatie = $_SERVER['REQUEST_URI'];
$array = array();
$array[] = "mysql";
$array[] = "query";
$array[] = ")";
$array[] = ";";
$array[] = "}";
$array[] = "INSERT";
$array[] = "%40";
$array[] = "DROPTABLE";
$array[] = "TRUNCATE";
foreach($array as $foutbezig)
{
if(eregi($foutbezig,$locatie))
{
echo "<font color='red'>Wij laten geen hackers toe op onze website!</font>";
exit();
}
}
$url = substr($_SERVER['REQUEST_URI'], 1);
if(eregi('%', $url) or eregi(";", $url) or eregi("'", $url) or eregi("<", $url) or eregi(">", $url) or eregi(")", $url) or
eregi("query", $url) or eregi("mysql", $url) or eregi('"', $url) or eregi('config', $url) or eregi('ingelogd', $url) or
eregi("query", $url)){
echo "";
}
//Verbinding maken met de Database
//gegevens db connect
$dbhost = "localhost";
$dbuser = "xxxxx";
$dbpassword = "xxxxx";
$dbdatabase = "xxxxx";
$con = mysql_connect("localhost","tkguoenr_user","tkguoenr_pb);
$dbcon = mysql_select_db(".$dbdatabase.");
if (!$dbcon)
{
die('Couldn\'t find database: ' . mysql_error());
}
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
unset($dbhost, $dblogin, $dbpassword);
include('site_names.php');
function usernameToId($username)
{
$query1 = mysql_fetch_assoc("SELECT username, user_id FROM 'gebruikers' WHERE 'username' = '".$username."'");
while ($data = mysql_fetch_array($query1))
{
return $data['user_id'];
}
}
function userIdToName($user_id)
{
$query = mysql_query("SELECT * FROM `gebruikers` WHERE `user_id` = '".$user_id."'");
while ($data = mysql_fetch_array($query))
{
return $data['username'];
}
}
function getPokemonTeamPower($username)
{
$power = 0;
$query = mysql_query("SELECT * FROM `pokemon_speler` WHERE `opzak` = 'ja' && `user_id` = '".usernameToId($username)."'");
while ($data = mysql_fetch_array($query))
{
$power = $power + $data['totalexp'];
}
return $power;
}
function calculateClanPower($clan_naam)
{
$power = 0;
$query = mysql_query("SELECT * FROM `gebruikers` WHERE `clan` = '".$clan_naam."'");
while ($data = mysql_fetch_array($query))
{
$power = $power + getPokemonTeamPower($data['username']);
}
return $power;
}
if (rand(1,5) == 3)
{
//1 op gemiddeld 5x dat iemand de pagina laadt wordt clan power gerefresht
$query = mysql_query("SELECT * FROM `clans`");
while ($data = mysql_fetch_array($query)){
mysql_query("UPDATE `clans` SET `clan_power` = '".calculateClanPower($data[clan_naam])."' WHERE `clan_naam` = '".$data['clan_naam']."'");
}
}
?>
error_reporting(0);
$locatie = $_SERVER['REQUEST_URI'];
$array = array();
$array[] = "mysql";
$array[] = "query";
$array[] = ")";
$array[] = ";";
$array[] = "}";
$array[] = "INSERT";
$array[] = "%40";
$array[] = "DROPTABLE";
$array[] = "TRUNCATE";
foreach($array as $foutbezig)
{
if(eregi($foutbezig,$locatie))
{
echo "<font color='red'>Wij laten geen hackers toe op onze website!</font>";
exit();
}
}
$url = substr($_SERVER['REQUEST_URI'], 1);
if(eregi('%', $url) or eregi(";", $url) or eregi("'", $url) or eregi("<", $url) or eregi(">", $url) or eregi(")", $url) or
eregi("query", $url) or eregi("mysql", $url) or eregi('"', $url) or eregi('config', $url) or eregi('ingelogd', $url) or
eregi("query", $url)){
echo "";
}
//Verbinding maken met de Database
//gegevens db connect
$dbhost = "localhost";
$dbuser = "xxxxx";
$dbpassword = "xxxxx";
$dbdatabase = "xxxxx";
$con = mysql_connect("localhost","tkguoenr_user","tkguoenr_pb);
$dbcon = mysql_select_db(".$dbdatabase.");
if (!$dbcon)
{
die('Couldn\'t find database: ' . mysql_error());
}
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
unset($dbhost, $dblogin, $dbpassword);
include('site_names.php');
function usernameToId($username)
{
$query1 = mysql_fetch_assoc("SELECT username, user_id FROM 'gebruikers' WHERE 'username' = '".$username."'");
while ($data = mysql_fetch_array($query1))
{
return $data['user_id'];
}
}
function userIdToName($user_id)
{
$query = mysql_query("SELECT * FROM `gebruikers` WHERE `user_id` = '".$user_id."'");
while ($data = mysql_fetch_array($query))
{
return $data['username'];
}
}
function getPokemonTeamPower($username)
{
$power = 0;
$query = mysql_query("SELECT * FROM `pokemon_speler` WHERE `opzak` = 'ja' && `user_id` = '".usernameToId($username)."'");
while ($data = mysql_fetch_array($query))
{
$power = $power + $data['totalexp'];
}
return $power;
}
function calculateClanPower($clan_naam)
{
$power = 0;
$query = mysql_query("SELECT * FROM `gebruikers` WHERE `clan` = '".$clan_naam."'");
while ($data = mysql_fetch_array($query))
{
$power = $power + getPokemonTeamPower($data['username']);
}
return $power;
}
if (rand(1,5) == 3)
{
//1 op gemiddeld 5x dat iemand de pagina laadt wordt clan power gerefresht
$query = mysql_query("SELECT * FROM `clans`");
while ($data = mysql_fetch_array($query)){
mysql_query("UPDATE `clans` SET `clan_power` = '".calculateClanPower($data[clan_naam])."' WHERE `clan_naam` = '".$data['clan_naam']."'");
}
}
?>
Op lijn 42 ben je een " vergeten op het einde.
-eregi() verouderd
-juiste gebruik van quotes alsjeblieft
-foutafhandeling met die() niet juist
-ik zou hier niet je wachtwoord neerzetten
-geen backticks in je queries
-sql injectie beveiligen
-nette quiries, geen *
probeer eens de error reporting aan te zetten, dan was je dat ook tegengekomen
dixi
Toevoeging op 15/07/2013 15:43:13:
het nut van regel 6 tot 31 ontgaat met totaal trouwens. als je gewoon een gedegen sql-injectie beveiliging bouwt (dat is dus in de query, niet op deze manier) heb je dat allemaal niet nodig
Gewijzigd op 15/07/2013 15:45:00 door Jeroen VD
Regel 61: verander mysql_fetch_assoc("SELECT username... in mysql_query("SELECT username...
Wat kan ik wel gebruiken ipv. eregi()?
dixi
Ok, thanx, een goede mysql injectie, wat moet ik daarvoor aanpassen?
en beter nog is PDO of MySQLi te gebruiken
Jesse Weikamp op 15/07/2013 16:17:18:
Ok, thanx, een goede mysql injectie, wat moet ik daarvoor aanpassen?
Overal en altijd waar je "user data" gebruikt om een mySQL string te bouwen, moet je die string escapen.
Voor strings:
bv.
Code (php)
1
2
3
2
3
<?php
$sql = "SELECT id, naam FROM gebruikers WHERE clan = '" . mysql_real_escape_string($clan_naam) . "'"
?>
$sql = "SELECT id, naam FROM gebruikers WHERE clan = '" . mysql_real_escape_string($clan_naam) . "'"
?>
Voor integers kan je ook type casten naar integer.
bv.
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$sql = "SELECT id, naam FROM gebruikers WHERE id = " . (int) $id ;
// ofwel
$sql = "SELECT id, naam FROM gebruikers WHERE id = " . intval($id) ;
?>
$sql = "SELECT id, naam FROM gebruikers WHERE id = " . (int) $id ;
// ofwel
$sql = "SELECT id, naam FROM gebruikers WHERE id = " . intval($id) ;
?>
Gewijzigd op 15/07/2013 16:39:47 door Kris Peeters