Undefined variable
Akin
- php
0 Viennamade0 Akin0 Andreas Korthaus0 Akin
0 Viennamade
0 Akin0 wahsaga
0 Tom
HAbe mir ein eigenes WAMP eingerichtet und habe nun folgende unstimmigkeit...
also Ich habe eine main.php in der sich, wie unten sichtbar, ein iframe befindet, dessen Source(Quelle)mit der variable $main erst im browser definiert wird...
zum Beispiel:
www.meineseite.de/www/main.php?main=/news
Fehlermeldung:
Forbidden
You don't have permission to access /www/<br /><b>Notice</b>: Undefined variable: main in <b>E:/I_htdocs/www/main.php</b> on line <b>120</b><br /> on this server
Zeile 120:
<td height="108" valign="top"><iframe name="iframe1" scrolling="auto" align="center" frameborder="0" src="<?php echo("$main");?> " width="100%" height="570"></iframe></td>
könnt ihr mir irgendwie helfen?
Benutze Apache 2, PHP4 + PHP5
Vielen Dank. Akin
Hallo!
in iframe befindet, dessen Source(Quelle)mit der variable $main erst im browser definiert wird...
Das glaube ich nicht ;-)
Forbidden
You don't have permission to access /www/<br /><b>Notice</b>: Undefined variable: main in <b>E:/I_htdocs/www/main.php</b> on line <b>120</b><br /> on this server
Zeile 120:
<td height="108" valign="top"><iframe name="iframe1" scrolling="auto" align="center" frameborder="0" src="<?php echo("$main");?> " width="100%" height="570"></iframe></td>
Hast du überprüft, was in $main drinnen steht?
Beste Grüße
Viennamade
in iframe befindet, dessen Source(Quelle)mit der variable $main erst im browser definiert wird...
Das glaube ich nicht ;-)
das glaube ich schon.... wenn ich "www.xxx.de?x=dasglaubstdudoch" eingebe... wird die variable "x" zu "dasglaubstdudoch"
Hi!
das glaube ich schon.... wenn ich "www.xxx.de?x=dasglaubstdudoch" eingebe... wird die variable "x" zu "dasglaubstdudoch"
In einer vernünftig konfigurierten PHP-Umgebung sicher nicht, siehe: http://de3.php.net/manual/de/security.globals.php.
Verwende <?php echo $_GET['x']; ?>
siehe: http://de3.php.net/manual/de/reserved.variables.php#reserved.variables.get
Grüße
Andreas
Unglaublich, dass mir Nachts um halb 2 noch jemand sagen kann, wie ich das gebacken krieg.... vielen Dank andreas...
Kannte diese art von definition nicht, da ich das bei meinem provider (bm-media.net) immer auf die art(wie im beispiel) gemacht habe.erstaunlich, dass es da funktioniert...
hmm... nochmals dankeschön.
Akin
p.s. könnt ihr mir noch sagen, wie mein bei apache auch eine PHP-Datei als startseite benutzen kann?
danke im voraus
Hi Akin,
p.s. könnt ihr mir noch sagen, wie mein bei apache auch eine PHP-Datei als startseite benutzen kann?
der Apache selbst hat keine »Startseite«, eine solche stellt man höchstens bei seinem Browser ein.
Ich könnte mir vorstellen, dass du vielleicht die DirectoryIndex-Direktive suchst, also die Standarddatei, die der Apache serviert, wenn keine direkte Anfrage auf eine Datei stattfindet (eine Anfrage auf "http://aktuell.de.selfhtml.org/" beantwortet der Webserver z.B. auch mit dem Servieren der Seite "http://aktuell.de.selfhtml.org/index.htm").
Sofern dein Provider dies erlaubt, kannst du dies mittels einer .htaccess-Datei regeln. In dieser müsste dann in etwa folgendes stehen:
DirectoryIndex index.php index.html
Da hilft auch eventuell etwas Apachedoc-Lektüre:
http://httpd.apache.org/docs-2.0/mod/mod_dir.html#directoryindex
Viele Grüße
Benjamin
Hi!
Unglaublich, dass mir Nachts um halb 2 noch jemand sagen kann, wie ich das gebacken krieg.... vielen Dank andreas...
kein Problem, sowas passiert hier öfter... ;-)
Kannte diese art von definition nicht,
$_GET für GET-Daten,
$_POST für POST-Daten (Formular),
$_COOKIE für Cookies und
$_SERVER für Sachen wie $_SERVER['PHP_SELF']...
da ich das bei meinem provider (bm-media.net) immer auf die art(wie im beispiel) gemacht habe.erstaunlich, dass es da funktioniert...
Ja, viele Provider verwenden aus Kompatibilitäts-Gründen noch die alte, unsichere Einstellung. Wenn die das von heut auf morgen umstellen würden, dann liefen vermutlich 90% sämtlicher Scriptsammlungen nicht mehr...
p.s. könnt ihr mir noch sagen, wie mein bei apache auch eine PHP-Datei als startseite benutzen kann?
http://httpd.apache.org/docs-2.0/mod/mod_dir.html#directoryindex
Grüße
Andreas
Hallo Andreas,
Kannte diese art von definition nicht,
$_GET für GET-Daten,
$_POST für POST-Daten (Formular),
$_COOKIE für Cookies und
$_SERVER für Sachen wie $_SERVER['PHP_SELF']...
$_ENV für Umgebungsvariablen (habe ich allerdings noch nie gebraucht),
$_FILES für Dateiuploads und
$_REQUEST für den Inhalt von $_GET, $_POST und $_COOKIE zusammen.
Grüße aus Nürnberg
Tobias
Hi!
$_ENV für Umgebungsvariablen (habe ich allerdings noch nie gebraucht),
ich auch nicht...
$_FILES für Dateiuploads und
ja das ist wichtig!
$_REQUEST für den Inhalt von $_GET, $_POST und $_COOKIE zusammen.
auch manchmal recht hilfreich.
Grüße
Andreas
hi,
$_REQUEST für den Inhalt von $_GET, $_POST und $_COOKIE zusammen.
wenn wir schon derart ins detail gehen ;-), dann wäre an dieser stelle wohl auch noch zu erwähnen, dass die "reihenfolge", in der sich gleichnamige indizes dieser einzelnen datenquellen in $_REQUEST gegenseitig überschreiben, von der konfiguration von variables_order abhängig ist.
http://www.php.net/manual/de/ini.sect.data-handling.php#ini.variables-order
gruß,
wahsaga
Hello,
hi,
$_REQUEST für den Inhalt von $_GET, $_POST und $_COOKIE zusammen.
wenn wir schon derart ins detail gehen ;-), dann wäre an dieser stelle wohl auch noch zu erwähnen, dass die "reihenfolge", in der sich gleichnamige indizes dieser einzelnen datenquellen in $_REQUEST gegenseitig überschreiben, von der konfiguration von variables_order abhängig ist.
http://www.php.net/manual/de/ini.sect.data-handling.php#ini.variables-order
Ich sehe auch keinen Grund mehr dafür, $_REQUEST zu benutzen. Als Kontroll, ob überhaupt Parameter übergeben wurden, mag das noch gut sein, aber i.d.R. will man doch schon wissen, auf welchem Wege (mit welcher Methode) die Parameter übergeben wurden. Die Methoden haben schließlich alle ihren speuiellen Nutzen und damit auch eine Bedeutung für die Sicherheit eines Scriptes.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Hallo!
in iframe befindet, dessen Source(Quelle)mit der variable $main erst im browser definiert wird...
Das glaube ich nicht ;-)
das glaube ich schon.... wenn ich "www.xxx.de?x=dasglaubstdudoch" eingebe... wird die variable "x" zu "dasglaubstdudoch"
» dessen Source mit der Variable $main erst im browser definiert wird« glaube ich nicht.
Beste Grüße
Viennamade
MIr fällt grad auf, dass das bei allen files ist, bei denen die Variable erst im nachhinein bei der adresseingabe definiert ist... gibts dazu irgendeine einstellung bei PHP, die man beachten muss?
THX Akin
hi,
MIr fällt grad auf, dass das bei allen files ist, bei denen die Variable erst im nachhinein bei der adresseingabe definiert ist... gibts dazu irgendeine einstellung bei PHP, die man beachten muss?
neben dem schon genannten zugriff auf GET-parameter über das superglobale array $_GET solltest du natürlich vor dem zugriff überprüfen, ob es den jeweiligen index im array überhaupt gibt.
isset() oder empty() helfen dir dabei.
gruß,
wahsaga
Hello,
www.meineseite.de/www/main.php?main=/news
Und was meisnt Du wohl, was passiert, wenn man
www.meineseite.de/www/main.php?main=%2Fetc%2Fpasswd
eingibt? Oder was ähnlich gemeines?
Die Parameter müssen außerdem (siehe oben) mit urlencode() umgewandelt werden, sodass aus den Slashes z.B. %2F wird.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom