'unexpected end of file' melding
Ik ben bezig met een scriptje maar ik ben vast gelopen en krijg een wit scherm ik zie de fout even niet misschien dat jullie mij kunnen helpen
Error in log : PHP Parse error: syntax error, unexpected end of file in geven.php on line 136\n'
Scriptje heb ik even op www.koffiebar-osdorp.nl/php.txt gezet als ik hem hier zet knipt hij hem in delen..
hoop dat er iemand is die mij kunt helpen en verbeteren..
- Ariën -:
Titel aangepast naar iets wat duidelijker is./modedit]
Gewijzigd op 17/08/2017 13:59:01 door - Ariën -
The requested URL /php.txt was not found on this server.
Apache/2.4.7 (Ubuntu) Server at www.koffiebar-osdorp.nl Port 80
Heb hem via een Pm naar je gestuurd hoop dat je hem kunt zien alvast bedankt
Mike Visser op 17/08/2017 04:09:03:
Heb hem via een Pm naar je gestuurd hoop dat je hem kunt zien alvast bedankt
Daar zijn de ander forumleden mee geholpen
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?
{
header('Location:./');exit;
}
define('ON_PAGE', __FILE__);
if ( !USER_SESSION )
{
redirect('./');
}
$land = Array(1 => 'belgie','duitsland','engeland','frankrijk','griekenland','italie','nederland','oostenrijk','zwitserland','usa','japan','colombia','rusland','turkije','marokko');
$tableName = Array(1 => 'black','casino','getallen','keno','kogelfabriek','landowner','redlightdistrict','reizen','slot');
$msg = '';
$speler = '';
$access = false;
if ( $data['level'] == 255 )
{
$access = true;
if ( isset($_POST['speler']) )
{
$newland = ( isset($_POST['newland']) ) ? $_POST['newland'] : 0 ;
if ( $newland > 0 && $newland < 16 )
{
$optie = ( isset($_POST['optie']) ) ? $_POST['optie'] : 0 ;
if ( $optie > 0 && $optie < 11 )
{
$speler = trim($_POST['speler']);
if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$speler) )
{
if ( isset($_POST['submit1']) )
{
$result = mysql_query('SELECT id FROM users WHERE login=\''.$speler.'\'');
if ( $info = mysql_fetch_assoc($result) )
{
mysql_query('UPDATE '.$tableName.' SET user_id=' . $info['id'] . ', WHERE land_id=' . $newland);
sms(1,$info['id'],'Eigenaaroptie','Je hebt de eigenaaroptie gekregen waar je voor hebt gebelt');
$msg = 'U heeft ' . $speler . ' een '.$tableName.' eigenaaroptie gegeven.';
}
else
{
$msg = 'Deze Speler bestaat niet.';
}
}
else
{
$msg = 'Je moet wel een optie kiezen.';
}
}
else
{
$msg = 'Je moet wel een land kiezen.';
}
}
?>
<div id="content">
<div class="post">
<div class="post-title">
<h2>Scriptje</h2>
</div>
<?
if ( $access )
{
?>
<form method="post">
<table width="100%">
<tr><th>geven</th></tr>
<?
if ( $msg != '' )
{
?>
<tr><td><?=$msg?></td></tr>
<?
}
?>
<tr>
<td align="center">
Speler:
<input type="text" name="speler" value="<?=$speler?>"><br /><br />
<label for="type1">Welk land</label>
<select name="newland">
<option value="1">Belgie</option>
<option value="2">Duitsland</option>
<option value="3">Engeland</option>
<option value="4">Frankrijk</option>
<option value="5">Griekenland</option>
<option value="6">Italie</option>
<option value="7">Nederland</option>
<option value="8">Oostenrijk</option>
<option value="9">Zwitserland</option>
<option value="10">Usa</option>
<option value="11">Japan</option>
<option value="12">Colombia</option>
<option value="13">Rusland</option>
<option value="14">Turkije</option>
<option value="15">Marokko</option>
</select><br />
<label for="type2">Welke Eigenaaroptie</label>
<select name="optie">
<option value="1">Blackjack</option>
<option value="2">Roulette</option>
<option value="3">Getallenspel</option>
<option value="4">Keno</option>
<option value="5">Kogelfabriek</option>
<option value="6">Landowner</option>
<option value="7">Redlightdistrict</option>
<option value="8">Vliegveld</option>
<option value="9">Gokkast</option>
<option value="10">Ziekenhuis</option>
</select><br />
</td>
</tr>
</table>
</form>
<?
}
else
{
?>
<table width="100%">
<tr><th>Admin</th></tr>
<tr><td>Dit is alleen toegankelijk voor ADMINS.</td></tr>
</table>
<?
}
mysql_close($MySQL);
?>
</div>
</div>
{
header('Location:./');exit;
}
define('ON_PAGE', __FILE__);
if ( !USER_SESSION )
{
redirect('./');
}
$land = Array(1 => 'belgie','duitsland','engeland','frankrijk','griekenland','italie','nederland','oostenrijk','zwitserland','usa','japan','colombia','rusland','turkije','marokko');
$tableName = Array(1 => 'black','casino','getallen','keno','kogelfabriek','landowner','redlightdistrict','reizen','slot');
$msg = '';
$speler = '';
$access = false;
if ( $data['level'] == 255 )
{
$access = true;
if ( isset($_POST['speler']) )
{
$newland = ( isset($_POST['newland']) ) ? $_POST['newland'] : 0 ;
if ( $newland > 0 && $newland < 16 )
{
$optie = ( isset($_POST['optie']) ) ? $_POST['optie'] : 0 ;
if ( $optie > 0 && $optie < 11 )
{
$speler = trim($_POST['speler']);
if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$speler) )
{
if ( isset($_POST['submit1']) )
{
$result = mysql_query('SELECT id FROM users WHERE login=\''.$speler.'\'');
if ( $info = mysql_fetch_assoc($result) )
{
mysql_query('UPDATE '.$tableName.' SET user_id=' . $info['id'] . ', WHERE land_id=' . $newland);
sms(1,$info['id'],'Eigenaaroptie','Je hebt de eigenaaroptie gekregen waar je voor hebt gebelt');
$msg = 'U heeft ' . $speler . ' een '.$tableName.' eigenaaroptie gegeven.';
}
else
{
$msg = 'Deze Speler bestaat niet.';
}
}
else
{
$msg = 'Je moet wel een optie kiezen.';
}
}
else
{
$msg = 'Je moet wel een land kiezen.';
}
}
?>
<div id="content">
<div class="post">
<div class="post-title">
<h2>Scriptje</h2>
</div>
<?
if ( $access )
{
?>
<form method="post">
<table width="100%">
<tr><th>geven</th></tr>
<?
if ( $msg != '' )
{
?>
<tr><td><?=$msg?></td></tr>
<?
}
?>
<tr>
<td align="center">
Speler:
<input type="text" name="speler" value="<?=$speler?>"><br /><br />
<label for="type1">Welk land</label>
<select name="newland">
<option value="1">Belgie</option>
<option value="2">Duitsland</option>
<option value="3">Engeland</option>
<option value="4">Frankrijk</option>
<option value="5">Griekenland</option>
<option value="6">Italie</option>
<option value="7">Nederland</option>
<option value="8">Oostenrijk</option>
<option value="9">Zwitserland</option>
<option value="10">Usa</option>
<option value="11">Japan</option>
<option value="12">Colombia</option>
<option value="13">Rusland</option>
<option value="14">Turkije</option>
<option value="15">Marokko</option>
</select><br />
<label for="type2">Welke Eigenaaroptie</label>
<select name="optie">
<option value="1">Blackjack</option>
<option value="2">Roulette</option>
<option value="3">Getallenspel</option>
<option value="4">Keno</option>
<option value="5">Kogelfabriek</option>
<option value="6">Landowner</option>
<option value="7">Redlightdistrict</option>
<option value="8">Vliegveld</option>
<option value="9">Gokkast</option>
<option value="10">Ziekenhuis</option>
</select><br />
</td>
</tr>
</table>
</form>
<?
}
else
{
?>
<table width="100%">
<tr><th>Admin</th></tr>
<tr><td>Dit is alleen toegankelijk voor ADMINS.</td></tr>
</table>
<?
}
mysql_close($MySQL);
?>
</div>
</div>
Alleen is dit niet de volledige code waarschijnlijk? Regel 136 is hier namelijk niet in aanwezig.
Als dit volledig zou zijn zou het een redirect loop opleveren. Om nog maar te zwijgen van het feit dat Location headers *absolute* URL's vragen.
Hierboven missen er nog een paar.
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
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
<?
if ( !defined('ON_INDEX') )
{
header('Location:./');exit;
}
define('ON_PAGE', __FILE__);
if ( !USER_SESSION )
{
redirect('./');
}
$land = Array(1 => 'belgie','duitsland','engeland','frankrijk','griekenland','italie','nederland','oostenrijk','zwitserland','usa','japan','colombia','rusland','turkije','marokko');
$tableName = Array(1 => 'black','casino','getallen','keno','kogelfabriek','landowner','redlightdistrict','reizen','slot');
$msg = '';
$speler = '';
if ( isset($_POST['speler']) )
{
$newland = ( isset($_POST['newland']) ) ? $_POST['newland'] : 0 ;
if ( $newland > 0 && $newland < 16 )
{
$optie = ( isset($_POST['optie']) ) ? $_POST['optie'] : 0 ;
if ( $optie > 0 && $optie < 11 )
{
$speler = trim($_POST['speler']);
if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$speler) )
{
$type = ( isset($_POST['type']) ) ? intval($_POST['type']) : 0 ;
if ( isset($_POST['submit']) )
{
$result = mysql_query('SELECT id FROM users WHERE login=\''.$speler.'\'');
if ( $info = mysql_fetch_assoc($result) )
{
mysql_query('UPDATE '.$tableName.' SET user_id=' . $info['id'] . ', WHERE land_id=' . $newland);
sms(1,$info['id'],'Eigenaaroptie','Je hebt de eigenaaroptie gekregen waar je voor hebt gebelt');
$msg = 'U heeft ' . $speler . ' een '.$tableName.' eigenaaroptie gegeven.';
}
else
{
$msg = 'Deze Speler bestaat niet.';
}
}
else
{
$msg = 'Je moet wel een optie kiezen.';
}
}
else
{
$msg = 'Je moet wel een land kiezen.';
}
}
else
{
$msg = 'Deze Speler bestaat niet.';
$speler = '';
}
}
}
?>
if ( !defined('ON_INDEX') )
{
header('Location:./');exit;
}
define('ON_PAGE', __FILE__);
if ( !USER_SESSION )
{
redirect('./');
}
$land = Array(1 => 'belgie','duitsland','engeland','frankrijk','griekenland','italie','nederland','oostenrijk','zwitserland','usa','japan','colombia','rusland','turkije','marokko');
$tableName = Array(1 => 'black','casino','getallen','keno','kogelfabriek','landowner','redlightdistrict','reizen','slot');
$msg = '';
$speler = '';
if ( isset($_POST['speler']) )
{
$newland = ( isset($_POST['newland']) ) ? $_POST['newland'] : 0 ;
if ( $newland > 0 && $newland < 16 )
{
$optie = ( isset($_POST['optie']) ) ? $_POST['optie'] : 0 ;
if ( $optie > 0 && $optie < 11 )
{
$speler = trim($_POST['speler']);
if ( preg_match('/^[a-zA-Z0-9_-]{3,16}$/',$speler) )
{
$type = ( isset($_POST['type']) ) ? intval($_POST['type']) : 0 ;
if ( isset($_POST['submit']) )
{
$result = mysql_query('SELECT id FROM users WHERE login=\''.$speler.'\'');
if ( $info = mysql_fetch_assoc($result) )
{
mysql_query('UPDATE '.$tableName.' SET user_id=' . $info['id'] . ', WHERE land_id=' . $newland);
sms(1,$info['id'],'Eigenaaroptie','Je hebt de eigenaaroptie gekregen waar je voor hebt gebelt');
$msg = 'U heeft ' . $speler . ' een '.$tableName.' eigenaaroptie gegeven.';
}
else
{
$msg = 'Deze Speler bestaat niet.';
}
}
else
{
$msg = 'Je moet wel een optie kiezen.';
}
}
else
{
$msg = 'Je moet wel een land kiezen.';
}
}
else
{
$msg = 'Deze Speler bestaat niet.';
$speler = '';
}
}
}
?>
- 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 17/08/2017 15:01:48 door - Ariën -
Ook wil ik je attenderen op het feit dat de mysql-functies in PHP 7 ter ziele zijn. Dus als je hosting op deze versie op zal stappen zal je script meteen niet meer werken. Ik raad je aan om MySQLi te gebruiken of PDO.
submit zit onderin het script niet in de code zoals hierboven anders kon ik natuurlijk geen error krijgen als (je moet wel een optie kiezen ) , het gaat om de error die ik niet weg krijg , hosting zal niet updaten ik heb een dedicated server , maar wel goeie tip , dit kan later altijd nog hopenlijk ziet iemand de fout.
$_POST['submit'] bestaat niet, dus ergens is die 'verborgen' submit-knop niet goed.
Regel 28 lijkt me ? if ( isset($_POST['submit']) ) zit er gewoon in
Ja, maar je hebt geen formulierveld met name="submit".
Aannemelijk lijkt mij dit de waarde van een submit. Je zegt zelf dat je een melding krijgt met: 'Je moet wel een optie kiezen.'
Die melding krijg je niet zomaar, je formulier moet immers wel verstuurd zijn.
Toevoeging op 17/08/2017 15:34:21:
- SanThe - op 17/08/2017 15:31:23:
Ja, maar je hebt geen formulierveld met name="submit".
Klopt, maar de TS zij net dit:
Quote:
submit zit onderin het script niet in de code zoals hierboven anders kon ik natuurlijk geen error krijgen als (je moet wel een optie kiezen )
Dus dan ben ik benieuwd hoe hij de boel verstuurd heeft. :P
Ikzelf prefereer altijd dit als controle:
Dan kijk je immers niet naar de submitknop. Maar het is wel de eerste stap die je doet in de verwerking van je formulier.
Gewijzigd op 17/08/2017 15:34:51 door - Ariën -
onderin het script staat <input type="submit" value="Geven">
Dat heeft geen name="..." en het staat niet tussen <form> en </form>.
Maar die heeft geen name-attribuut ;-)
Toevoeging op 17/08/2017 15:57:16:
ziet iemand toevallig deze fout ?
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE land_id=15' at line 1
verder raad ik wel aan om $newland te escapen met mysql(i)_real_escape_string(). Nu ben je behoorlijk vatbaar voor SQL-injection.
jup dat was de fout, ja ik maak het altijd eerst werkend en dan bouw ik pas de dingen in thanks voor de tip :)
sms(1,$info['id'],'Eigenaaroptie','Je hebt de eigenaaroptie gekregen waar je voor hebt gebeld');
Misschien kun je heel de zin iets duidelijker formuleren voor de speler/gebruiker?