Kom ihåg mig?
Home Menu

Menu


PHP-snutt funkar inte

Ämnesverktyg Visningsalternativ
Oläst 2008-06-17, 14:35 #1
alejandr0 alejandr0 är inte uppkopplad
Medlem
 
Reg.datum: Apr 2007
Inlägg: 108
alejandr0 alejandr0 är inte uppkopplad
Medlem
 
Reg.datum: Apr 2007
Inlägg: 108
Hey! Har haft en hemsida jag gjort på min egen server men vi har nu flyttat den till klientens host, Active24 med ett linuxpaket. Funkar helt bra, förutom funktionen att menyalternativen skall bli röda (görs såklart i CSS) då man befinner sig på den filen. Menyn finns i en skild fil och inkluderas.

inc-navigation.php
Kod:
<?php $page = basename($_SERVER['SCRIPT_NAME']); ?>
<ul>
<li><a href="sida1.php" <?php if ($page == 'sida1.php') { ?>class="active"<?php } ?>>Sida 1</a></li>
<li><a href="sida2.php" <?php if ($page == 'sida1.php') { ?>class="active"<?php } ?>>Sida 2</a></li>
<li><a href="sida3.php" <?php if ($page == 'sida3.php') { ?>class="active"<?php } ?>>Sida 3</a></li>
</ul>
<?php $page = basename($_SERVER['SCRIPT_NAME']); ?> tar reda på vilken fil man befinner sig på så att följande koder fungerar, alltså <?php if ($page == 'sida1.php') { ?>class="active"<?php } ?> kollar om man är på sida1 och om man är det läggs class="active" till i länken.


Detta funkade perfekt på min server, men på Active24 tycks man strunta i min kod och länkarna förblir vita och inte röda när man befinner sig på just den och den sidan. Vad ska jag göra? Finns det någon annan kodlösning :unsure: ?
alejandr0 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-17, 14:47 #2
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Har inte kollat koden närmare men skriv ut basename($_SERVER['SCRIPT_NAME']) och se efter vad du får för resultat.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-17, 15:05 #3
Jonathan P Jonathan P är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 141
Jonathan P Jonathan P är inte uppkopplad
Medlem
 
Reg.datum: Feb 2008
Inlägg: 141
Prova att byta ut
Kod:
basename($_SERVER['SCRIPT_NAME']);
mot
Kod:
basename($_SERVER[''SCRIPT_FILENAME']);
eller
Kod:
basename(__FILE__);
Jonathan P är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-17, 15:21 #4
alejandr0 alejandr0 är inte uppkopplad
Medlem
 
Reg.datum: Apr 2007
Inlägg: 108
alejandr0 alejandr0 är inte uppkopplad
Medlem
 
Reg.datum: Apr 2007
Inlägg: 108
Jag böt ut <?php $page = basename($_SERVER['SCRIPT_NAME']); ?> mot <?php $page = basename($_SERVER['PHP_SELF']); ?> och detta funkar tydligen hos Active24. Hann inte prova Jonathans förslag tyvärr
alejandr0 är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-18, 15:16 #5
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
$_SERVER['PHP_SELF'] är deprecated, enligt PHP teamet.

Mycket osäkert. $_SERVER['SCRIPT_FILENAME'] skall användas.
Jonas är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-18, 15:32 #6
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Magnus_A Magnus_A är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: May 2006
Inlägg: 2 604
Om man tittar i responsen från phpinfo() så står det vilka variabler som finns och vad de innehåller.
Magnus_A är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-06-18, 16:14 #7
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
Citat:
Originally posted by Jonas@Jun 18 2008, 15:16
_SERVER[PHP_SELF] är deprecated, enligt PHP teamet.
Mycket osäkert. _SERVER[SCRIPT_FILENAME] skall användas.
Var hittar du det? Jag skulle inte vilja säga att det är "mycket osäkert", det har fungerat i samtliga fall jag använt det.

Det finns med i dokumentationen på php.net utan närmare kommentarer:

Se här
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-10, 19:48 #8
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
tartareandesire tartareandesire är inte uppkopplad
Supermoderator
 
Reg.datum: Jan 2004
Inlägg: 11 585
*bump*

$_SERVER['PHP_SELF'] är väl inte föråldrat?

Ytterligare en kommentar: __FILE__ kan inte användas i inkluderade funktioner eftersom den då kommer att innehålla sökvägen till den inkluderade filen.
__________________
Full-stack developer, free for smaller assignments
tartareandesire är inte uppkopplad   Svara med citatSvara med citat
Oläst 2008-07-10, 19:58 #9
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
Jonas Jonas är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Feb 2004
Inlägg: 3 364
tartare: Fel av mig, inte deprecated, utan mer klassad som osäker pga XSS. Ber om ursäkt.

Med tanke på datumet under (i länken) så har detta funnits med ett tag.

http://www.sitepoint.com/blogs/2006/01/24/...s-or-dumb-apis/
Jonas är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 07:04.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017