Zum Inhalt springen

php page content - Variablen-Entgegennahme mittels $_GET?

Erstellt am 14. August 2006 · 6 Antworten · letzte Antwort am 15. August 2006

Tags: PHP, Frage

triskal ·

Hallo zusammen,

ich habe folgenden Seiteninhalt vom Typ PHP-Script erstellt (PHP page content habe ich erfolgreich installiert). Es handelt sich also nicht um ein externes Skript:

<?php
echo('<br /><b>Auswahl aller Stürmer<b>(nach Preis sortiert):<br /><br />');
  $qu = "SELECT id, name, verein, kaufpreis FROM game_spieler WHERE id > 0
    ORDER BY kaufpreis DESC";
  $result = mysql_query($qu);

  echo('<table class="text" width="320">');
  while ($row = mysql_fetch_array($result)) {
    echo('<tr><td><a href="index.php?id=42?spid='.$row['id'].'" target="_self">
      '.$row['name'].'</td>');
    echo('<td align="center">'.$row['verein'].'</td>');
    echo('<td align="right">'.$row['kaufpreis'].'</td></tr>');
  }
  echo('</table>');
?>

Die Seite wird wie gewünscht dargestellt. Wenn ich mit der Maus über die unterschiedlichen Links fahre, erscheint in der Statusleiste des Browsers genau der Link mit der Seiten-Id und der Spieler-Id (spid) die ich erwarte. Beim Klick auf einen Link erscheint die gewünschte Seite, die folgenden Seiteninhalt enthält (ebenfalls vom Typ PHP-Script):

<?php
$spid = $_GET['spid'];
echo('<br /><b>Spieler: '.$spid.'</b><br /><br />');
?>

Lasse ich mir die Seite anzeigen, wird allerdings keine Spieler-Id angezeigt. Der Bereich bleibt leer. Ich vermute, dass der Fehler in der $_GET-Zeile liegt, ist das tatsächlich der Fall? Ist meine Herangehensweise überhaupt sinnvoll/richtig? Sollte ich eine Variablenspeicherung via Templates in Betracht ziehen? Wenn ja, wie genau funktioniert das, bzw. wie setze ich das am sinnvollsten um?

Bin noch ein Typo3-Frischling und freue mich über jede Hilfe.
Danke und Gruss, Manuel

triskal ·

hi und danke für die schnelle antwort. demnach müsste mein code wie folgt aussehen:

<?php

  $spid = t3lib_div::_GP('spid');
  echo('<br><b>Spieler: '.$spid.'</b><br><br>');

?>

aber es wird nach wie vor nur 'Spieler: ' ausgegeben. es erscheint also keine spid. auch

$spid = t3lib_div::_GET('spid');

liefert nicht das gewünschte ergebnis. folgender code funktioniert jedoch (nur um auszuschliessen, dass der fehler an keiner anderen stelle liegt):

<?php

  $spid = 5;
  echo('<br><b>Spieler: '.$spid.'</b><br><br>');

?>

die ausgabe lautet dann: Spieler: 5
was kann ich noch versuchen?
danke und gruss, manuel

triskal ·

ou!! was heisst das? hat das was mit der funktion 'alle caches löschen' zu tun? kann/sollte ich das abstellen und wenn ja, wie? hätte das negative auswirkungen auf meine seite? wo kann ich genauere infos darüber erhalten?

danke und gruss, manuel

steffenk ·

naja, cache ist sehr sinnvoll, da es den Seitenaufbau erheblich beschleunigt, den Server entlastet, die Suche ermöglicht .......

Ein Problem sind halt normale GET/POST-Vars. Wenn in der Url nicht ein cHash auftaucht, wird die gecachte Seite genommen und es findet keine Auswertung der Vars statt.

Man kann das auf folgende Arten vermeiden:
- Url hat cHash-Wert
- Objekt ist nicht gecachet
- Seite ist nicht gecachet

Also geh mal auf Seiteneigenschaften und schalte den Cashe aus und experimentier weiter. Dann solltest Du Dich mit dem Thema näher befassen.

triskal ·

alles klar. jetzt hab ich den fehler entdeckt. der vollständigkeit halber poste ich ihn kurz. und zwar war mein linkaufbau falsch (php-frischling eben). hier die ursprüngliche form:

echo('<tr><td><a href="index.php?id=42?spid='.$row['id'].'" target="_self">      '.$row['name'].'</td>');

aber so sollte es wohl eher aussehen:

echo('<tr><td><a href="index.php?id=42&spid='.$row['id'].'" target="_self">      '.$row['name'].'</td>');

nach der seiten-id also ein kaufmannsund anstatt einem fragezeichen zur verknüpfung einer weiteren variablen.
danke für die hilfe.
gruss, manuel