$_GET ID Probleempje.
Ik ben bezig met een simpel forum scriptje te maken en langzaam uittebreiden , alleen kom ik met een probleempje nu ... Als ik dus een Forum topic id wil ophallen met http://../../../forum.php?id=1
dan laat hij de forum topicje zien alleen als ik ipv ID=1 er 9000000 of zo van maak dan laat hij alsnog de topic id 1 zien ...
Dus zit er een foutje in het script bij mij .. haha alleen waar weet ik nu dus niet en kan hem zo eerlijk gezegt ook niet vinden .. hmms misschien dat jullie een foutje erin zien :)?
B.v.d Alvast :)
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
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
<?php
ini_set ('display_errors', 0);
error_reporting (E_ALL);
include ("global.php");
echo '<h1>'; echo $website_titel; echo '</h1>';
//Nieuwsbericht met ID ophalen dmv ?id=
if($_GET['id']){
$sql = "
SELECT titel, naam, id, bericht, datum
FROM forum
ORDER BY id ASC, titel ASC
";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
echo htmlentities ($sql);
trigger_error (mysql_error ());
echo '</pre>';
}
while ($row = mysql_fetch_assoc ($res)) {
//script hier... opvragen van bericht etc.
echo '<b>Topic ID <i><u>'. $row['id'] .'</u></i></b>';
echo '
<table width="400" border="1">
<tr>
<td><p>Titel : ' . $row['titel'] .'</p></td>
</tr>
<tr>
<td>' . $row['bericht'] . '</p></td>
</tr>
<tr>
<td>Gepost door : ' . $row['naam'] .' Op : '. $row['datum'] .'</p></td>
</tr>
</table>';
}
} else {
echo'Sorry , De opgevraagde forum bericht bestaat helaas niet (Meer).<br /><a href="javascript:history.back();">Terug</a>
<br />';
}
echo $website_copyright;
?>
ini_set ('display_errors', 0);
error_reporting (E_ALL);
include ("global.php");
echo '<h1>'; echo $website_titel; echo '</h1>';
//Nieuwsbericht met ID ophalen dmv ?id=
if($_GET['id']){
$sql = "
SELECT titel, naam, id, bericht, datum
FROM forum
ORDER BY id ASC, titel ASC
";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
echo htmlentities ($sql);
trigger_error (mysql_error ());
echo '</pre>';
}
while ($row = mysql_fetch_assoc ($res)) {
//script hier... opvragen van bericht etc.
echo '<b>Topic ID <i><u>'. $row['id'] .'</u></i></b>';
echo '
<table width="400" border="1">
<tr>
<td><p>Titel : ' . $row['titel'] .'</p></td>
</tr>
<tr>
<td>' . $row['bericht'] . '</p></td>
</tr>
<tr>
<td>Gepost door : ' . $row['naam'] .' Op : '. $row['datum'] .'</p></td>
</tr>
</table>';
}
} else {
echo'Sorry , De opgevraagde forum bericht bestaat helaas niet (Meer).<br /><a href="javascript:history.back();">Terug</a>
<br />';
}
echo $website_copyright;
?>
Dit hoort altijd nog zo:
En waarschijnlijk wil je hier ook nog wel is_numeric() oid gebruiken.
Verder controleer je dan wel of die GET variabele bestaat, maar je gebruikt hem later nergens meer? Ik zou in je query bijvoorbeeld een WHERE clausule verwachten waarmee je het juiste bericht selecteert...
Niet om het 1 of ander maar klopt het dat er geen WHERE in je query zit?
Voorderest controleer je niet eens of $_GET['id'] wel een nummer is met is_numeric bijvoorbeeld
Edit:
Eindig weer als laatst -_-
Gewijzigd op 01/01/1970 01:00:00 door Mebus Hackintosh
ik heb hem even aangepast naar dit ,,
Alleen snap ik is_numeric niet ... ?
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
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
<?php
ini_set ('display_errors', 0);
error_reporting (E_ALL);
include ("global.php");
echo '<h1>'; echo $website_titel; echo '</h1>';
//Nieuwsbericht met ID ophalen dmv ?topic=
if($_GET['topic']){
$sql = "SELECT * FROM forum_01 WHERE id = ".$_GET['topic']."; ORDER BY id ASC ";
$sql2 = "SELECT * FROM forum_01 WHERE id = ".$_GET['topic']."; ";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
echo htmlentities ($sql);
trigger_error (mysql_error ());
echo '</pre>';
}
while ($row = mysql_fetch_assoc ($res)) {
//script hier... opvragen van bericht etc.
echo '<b>Topic ID <i><u>'. $row['id'] .'</u></i></b>';
echo '
<table width="400" border="1">
<tr>
<td><p>Titel : ' . $row['titel'] .'</p></td>
</tr>
<tr>
<td>' . $row['bericht'] . '</p></td>
</tr>
<tr>
<td>Gepost door : ' . $row['naam'] .' Op : '. $row['datum'] .'</p></td>
</tr>
</table>';
}
} else {
//Nu de foutmelding als forum bericht niet bestaat etc.
echo'Sorry , De opgevraagde forum bericht bestaat helaas niet (Meer).<br /><a href="javascript:history.back();">Terug</a>
<br />';
}
echo $website_copyright;
?>
ini_set ('display_errors', 0);
error_reporting (E_ALL);
include ("global.php");
echo '<h1>'; echo $website_titel; echo '</h1>';
//Nieuwsbericht met ID ophalen dmv ?topic=
if($_GET['topic']){
$sql = "SELECT * FROM forum_01 WHERE id = ".$_GET['topic']."; ORDER BY id ASC ";
$sql2 = "SELECT * FROM forum_01 WHERE id = ".$_GET['topic']."; ";
if (!$res = mysql_query ($sql)) {
echo '<pre>';
echo htmlentities ($sql);
trigger_error (mysql_error ());
echo '</pre>';
}
while ($row = mysql_fetch_assoc ($res)) {
//script hier... opvragen van bericht etc.
echo '<b>Topic ID <i><u>'. $row['id'] .'</u></i></b>';
echo '
<table width="400" border="1">
<tr>
<td><p>Titel : ' . $row['titel'] .'</p></td>
</tr>
<tr>
<td>' . $row['bericht'] . '</p></td>
</tr>
<tr>
<td>Gepost door : ' . $row['naam'] .' Op : '. $row['datum'] .'</p></td>
</tr>
</table>';
}
} else {
//Nu de foutmelding als forum bericht niet bestaat etc.
echo'Sorry , De opgevraagde forum bericht bestaat helaas niet (Meer).<br /><a href="javascript:history.back();">Terug</a>
<br />';
}
echo $website_copyright;
?>
Jah , die heb ik al gezien,gelezen alleen snap ik het nog niet , vandaar de reactie :)
forum_01... Nummers in een tabelnaam? Dat ruikt naar een fout datamodel, nummers zijn 999 van de 1000 keer fout.
Quote:
Finds whether a variable is a number or a numeric string
Geeft terug of een variabele een nummer of een numerieke string is. Lijkt me duidelijk, toch :-)?
Hoe bedoel je Frank , mag toch wel een Nummer in m,n DB tabel/DB gebruiken ? of nie :P?
Frank ziet alle ongewone dingen als foute dingen, tsja.
Wat je in de praktijk ziet, is dat vrijwel alle databases waarin men toch nummers gebruikt voor tabellen en/of kolommen, de boel niet goed is genormaliseerd. Dezelfde data staat op meerdere plaatsen in de database, dé manier om de grootste problemen aan te maken.
@Djemo: Jij laat mensen zeker graag aanmodderen met bugs, of niet dan? Geen beter vermaak dan leedvermaak.
Gewijzigd op 01/01/1970 01:00:00 door Frank -
Komen er wel bugs, dan is dat op dat moment een goed moment om iets over die tabelnaam te zeggen. Was jij overigens niet degene die zei dat je problemen pas moest behandelen als je ze had?
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Djemo schreef op 15.04.2008 22:27:
Frank, ik kan me niet indenken wat een nummertje meer of minder uitmaakt in de naam van een tabel. Het mag dan misschien niet overeen komen met jouw standaard de normalisatie syntaxis voor tabelnamen, als er verder geen bugs mee komen (welke ik me absoluut niet kan indenken) is het toch goed?
Komen er wel bugs, dan is dat op dat moment een goed moment om iets over die tabelnaam te zeggen. Was jij overigens niet degene die zei dat je problemen pas moest behandelen als je ze had?
Komen er wel bugs, dan is dat op dat moment een goed moment om iets over die tabelnaam te zeggen. Was jij overigens niet degene die zei dat je problemen pas moest behandelen als je ze had?
edit:
er zitten nog meer normalisatie-fouten in: $row['naam'] en dit uit 1 tabel halen kan natuurlijk niet.
Gewijzigd op 01/01/1970 01:00:00 door Terence Hersbach