• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Rückgabewerte von Funktionen nicht mit IE6 und IE7

Status
Für weitere Antworten geschlossen.

NegCon

Neues Mitglied
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']));

}
Das Ganze wird da so in der entsprechenden Seite (in einer Tabelle) angewandt:

PHP:
            <td><? echo name($_GET['id']); ?></td>
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.
 
1. Bei einer Funktion sollte die { eine eigene Zeile bekomme.
2. Leite PHP bitte so ein: <?php...
3. Du weißt, dass Mozilla nicht gleich Firefox ist, oder?
4. Ich würde bei MySQL-Ausgaben immer ein &nbsp; dazuschreiben
 
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.
 
1. Bei einer Funktion sollte die { eine eigene Zeile bekomme.

Habe ich jetzt mal überall gemacht, hat leider keine Besserung des Problems gebracht. :(

2. Leite PHP bitte so ein: <?php...

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 <?.

3. Du weißt, dass Mozilla nicht gleich Firefox ist, oder?

Sorry, hatte mich verschrieben, da ich früher oft Mozilla verwendet hatte, meinte natürlich Firefox.

4. Ich würde bei MySQL-Ausgaben immer ein &nbsp; dazuschreiben

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. :(


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.

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'].")";
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.
 
Zuletzt bearbeitet:
1. Bei einer Funktion sollte die { eine eigene Zeile bekomme.
Stimmt nicht, ist anders sogar uebersichtlicher.
2. 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.
 
php entscheidet nicht zwischen IE und Mozilla's engine, demnach gehört das ganze ins html forum, da es ein darstellungsproblem ist.

php ist SERVERSEITIG !
 
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.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben