Hallo erst mal! Ich bin neu hier im Forum und bin jetzt auch nicht so der überfachman was PHP angeht, aber wahrscheinlich habe ich auch wegen Letzteres folgendes Problem.
Ich habe eine Tabelle in die Werte eingetragen werden die durch eine bzw. mehrere Funktionen aus der Datenbank ausgelesen werden. Es wird auch alles korrekt mit Mozilla (2.0.0.7) und Opera (9.21) angezeigt. Wenn ich die Seite aber in IE6 und IE7 lade werden die ausgelesenen Werte nicht angezeigt.
Hier mal ein Beispiel einer der Funktionen (und ja ich weis, dass ich die DB-Abfragen etwas seltsam strukturiert schreibe ;)):
[php]function name($id) {
$sql = "SELECT
id_name
FROM
tabelle_infos
WHERE
id_game = '".$id."';";
$get_nameid=mysql_query($sql) OR die(mysql_error());
$aus_nameid=mysql_fetch_array($get_nameid);
$sql = "SELECT
name
FROM
tabelle_name
WHERE
id_name = '".$aus_nameid['id_name']."';";
$get_name=mysql_query($sql) OR die(mysql_error());
$aus_name=mysql_fetch_array($get_name);
return stripslashes(htmlentities($aus_name['name']));
}
[/php]Das Ganze wird da so in der entsprechenden Seite (in einer Tabelle) angewandt:
[php] <? echo name($_GET['id']); ?>[/php]Wie schon geschrieben klappt das Ganze mit Mozilla/Opera ohne Probleme, aber mit IE6 und IE7 wird anscheinend schlicht und einfach überhaupt nichts ausgeben. Was für mich aber etwas unverständlich ist, weil PHP wird doch Serverseitig ausgeführt. Aber wie schon gesagt, bin kein Profi, evtl. weis ja jemand von Euch woran es liegen könnte. Eine Fehlermeldung wird übrigens nicht ausgegeben.
Salut (;
Ich vermute, dass das Problem bei der Tabelle und nicht beim PHP-Code liegt. Klingt nämlich eher nach Darstellungsproblem.
Sollte man aber auch daran erkennen können, ob nach Aufruf der Seite im InternetExplorer der auszugebende Wert nicht wenigstens im Quelltext auftaucht.
Habe ich jetzt mal überall gemacht, hat leider keine Besserung des Problems gebracht.
Habe ich jetzt ebenfalls überall geändert. Aber hat IE zeigt immer noch nichts an. Gibt es eigentlich irgendeinen Grund wieso <? normalerweise genauso funktioniert wie <?php, oder gibt es doch einen Unterschied? Bis jetzt habe ich das immer so gemacht, wenn ich PHP-Code über mehr als eine Zeile verwendet habe, habe ich <?php benutzt und wenn es nur so kurze Sachen, die nicht länger als eine Zeile sind, waren, dann <?.
Sorry, hatte mich verschrieben, da ich früher oft Mozilla verwendet hatte, meinte natürlich Firefox.
Wo genau sollte ich das z.B. an meinem Beispiel verwenden?
Danke für die Tipps! Leider funktioniert das Ganze immer noch nicht mit IE.
Im Quelltext hatte ich auch gleich nachgeschaut, aber da waren wirklich keine Werte. Bei einer Funktion werden übrigens zwei Variablen zusammen ausgegeben. Das Ganze sieht dann in etwa so aus
[php] return $aus_name[‚text1‘]." („.$aus_name[‚text2‘].“)";[/php]Mit Firefox und Opera wird dann etwas ausgegeben z.B. „Text1 (Text2)“ während mit dem IE6 und IE7 nur „()“ dasteht. Von daher denke ich, dass es kein Darstellungsfehler sein dürfte.
Leite PHP bitte so ein: <?php…
Wenn es im FF und Opera dargestellt wird, dann wird er den PHP-Teil wohl richtig eingeleitet haben.
@topic: wie ein PHP-Code ausgefuehrt wird, ist browserunabhaengig. Es wird wohl so sein, dass du entweder eine falsche id uebergibst, oder der Text lediglich nicht dargestellt wird, jedoch im QT steht.
btw: Bevor du Daten in eine DB schreibst, solltest du mysql_real_escape_string benutzen.
Mir ist schon klar, dass php serverseitig abläuft, aber wie ich schon geschrieben habe kann es imo auch kein Darstellungsproblem sein, da im Quellcode des IE die entsprechenden Werte auch nicht drinnen stehen, bei Firefox/Opera allerdings schon, deswegen wird das Ganze bei denen auch überhaupt erst angezeigt. Aber ich habe keine Ahnung an was es genau liegen könnte.
@Commodore
Kann es sein, dass Werte bei IE nicht richtig übergeben werden, bei FF und Opera schon? Alle Variablen auf der entsprechenden Seite werden auch mit GET übergeben.
Also wenn ich Fehler im PHP- und HTML-Code ausschließe, dann kann’s ja eigentlich nur noch an meinen IEs liegen.