Du bist nicht eingeloggt.

Login

Pass

Registrieren

Community
Szene & News
Locations
Impressum

Forum / Bits und Bytes

PHP: register_globals & HTML: Doctype Declaration

<<< zurück   -1- -2- -3- vorwärts >>>  
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 03.11.2006 um 20:09 Uhr
Zuletzt editiert am: 03.11.2006 um 20:10 Uhr

# Line 216 column 78: cannot generate system identifier for general entity "show".

....index.php?site=forum&show=thread&id=279" class="grau">Forenre

An entity reference was found in the document, but there is no reference by that name defined. Often this is caused by misspelling the reference name, unencoded ampersands, or by leaving off the trailing semicolon (;). The most common cause of this error is unencoded ampersands in URLs as described by the WDG in "Ampersands in URLs".

Entity references start with an ampersand (&) and end with a semicolon (;). If you want to use a literal ampersand in your document you must encode it as "&" (even inside URLs!). Be careful to end entity references with a semicolon or your entity reference may get interpreted in connection with the following text. Also keep in mind that named entity references are case-sensitive; &Aelig; and æ are different characters.

If this error appears in some markup generated by PHP's session handling code, this article has explanations and solutions to your problem.

Note that in most documents, errors related to entity references will trigger up to 5 separate messages from the Validator. Usually these will all disappear when the original problem is fixed.


# Error Line 216 column 78: general entity "show" not defined and no default entity.

....index.php?site=forum&show=thread&id=279" class="grau">Forenre

This is usually a cascading error caused by a an undefined entity reference or use of an unencoded ampersand (&) in an URL or body text. See the previous message for further details.



Diese Fehler kommen die ganze zeit (90% aller fehler) vor
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 03.11.2006 um 22:07 Uhr

wie sieht deine .htaccess aus?
was für einen Wert siehst du in der Ausgabe von phpinfo();
init_set(); versucht?

alternativ wäre auch möglich die Url Strings in die Funktion htmlentities(); oder htmlspecialchars(); zu jagen

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 03.11.2006 um 22:24 Uhr

php_value register_globals 1
php_value arg_separator.output & amp ;


das ist meine .htaccess


gsyi - 36
Halbprofi (offline)

Dabei seit 10.2005
104 Beiträge
Geschrieben am: 04.11.2006 um 00:42 Uhr
Zuletzt editiert am: 04.11.2006 um 00:42 Uhr

Dir fehlen scheinbar die grundlegende Kenntnisse, daher würde ich dich empfehlen, auf den W3C Validator zu scheißen und lieber Zeit in anderen, sinnvolleren Sachen wie Content produzieren zu konzentrieren ,-) Solange deine Seite in den gängigen Browsers (Firefox, IE und Opera -> über 90% Marktanteile) einwandfrei angezeigt wird, ist es ziemlich egal, ob der Code der Empfehlung (ja, sind nur Empfehlungen) der W3 Consortium entspricht.
fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 01:14 Uhr

Soso, was für grundlegende Kenntnisse fehlen mir denn?
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 04.11.2006 um 12:46 Uhr
Zuletzt editiert am: 04.11.2006 um 12:47 Uhr

Zitat von gsyi:

Dir fehlen scheinbar die grundlegende Kenntnisse, daher würde ich dich empfehlen, auf den W3C Validator zu scheißen und lieber Zeit in anderen, sinnvolleren Sachen wie Content produzieren zu konzentrieren ,-) Solange deine Seite in den gängigen Browsers (Firefox, IE und Opera -> über 90% Marktanteile) einwandfrei angezeigt wird, ist es ziemlich egal, ob der Code der Empfehlung (ja, sind nur Empfehlungen) der W3 Consortium entspricht.

Möglicherweise spricht er das Anwenden von register_globals on an.....
Dieser Meinung von ihm bzgl. W3C kann ich mich nicht anschließen da eine professionelle Seite W3C konform ist, aber da trennt sich auch die Spreu vom Weizen.
Ich mache Webseiten zwar auch nur nebenher, dennoch stets W3C valide weil ich mir das auf die richtige Art und Weise angewohnt habe und zwar nach dem Prinzip Hilfe zur Selbsthilfe.......

Zitat von fat32:

php_value register_globals 1
php_value arg_separator.output & amp ;


das ist meine .htaccess


Zunächst einmal ist register_globals das blödeste was man überhaupt machen kann in PHP weshalb es auch standardmäßig abgeschaltet wurde. Um auf deine Variablen zurückzugreifen bietet PHP die Superglobalen an.

Bsp. Ein Url wird immer mittels method="get" gesendet Formulare standardmäßig mit method="post"

Dadurch lassen sich die Superglobalen auch schon ableiten:
Wir haben z.B: ein Feld blubb was mittels Formular gesendet wird...

Und greifen mit $_POST['blubb'] darauf zu oder als Url Parameter $_GET['blubb']
beide sind z.B. in $_REQUEST enthalten.

Diese und viele weitere Umgebungsvariabeln von PHP sind in phpinfo(); ersichtlich.


.htaccess:
Du hast hoffentlich auch die Leerzeichen entfernt zwischen & amp ; oder?
was zeigt phpinfo(); für diese PHP Umgebungsvariable an?
Wo hast du gehostet? evtl. Support ansprechen

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 14:02 Uhr

Das mit register_globals wusste ich nicht, das war von meinem anbieter schon so.
Ich greife immer mit $_GET bzw. $_POST darauf zu, kann ich dann also das register_globals entfernen?

Ja, die leerzeichen bei & amp ; habe ich entfernt!
Ich hoste bei Alfahoting und den Support frag ich wegen sowas lieber nicht mehr, letztes mal wollten sie schon fast kohle für so ne frage

Zitat von Caarcrinolas:

was zeigt phpinfo(); für diese PHP Umgebungsvariable an?


welche meinst du?

das hier steht mal dran: (wenn du arg_seperator meinst:)
arg_separator.input &
arg_separator.output & amp ;


EDIT: jetzt ist mir auch klar, warum ich immer diese Probleme mit Variablen hatte... register_globals mach _GET["bla"] auch zu $bla... also stell ich es mal lieber aus ;-) oder ist es vllt. doch für etwas nützlich?
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 04.11.2006 um 14:51 Uhr

Zitat von fat32:

Das mit register_globals wusste ich nicht, das war von meinem anbieter schon so.
Ich greife immer mit $_GET bzw. $_POST darauf zu, kann ich dann also das register_globals entfernen?

richtig, abgesehen davon stufe ich deinen Hoster als Inkompetent ein da Boolean nicht mit php_value gesetzt werden sollten sondern mit:

php_flag Name on|off
Setzt eine boolesche Konfigurationsdirektive. Kann nur für Direktiven mit den Typen PHP_INI_ALL und PHP_INI_PERDIR verwendet werden.

Zitat von fat32:


Ja, die leerzeichen bei & amp ; habe ich entfernt!
Ich hoste bei Alfahoting und den Support frag ich wegen sowas lieber nicht mehr, letztes mal wollten sie schon fast kohle für so ne frage

welche meinst du?

das hier steht mal dran: (wenn du arg_seperator meinst:)
arg_separator.input &
arg_separator.output & amp ;

na, das sieht doch mal gut aus. Allerdings erklärt das noch immer nicht weswegen arg_seperator.output kein Gewicht hat.

Den Ampersand Fehler durfte nicht mehr kommen. Wenn du init_set nicht verwendet hast ist die Änderung in phpinfo(); durch die .htaccess zustande gekommen

Demzufolge wird PHP als Apache Modul betrieben.

Mehr kann ich dazu auch nicht sagen ausser das es bei mir funktioniert :(

Zitat von fat32:


EDIT: jetzt ist mir auch klar, warum ich immer diese Probleme mit Variablen hatte... register_globals mach _GET["bla"] auch zu $bla... also stell ich es mal lieber aus ;-) oder ist es vllt. doch für etwas nützlich?

register_globals ist ein Sicherheitsloch, was lediglich für schlampige Programmierung steht. Seit einer bestimmten PHP 4 Version wurde dies auch auf den Standard off gesetzt und mittels Kommentar in der php.ini eindringlich auf die Sicherheitsrelevanz hingewiesen

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 14:53 Uhr
Zuletzt editiert am: 04.11.2006 um 14:58 Uhr

Ich hab register_globals jetzt komplett rausgenommen, nur jetzt gehen keine Dateiuloads mehr... In welches Array schreibt PHP die upgeloadeten FIles?

Früher:

< input type="file" name="datei" >

in php datei wurde dann mit $datei gearbeitet
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 04.11.2006 um 14:58 Uhr

Zitat von fat32:

Ich hab register_globals jetzt komplett rausgenommen, nur jetzt gehen keine Dateiuloads mehr... In welches Array schreibt PHP die upgeloadeten FIles?

Früher:



in php datei wurde dann mit $datei gearbeitet

lässt sich ganz einfach beantworten wenn du
a) phpinfo(); direkt nach dem Upload aufrufst oder
b) das Manual anschaust bei http://www.php.net/manual/de/features.file-upload.php

dort wirst du zwangsläufig auf $_FILES stossen in welcher viellerlei Dinge herauszubekommen sind

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 15:12 Uhr
Zuletzt editiert am: 04.11.2006 um 15:13 Uhr

Das hab ich schon gefunden, nur gehts nicht

$bild= $_FILES['pic']['tmp_name'];
echo "url: ".$bild;

das gibt gar nix aus - nichtmal "url:"
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 04.11.2006 um 16:29 Uhr
Zuletzt editiert am: 04.11.2006 um 16:29 Uhr

Zitat von fat32:

Das hab ich schon gefunden, nur gehts nicht

$bild= $_FILES['pic']['tmp_name'];
echo "url: ".$bild;

das gibt gar nix aus - nichtmal "url:"

schon mal
echo "< pre >";
print_r($_FILES);
echo "< / pre >";

versucht?

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 16:30 Uhr
Zuletzt editiert am: 04.11.2006 um 16:46 Uhr

http://www.perun.net/2004/05/20/das-geht-mir-richtig-auf-den-sack/

da steht:
Das Problem ist, dass dieser output-separator auch nur für PHP-intern erzeugte Links gilt. Es ist nicht so, dass durch das Setzen davon automagisch alle Links innerhalb der Seite ersetzt werden. Vielmehr nur für alle Links, die ein von HP angehängtes PHPSESSID enthalten; darum scheint es Dir in dem Newstool ja nicht zu gehen.

dann kann das also nciht gehen...


Zitat von Caarcrinolas:

Zitat von fat32:

Das hab ich schon gefunden, nur gehts nicht

$bild= $_FILES['pic']['tmp_name'];
echo "url: ".$bild;

das gibt gar nix aus - nichtmal "url:"

schon mal
echo "< pre >";
print_r($_FILES);
echo "< / pre >";

versucht?


nein, noch nicht....

EDIT: auch das geht nicht. echo "test" gibt auch nichts mehr aus. das alles erst, seitdem ich das global ding aus hab

EDIT 2: Da muss wohl was anderes kaputt sein (in der dateI)

kann es an
if(empty($_POST)){ ..}
liegen?

EDIT 3: Daran liegts doch auch nicht :-(
Könnte es daran schuld sein, dass ich das formular an store.php?parameter=wert absende?
Caarcrinolas - 41
Profi (offline)

Dabei seit 02.2006
909 Beiträge

Geschrieben am: 04.11.2006 um 16:42 Uhr

Zitat von fat32:


da steht:
Das Problem ist, dass dieser output-separator auch nur für PHP-intern erzeugte Links gilt. Es ist nicht so, dass durch das Setzen davon automagisch alle Links innerhalb der Seite ersetzt werden. Vielmehr nur für alle Links, die ein von HP angehängtes PHPSESSID enthalten; darum scheint es Dir in dem Newstool ja nicht zu gehen.

Das wird möglicherweise auch so sein, nur werde ich generell nie auf diesen Fehler stossen, da meine eigene Templateengine generell Url richtig zusammenbaut und Urls maskiert, sprich Leerzeichen berrücksichtigt.

Session hab ich generell immer ausser wenn ein Bot die Page abgrast

Aristoteles: "Es gibt kein großes Genie ohne einen Schuß Verrücktheit."

fat32
Experte (offline)

Dabei seit 09.2006
1465 Beiträge
Geschrieben am: 04.11.2006 um 16:43 Uhr

Zitat von Caarcrinolas:

Zitat von fat32:


da steht:
Das Problem ist, dass dieser output-separator auch nur für PHP-intern erzeugte Links gilt. Es ist nicht so, dass durch das Setzen davon automagisch alle Links innerhalb der Seite ersetzt werden. Vielmehr nur für alle Links, die ein von HP angehängtes PHPSESSID enthalten; darum scheint es Dir in dem Newstool ja nicht zu gehen.

Das wird möglicherweise auch so sein, nur werde ich generell nie auf diesen Fehler stossen, da meine eigene Templateengine generell Url richtig zusammenbaut und Urls maskiert, sprich Leerzeichen berrücksichtigt.

Session hab ich generell immer ausser wenn ein Bot die Page abgrast


die session ist bei mir im cookie

gibt es nciht irgendwie ne möglichkeit, dass PHP vor dem senden an den client alle links richtig umwandelt?
<<< zurück
 
-1- -2- -3- vorwärts >>>
 

Forum / Bits und Bytes

(c) 1999 - 2026 team-ulm.de - all rights reserved - hosted by ibTEC Team-Ulm

- Presse - Blog - Historie - Partner - Nutzungsbedingungen - Datenschutzerklärung - Jugendschutz -