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
man sollte nicht mit $_GET arbeiten sondern mit
t3lib_div::_GP('spid')
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
Deine Seite wird gecachet sein, dann klappts nicht.
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
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.
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