width=100%

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Benutzeravatar
dagobert
Beiträge: 457
Registriert: Mo 08.Mär, 2004 13:46
Wohnort: Altenkirchen
Kontaktdaten:

width=100%

Beitrag von dagobert »

oxpus du hattest auf phpbb2 in irgend nem thread was geschrieben, dass da innem template ein fehler bei width=100% sei und der mozilla das deshalb falsch interpretiere.

hab ich das richtig verstanden, dass ich zb sowas hier:

Code: Alles auswählen

<tr>
     <td>blubb</td>
     <td width="100%">blubb</td>
     <td>blubb</td>
</tr>
nicht mehr verwenden kann, weil man dann seitlich scrollen müsste ?

und wo ist der unterschied zwischen $_GET und $HTTP_GET_VARS ?
ich hab mal im netz gesucht, mit dem ergebnis, dass es das gleiche ist, man aber das kürzere verwenden sollte.
doch amiga meinte das längere is besser.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das width=100% in den Tabellendefinitionen wäre nur dann zu verwenden, wenn man einen Teil innerhalb einer Tabelle oder die "Haupt"-Tabelle selber in voller Breite darstellen will (Tabelle in Zelle oder Tabelle in Fenster).
Da würden eben Browser wie Mozilla/Firefox die erste Definition mit 100% lesen, die Tabelle aufbauen und Folgeanweisungen logischerweise ignorieren, was ja auch gemäß w3c richtig ist. Nur der IE und dazu kompatible Browser korrigieren hier, was dem Layout der Seite dienlich, aber der falsche Weg ist!
Und deswegen müssen im ezPortal, genauer in der portal_body.tpl, nur 3 Angaben zu width=100% entfernt werden, damit der Mozilla/Firefox das Portal auf Anhieb korrekt darstellt.
Es ist also nicht grundsätzlich width=100% verboten, sondern nur an den richtigen Stellen erlaubt ;)

Und der Unterschied zu $_GET und $HTTP_GET_VARS, bzw. $_POST und $HTTP_POST_VARS: Zunächst keiner! Beide Varianten enthalten die gleichen Inhalte, wenn ein Script aufgerufen wird und werden auch gleich behandelt.
Unterschiedlich ist dabei, daß die Kurzform automatisch überall global zur Verfügung steht, so daß man nicht z.B. global $_GET in Funktionen angeben muss, wie das bei $HTTP_GET_VARS der Fall wäre.
Auch behandelt PHP die Lang- und Kurzform unterschiedlich, so daß eine manuelle Zuweisung $HTTP_GET_VARS nicht auch in $_GET vorhanden ist. Das geschieht nur beim Aufruf eines Scripts!
Da die kurzen Variablen erst ab PHP 4.1.0 möglich sind, musste man vorher $HTTP_GET_VARS verwenden. Dazu war auch noch per default register_globals=On, so daß man sich über die Variablen weniger Gedanken machen musste, aber dieses stellte ein Sicherheitsrisiko dar.
Somit stellen viele Provider register_globals=Off um diese Lücken zu schliessen.
Mit geschicketer Programmierung lässt Sich das dazu noch abfangen.
Nur:
Ab PHP 5 werden auch die langen Global-Variablen per default abgeschaltet (um Speicherplatz auf dem Server zu sparen) und somit müssen die kurzen Varianten verwendet werden. Allerdings wird hier nur die Übergabe der Werte aus einer URL in die langen Variablen abgeschaltet, innerhalb eines Scripts kann man diese weiterhin verwenden.

Und daher ist ein phpBB ab 2.0.9 selber kompatibel mit PHP5, viele Mods aber nicht.
Und das bedeutet:
Handarbeit in der Pflege, damit alles im Falle eines Falles auch mit PHP5 läuft.
OXPUS.de ist auch noch nicht PHP5 kompatibel, wird es aber bald sein ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
dagobert
Beiträge: 457
Registriert: Mo 08.Mär, 2004 13:46
Wohnort: Altenkirchen
Kontaktdaten:

Beitrag von dagobert »

danke für die ausführliche antwort, auch wenn mein tag jetz versaut is.

dann hab ich wohl ne menge zu tun alles mozilla friendly umzuschreiben. dieses width 100% war halt immer so praktisch ;)

--------

ganz verstanden hab ich das mit den variablen aber noch nicht. mir fehlt da einfach die praxis. hab halt erst 2 oder 3 mal selber diese variablen verwendet und mir da keine gedanken drüber gemacht was da alle dranhängt.

heisst das nun, dass ich in php5 $_get verwenden muss, wenn ich auch von anderen funktionen die variable verwenden will und wenn alles nur innerhalb eines scripts passiert nehm ich ein $http_get_vars ?

kennst du vielleicht ne seite wo man das auch mal gut annem codebeispiel sehn kann ?
oder gibt es vielleicht sogar guides wie man sein board php5 tauglich macht ?
vielleicht versteh ich das dann besser.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ist wohl doch etwas unglücklich ausgedrück. Ich fasse nochmal zusammen:

- Die langen und kurzen Variablen z.B: $_GET, bzw. $HTTP_GET_VARS haben beim Laden eines Scripts zunächst die gleichen Inhalte.
- Um die langen Variablen z.B. in einer Funktion oder bei register_global=Off zu verwenden, müssen diese mit dem Befehl global verfügbar gemacht werden, die kurzen Variablen nicht
- Ab PHP5 wird mit Installation von PHP selber zunächst register_global=Off gesetzt und die langen Variablen abgeschaltet (genauer: Die Erstellung beim Laden eines Scripts)
- Verwenden sollte man ab PHP 4.3.0 immer durchgängig die kurzen Variablen, auch innerhalb eines Scripts!
- Beide Varianten (kurz oder lang) werden von PHP getrennt behandelt. So kann $_GET['key'] einen anderen Wert beinhalten, als $HTTP_GET_VARS['key'], aber nur durch Zuweisung nach dem Laden eines Scripts!

Jetzt klarer?

Kurzum:
Um sein eigenes Board mitsamt allen installierten Mods PHP5 tauglicher zu machen, ändere alle langen globalen Variablen (dazu gehören z.B. auch $HTTP_FILES_VARS oder $HTTP_SERVER_VARS!) in kurze um und teste entsprechend.
Alles andere sind dann "Kleinigkeiten", die durch die Default-Einstellungen von PHP5 nicht funktionieren. Aber diese Einstellungen muss man erst einmal verwenden, da dieses auch die meisten Provider beim Update auf PHP5 tun werden.
Zuletzt immer darauf achten, daß aus einem Link oder abgesendeten Formular alle Werte mit $_GET oder $_POST (bei Dateien mit $_FILES) abgefragt werden, um auch der PHP-Einstellung register_globals=Off zu entgegnen.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
dagobert
Beiträge: 457
Registriert: Mo 08.Mär, 2004 13:46
Wohnort: Altenkirchen
Kontaktdaten:

Beitrag von dagobert »

eins a oxpus, ich habs endlich kapiert.

vielen dank !
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Keine Ursache.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten