Avatar billede stig69 Nybegynder
08. april 2004 - 10:37 Der er 14 kommentarer

Forklaring på php_self

Måske et meget simple spørgsmål. Jeg har set en del sider på det seneste der benytter PHP_SELF i deres form. F.eks.:

echo "<form name=\"nyhedsbrev\" action=\"$PHP_SELF\" method=post>\n";

Er der en der kan give mig en forklaring på PHP_SELF? Er det en funktion der henter url-stien eller skal man selv definere PHP_SELF? Kan man tilføje variabler, f.eks.:

echo "<form name=\"nyhedsbrev\" action=\"$PHP_SELF?$var=etellerandet\" method=post>\n";

Jeg har prøvet at læse om det på php.net, men det giver ikke rigtig mening

Stig
Avatar billede riversen Nybegynder
08. april 2004 - 10:40 #1
måske du bedre forstår det hvis du udskriver php_self...

det er simpelthen filnavnet på siden, det er skrevet på.
Avatar billede morpheus Nybegynder
08. april 2004 - 10:48 #2
I ældre versioner af PHP, hedder det som skrevet $php_self... Men i de nyere (v. 4+), hedder det $_SERVER['PHP_SELF']
Avatar billede riversen Nybegynder
08. april 2004 - 10:51 #3
morpheus: det afhænger vist mere af register_globals on|off
Avatar billede morpheus Nybegynder
08. april 2004 - 10:55 #4
Standard er den jo off... :)
Avatar billede stig69 Nybegynder
08. april 2004 - 10:58 #5
Dvs. hvis jeg har en side ex. vejledning.php, så vil siden blive kaldt i en form hvis jeg skriver:
echo "<form name=\"vejledning\" action=\"$php_self\" method=post>\n";
Og det er så det samme som:
echo "<form name=\"vejledning\" action=\"vejledning.php\" method=post>\n";
Avatar billede riversen Nybegynder
08. april 2004 - 11:01 #6
ja, men det er stadig der det ligger og ikke i versionen.
Avatar billede stig69 Nybegynder
08. april 2004 - 11:11 #7
Hvis jeg benytter følgende sætning kan jeg godt udskrive $php_self; echo(basename($PHP_SELF)); men jeg kan ikke 'bare' udskrive $php_self, burde jeg ikke det?
Avatar billede riversen Nybegynder
08. april 2004 - 11:13 #8
du skal bruge echo $_SERVER["PHP_SELF"];
Avatar billede stig69 Nybegynder
08. april 2004 - 11:17 #9
ok, så echo $_SERVER["PHP_SELF"]; udskriver hele url'en og echo(basename($PHP_SELF)); udskriver kun filenavnet... Hvad skal jeg så skrive i en form? acion=\" <? echo $_SERVER["PHP_SELF"]; ?> \"
Avatar billede riversen Nybegynder
08. april 2004 - 11:48 #10
ja
Avatar billede stig69 Nybegynder
08. april 2004 - 11:58 #11
Det jeg har gjort er at indsætte:
$PHP_SELF = $_SERVER["PHP_SELF"];
i filen; functions.php. Alle mine php-filer indeholder: include "functions.php";
Så når jeg benytter $PHP_SELF i de forskellige filer har jeg url'en til filen. Det vil sige at jeg kan omdøbe og flytte rundt på filerne, det vil såvidt ikke have indflydelse på dette, men sikkert på alle de filer der kalder dem... men det er jo et helt andet spørgsmål. Hvis det jeg har gjort er fuldstændig tåbeligt, må I lige sige til, men ellers må I meget gerne ligge et svar

Stig
Avatar billede riversen Nybegynder
08. april 2004 - 12:02 #12
personligt kan jeg ikke lige at poste eller gete til den siden formularet er i af den ene grund, at man kan reloade og dermed poster eller geter den de samme data igen.
Avatar billede stig69 Nybegynder
08. april 2004 - 12:14 #13
Men det andet er smart?? Husk lige at ligge et svar riversen
Avatar billede riversen Nybegynder
08. april 2004 - 12:51 #14
næ, det synes jeg ikke det er... bare behold point
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester