PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Get übertragung klappt nicht für eintrag in db


[inSane]
21.03.2008, 01:12:39
Hallo Jungs,
Folgendes Problem
bin grad am schreiben eines forums: und genauer bin ich grad dabei das er dem topic nur die Einträge zu ordnet wo in des topic reingehören hab 2 tabellen:
1.Tabelle

'Forum' mit
f_id
f_autor
f_thema
f_beschreibung
f_datum

2.Tabelle

'Inhalt' mit
I_id
I_f_id (verknüfung mit f_id)
I_text
I_datum
I_autor

php:

$f_id = $_Get["f_id"];
echo"ID = $f_id";

switch ( $f_id )
{
case '':
$query_gb = mysql_query ( " SELECT *
FROM `Inhalt`
WHERE I_f_id = '$f_id'
ORDER BY I_id ASC " );

die get info wird über den link:
echo" <a href=\"www.drumstickz.net/10b/?page=topic&f_id=$f_id\">link</a>";

gesendet und in der adressleiste erscheint auch www.drumstickz.net/10b/?page=topic&f_id=1
mit der zeile :
echo"ID = $f_id";
hab ich überprüft ob die id übertragen wird
wird sie aber anscheindend nich

wo liegt der fehler bei der übertragung ?
ach und noch ne frage kann mer auch daten über die 'post'-method ohne <input>-tags schicken wenn ja , wie ?
inSane

[inSane]
21.03.2008, 11:19:20
hallo,
also nach dem gestern um 3 uhr keine antwort mer kam :D
hab ich weiter probiert und heut früh kam dann ein verplüffendes ergebniss raus :D

hier script 1 das partu nich funktionieren wollte :


$f_id = $_Get["f_id"];

switch ( $f_id )
{
case '':
$query_gb = mysql_query ( " SELECT *
FROM `Inhalt`
WHERE I_f_id = '$f_id'
ORDER BY I_id ASC " );

while ( $fetch_gb = mysql_fetch_array ( $query_gb ) )
{
bla bla
}


und hier Nummer 2 das durch zufall entstand:



$f_t_id = $_Get["f_id"];

switch ( $f_t_id )
{
case '':
$query_gb = mysql_query ( " SELECT *
FROM `Inhalt`
WHERE I_f_id = '$f_id'
ORDER BY I_id ASC " );

while ( $fetch_gb = mysql_fetch_array ( $query_gb ) )
{
bla bla
}


kann mir jemand sagen wieso das funktioniert ? :D

knight1
22.03.2008, 09:19:42
Hi inSane,
das Zauberwort lautet register_globals (http://www.php.net/manual/de/security.globals.php).
Ist register_globals auf on werden alle per GET bzw. POST übergebenen Variablen in den Globalen-Namensraum übernommen.
Dies birgt einige Risiken. Daher ist register_globals bei den meisten Webhostern auf off.
Daher kann Dein erster Ansatz so nicht funktionieren.

Am besten Du gewöhnst Dir an alles mit dem Superglobalen Array $_GET oder $_POST (Je nachdem was Du in dem vorausgehenden Formular als method angegeben hast) zu machen. Damit bist immer auf der sicheren Seite.


Kai aka Knight1

doppelklick
22.03.2008, 09:47:51
Hallo,

versteckte Felder kannst du mit

<input type='hidden' name='variablenname' value='wert'>

echo"<input type='hidden' name='variablenname' value='wert'>";

übergeben.

Oder Du startest eine Session und weist der Variable $_SESSION["variablenname"] den Wert zu den du möchtest. Diese Variable steht Dir dann auf jeder Seite auf der Du die Session gestartet hast zur Verfügung

doppelklick