$_SERVER['PHP_SELF'] funktioniert nicht

Alles, was PHP betrifft, kann hier besprochen werden.

$_SERVER['PHP_SELF'] funktioniert nicht

Postby Vladimir » 23. April 2010 22:52

Hallo!
Mit neue Installition XAMPP (PHP 5.3.2) geht nicht $_SERVER['PHP_SELF'].
Wenn in Form ... action "$act" und oben steht $act = $_SERVER['PHP_SELF'],
Apache (PHP?) versteht das gar nicht.
Wenn man direkt schrieb...action "seite7.php", alles OK.
In php.ini: variables_order = "GPCS",
S gilt als global variabeln $_SERVER.
Was muss man tun?
Danke
Vladimir
 
Posts: 9
Joined: 17. March 2007 18:30
Location: Nürnberg

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Altrea » 23. April 2010 23:09

Vladimir wrote:Mit neue Installition XAMPP (PHP 5.3.2) geht nicht $_SERVER['PHP_SELF']

Du meinst einer der Linux / Mac OSX Beta Versionen?

$_SERVER['PHP_SELF'] funktioniert bei mir fehlerfrei. Das problem muss bei dir woanders liegen.

Poste hier doch bitte mal ein kleines Testscript, dass ich nachvollziehen kann was da schief läuft.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 6598
Joined: 17. August 2009 13:05
XAMPP Version: 5.5.19
Operating System: W7Ux64

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Vladimir » 23. April 2010 23:25

Danke!
1. Es geht um Windows, XAMPP 1.7.3, Win7.
2. Message in Brouser (FF)
Zugriff verweigert!
Der Zugriff auf das angeforderte Objekt ist nicht möglich. Entweder kann es vom Server nicht gelesen werden oder es ist zugriffsgeschützt.
Sofern Sie dies für eine Fehlfunktion des Servers halten, informieren Sie bitte den Webmaster hierüber.
Error 403
3. In Adresszeile FF:
http://localhost/music_a/Album/%3C?sele ... OK=ABFRAGE
(also, kein Datei)
4. Das Programm
......... $action = $_SERVER['PHP_SELF'];
.........
<form id="form1" name="form1" method="get" action="<?=$action?>">
<table width="283" border="3" cellpadding="2" cellspacing="2" bgcolor="#FFCC66">
<caption><span class="head1_main_table">Album: Jahr-Kategorie</span>
</caption>
<tr bgcolor="#FF9900">
<th width="78" scope="col">YAHR</th>
<th width="181" scope="col">Kategorie</th>
</tr>
<tr>
<td><select class="select_text"name="select_year">
<?php which_year($sel_year,'year');?></select></td>
<td><select class="select_text"name="select_cat">
<?php which_year($sel_cat,'cat');?></select></td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="OK" type="submit" class="span_b" value="ABFRAGE" /></td>
</tr>
</table>
</form>
Vladimir
 
Posts: 9
Joined: 17. March 2007 18:30
Location: Nürnberg

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Altrea » 23. April 2010 23:31

Was steht vor $action = $_SERVER['PHP_SELF'];?

Genauer gesagt, wenn du short_open_tags verwendest (<? anstatt <?php) wird dies nur funktionieren, wenn du short_open_tag in der php.ini aktivierst, oder besser gleich <?php statt <? verwendest.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 6598
Joined: 17. August 2009 13:05
XAMPP Version: 5.5.19
Operating System: W7Ux64

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Vladimir » 23. April 2010 23:56

Vielen Dank,
in der Tat,
short_open_tag haben "off"" !!??
Nach Korrektur - einwandfrei.
Musste sofort prüfen, aber war für mich unvorstellbar,
dass diese Einstellungen so definiert sind.
Danke noch mal.
Vladimir
 
Posts: 9
Joined: 17. March 2007 18:30
Location: Nürnberg

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Altrea » 24. April 2010 00:12

Wie gesagt, es ist empfohlen die vollständige Version, also <?php zu verwenden.
short_open_tag steht nicht ohne Grund auf off. Eine Erklärung dazu findest du direkt in der php.ini über dieser Einstellung.
Es gibt nur sehr wenige Anwendungsfälle, in denen die short_open_tag methode Sinn macht. Eigentlich fällt mir sogar nur eine ein, nämlich die verwendung von <?= statt <?php echo in Dateien, in denen sehrviel HTML mit PHP gemixt werden muss, zum Beispiel in Templates.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 6598
Joined: 17. August 2009 13:05
XAMPP Version: 5.5.19
Operating System: W7Ux64

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Play0r » 26. April 2010 22:46

bitte beachte auch, dass bei deinen testscript die möglichkeit einer XSS (http://de.wikipedia.org/wiki/Cross-Site_Scripting) besteht. Das wird meistens unterschätzt.

Also doch lieber wie folgt verwenden:
Code: Select all
$action = htmlentities($_SERVER['PHP_SELF']);


//edit:
hier noch ein Artikel zu genau dem thema
http://wiki.hackerboard.de/index.php/Cr ... g#PHP_SELF
Play0r
 
Posts: 4
Joined: 08. April 2010 19:24

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Vladimir » 27. April 2010 19:50

Für PlayOr, Altrea.
Danke für Rat und Info.
Überlege am Wochenende, leider momentan praktisch keine Zeit.
Aber : <?=.... habe ich in, denke mal, 2 prof. Bücher immer
getroffen.... wo - ganz konkret- Variabeln in HTML Text eingesetzt
(slang auf russisch - eingehundet : von Hund).
Danke noch mal.
Vladimir
 
Posts: 9
Joined: 17. March 2007 18:30
Location: Nürnberg

Re: $_SERVER['PHP_SELF'] funktioniert nicht

Postby Altrea » 27. April 2010 22:13

Dann solltest du in aktuellen Büchern zumindest den Hinweis finden, dass die Funktion short_open_tag seit PHP 5.3 standardmäßig deaktiviert ist.
Bei den meisten Hostern wird dies dennoch funktionieren, da deren Einstellungen meist so liberal vorgenommen werden, dass die meisten Scripts laufen, und derzeit noch kaum auf PHP 5.3 gesetzt wird.
We don't provide any support via personal channels like PM, email, Skype, TeamViewer!

It's like porn for programmers 8)
User avatar
Altrea
AF Moderator
 
Posts: 6598
Joined: 17. August 2009 13:05
XAMPP Version: 5.5.19
Operating System: W7Ux64


Return to PHP

Who is online

Users browsing this forum: No registered users and 2 guests