webForumDet fria alternativet

Byta ut innehåll på sida med hjälp av länk

PHP

6 svar · 601 visningar · startad av Trankan

Medlem sedan okt. 2006129 inlägg
Frågan#1

Hej!

Skulle behöva lite hjälp med en grej som jag fastnat på. Jag har en sida som innehåller en länk, och när man klickar på länken så ska innehållet på sidan bytas ut. Min fråga är helt enkelt om det här går att lösa? Vet att det här forumet har en liknande funktion för sin registreringsprocess. Både reglerna och formuläret ligger i samma PHP-fil, även fast de inte visas samtidigt.

Medlem sedan juli 20033 147 inlägg
#2
<?
if ($_GET['foo'] == 'bar') {
   echo 'foo bar';
} else if ($_GET['bar'] == 'foo') {
   echo 'bar foo';
}
?>

<a href="?foo=bar">länk 1</a>
<a href="?bar=foo">länk 2</a>
Medlem sedan okt. 2006129 inlägg
#3

Melea skrev:

<?
if ($_GET['foo'] == 'bar') {
   echo 'foo bar';
} else if ($_GET['bar'] == 'foo') {
   echo 'bar foo';
}
?>

<a href="?foo=bar">länk 1</a>
<a href="?bar=foo">länk 2</a>

Tack för svaret Melea! Har själv funderat på en sån här lösning, men problemet är att man då inte behöver använda länken för att nå materialet. Vet man bara adressen så kan man lika gärna skriva in den direkt istället för att använda länken. Misstänker att det kan bli svårlöst, men helst skulle jag vilja att man inte kan komma åt informationen på något annat sätt än att faktiskt klicka på länken.

Medlem sedan mars 20034 471 inlägg
#4

Trankan skrev:

Jag har en sida som innehåller en länk, och när man klickar på länken så ska innehållet på sidan bytas ut. Min fråga är helt enkelt om det här går att lösa? Vet att det här forumet har en liknande funktion för sin registreringsprocess. Både reglerna och formuläret ligger i samma PHP-fil, även fast de inte visas samtidigt.

Det är enkelt att visa olika delar av samma sida beroende på olika variabler. MEN om du vill styra det enbart en länk blir det lite struligare. Den mottagande sidan kan aldrig (rakt av) avgöra om man kom till exempel.php?link=1 via ett klick på

<a href="exempel.php?link=1">Gå till mina länkade sida</a>

eller via kreativt skrivande direkt i URL:n.

Enklaste vägen runt är att du använder sessioner. Låt sidan med länken sätta en SESSION-variabel ock kolla om den är satt på exempel.php. Då har man i alla fall varit på den sida som länken finns på. :)

Medlem sedan jan. 2004140 inlägg
#5

Jag får kanske ställa en följdfråga på en inte så gammal tråd (då den är inne och nosar på något jag funderar över);

I vissa inlägg har jag läst att det ska vara bättre att använda en SESSION-variabel istället för en GET. Nu har jag ju inte hittat dessa trådar efter ett flertal sökningar, så min fråga är ju självfallet när detta är berättigat?

Nu tänker jag inte på så triviala fall som i ett login system eller att man inte bör posta ett formulär med GET (istället för POST) osv. Jag har funderat på ifall det skulle vara bättre att använda session i liknande fall som ovan, tills jag såg aasah inlägg. Säg t.ex. att man vill gå in och se på en medlems profilsida (dvs. inga konstigheter om någon råkar trilla in på sidan via länken) eller om man skickar ex. felmeddelande, då ska det väl inte vara några konstigheter att ta ut profile_id genom en GET?

Vet inte hur jag har snurrat in mig i denna fundering, då det innan har varit rätt självklart.

Medlem sedan mars 20007 896 inlägg
#6

Nej, det är inga konstigheter att gå genom GET-variabler i ditt exempel - det är snarare berättigat. Däremot om man vill mellanlagra information mellan olika sidor är det många som använder sig av adressfältet (GET) istället för att använda sessioner, som (oftast) är mer berättigat i det fallet.

Så fortsätt du med att använda dina GET-variabler! :)

Medlem sedan jan. 2004140 inlägg
#7

Phew, tack och lov att det bara var en fnupp jag hade fått - hade blivit en hel del omskrivning av kod i annat fall :)

Okej, jag har ju iofs kört så att, om jag behöver initieringsinställningar till ett formulär så lyssnar detta efter ett isset från ett tidigare formulär som skickar data innehållande initinställningarna med POST (och om det behövs läggs någon av dessa som en hidden field).
Men det borde ju inte vara någon skillnad på att använda jämfört med SESSION?
Stor skillnad dock att använda GET i detta fall, yikes :)

Tack för det snabba svaret björn!

275 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
129 ms — deklarationer (db)
0 ms — hämta statistik (cache)
143 ms — hämta tråd, inlägg och bilagor (db)
126 ms — ändringar (db)