$_GET ID Probleempje.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Kevichill

Kevichill

15/04/2008 12:43:00
Quote Anchor link
Hallo allemaal ,
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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
?>
 
PHP hulp

PHP hulp

24/04/2024 01:42:48
 
Joren de Wit

Joren de Wit

15/04/2008 12:46:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if($_GET['id']){
?>

Dit hoort altijd nog zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
if(isset($_GET['id']))
?>

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...
 
Jacco Engel

Jacco Engel

15/04/2008 12:47:00
Quote Anchor link
Niet om het 1 of ander maar klopt het dat er geen WHERE in je query zit?
 
Mebus  Hackintosh

Mebus Hackintosh

15/04/2008 12:48:00
Quote Anchor link
Logisch? Ik zie nergens in je WHERE clause $_GET['id'] staan..

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
 
Kevichill

Kevichill

15/04/2008 22:08:00
Quote Anchor link
Bedankt voor de reacties ,
ik heb hem even aangepast naar dit ,,
Alleen snap ik is_numeric niet ... ?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?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;
?>
 
Jesper Diovo

Jesper Diovo

15/04/2008 22:11:00
 
Kevichill

Kevichill

15/04/2008 22:14:00
Quote Anchor link
Jah , die heb ik al gezien,gelezen alleen snap ik het nog niet , vandaar de reactie :)
 
Frank -

Frank -

15/04/2008 22:14:00
Quote Anchor link
forum_01... Nummers in een tabelnaam? Dat ruikt naar een fout datamodel, nummers zijn 999 van de 1000 keer fout.
 
Jesper Diovo

Jesper Diovo

15/04/2008 22:16:00
Quote Anchor link
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 :-)?
 
Kevichill

Kevichill

15/04/2008 22:19:00
Quote Anchor link
Hoe bedoel je Frank , mag toch wel een Nummer in m,n DB tabel/DB gebruiken ? of nie :P?
 
Jesper Diovo

Jesper Diovo

15/04/2008 22:21:00
Quote Anchor link
Frank ziet alle ongewone dingen als foute dingen, tsja.
 
Frank -

Frank -

15/04/2008 22:23:00
Quote Anchor link
In een goed genormaliseerde database heb je nooit nummers nodig voor de namen van de tabel en/of kolomnamen. Er is altijd maar 1 tabel of 1 kolom met dezelfde soort data. En om nu overal een zinloze 1 achter te gaan zetten... Ik heb wel wat beters te doen.

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 -
 
Jesper Diovo

Jesper Diovo

15/04/2008 22:27:00
Quote Anchor link
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 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?
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Terence Hersbach

Terence Hersbach

16/04/2008 07:21:00
Quote Anchor link
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?


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
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.