webForumDet fria alternativet

högst prioritet

12 svar · 354 visningar · startad av netfeed

netfeedMedlem sedan mars 2001593 inlägg
#1

jag har en liten fråga om vad som har högst prioritet
tex:

jag har ett script som ser ut så här /?slump=1
nu är frågan om detta har högre prioritet än

<?php
$slump = 1;
?>

för det skulle var trevlig att veta...

ziriusMedlem sedan sep. 200217 inlägg
#2

Om jag inte har helt fel så blir det värdet som du sätter i själva koden, inte det som skickas med, bland annat av säkerhetsskäl.

netfeedMedlem sedan mars 2001593 inlägg
#3

det borde ju vara så men det vore kul att få reda på det... kankse skall testa...

ziriusMedlem sedan sep. 200217 inlägg
#4

*s* Jo, det vore ju en idé :)
Men det ÄR så alltså... när du skickar med en variabel som en querystring så skapas den då, men sen när du använder den i koden så ändrar du den... Det vore ju lite konstigt annars, om den vore helt omöjlig att ändra, och det skulle öppna för säkerhetsproblem. Tänk om du skulle ha en variabel som heter $sql i scriptet blabla.php t.ex. som innehåller sql-anrop, om någon sätter "blabla.php?sql=delete+from+user" t.ex. så skulle allt i din tabell "user" tas bort, trots att du senare i koden försöker ändra värdet på $sql, och det vore ju knappast särskilt säkert? :)

netfeedMedlem sedan mars 2001593 inlägg
#5

nej det vore det ju inte
men jag tänkte snare så här
?slump=1

<?
$slump=0;
if($_GET['slump'])
  echo "1";
else
  echo "2";
?>

ser du vad jag menar? jag hämntar ju slump med $_GET borde det inte ta slump från ämnesraden? eller plockar den lika gärna från koden i sig?

MatteMedlem sedan aug. 20002 975 inlägg
#6

Använder du ?slump=1 så har du värdet i $_GET['slump']. Om register_globals är satt så har du dessutom variabeln $slump med värdet 1.

Gör du några ändringar av värdet i $slump så kommer inte $_GET['slump'] att påverkas eftersom de är två helt skilda variabler, som dock är skapade från samma källa.

netfeedMedlem sedan mars 2001593 inlägg
#7

det var ju dumt med tanke på att jag programerar med utgången att register_globals=off

jag tänkte på att det skulle kunna gå med

if($_GET['slump'] || $slump)

men detta funkar ju inte om någon som kör register_globals=on eller hur? för $_GET['slump'] kan ju vara 1 och $slump kan vara 0 vilket pajar själva scriptet. om man sedan kör ifsattser för att kolla vilken som är på eller av så tar ju det upp massa extra plats i scriptet vilket jag inte vill för att det skall vara tänkt som ett script som skall läggas upp på script avdelningen här på webforum, så hur skulle man kunna göra detta lättast?

MatteMedlem sedan aug. 20002 975 inlägg
#8

Vad är det du försöker göra. Det kanske finns andra vägar.

netfeedMedlem sedan mars 2001593 inlägg
#9

jag håller på med ett fotogalleri, där en av funktionerna skall vara att man skall kunna surfa in och få en slumvisvald bild upp poppad på skärmen, detta då mha ?slump=1
men jag tänkte lägga in så att man skall kunna få denna funktion via koden direkt, och så att när man kommer in på index.php så får man slumpen istället
nu ville jag ha det så att slump i koden väger tyngre än ?slump=1 och vid kod slump=0 då skall man få se om ?slump=1 är satt till ett och då får man upp slumpdelen, är det lite klarare nu?

jag vill ha så lite ifsatser och liknande som möjligt

MatteMedlem sedan aug. 20002 975 inlägg
#10

Jag är väl lite kort i huvudet, för jag har läst det fem gånger och har inte blivit klokare.

Alt 1.
index.php?slump=1 respektive index.php?slump=0 betyder "slumpa ja" resp "slumpa nej".
Den här tolkningen tror jag inte riktigt på eftersom den inte stämmer med det du skriver i övrigt.

Alt 2.
Det är slumpat när länken skapades så du kan ha index.php?slump=1 eller index.php?slump=22 eller index.php?slump=5 t.ex.

Jag går på alternativ 2 (kanske fel det också).
Det innebär att skriptet ska ta fram den bild(nr) som är angiven där. Finns ingen $_GET['slump'] eller $_GET['slump'] är lika med 0 så ska det slumpas i skriptet.

Då skulle man kunna göra något på det här hållet:

if (!isset($_GET['slump']) || $_GET['slump'] == 0)) {
   $slump = mt_rand( _INTERVALL_ );
} else {
   $slump = $_GET['slump'];
}

Får se om jag ens var i närheten :)

netfeedMedlem sedan mars 2001593 inlägg
#11

det var snarare alt 1 som stämde mest

jag har bara två val ?slump=1 eller ?slump=0

men jag vill ha valet att man skall kunna ställa om så slump visas hela tiden när man surfar in direkt till index.php alltså

slump = 1;

men jag vill inte ha det så att ?slump=0 stör $slump=1;
och jag vill inte ha det skrivit i massa if-satser för att få detta att fungera...

är det klarare? eller mspte ja ge ett större exempel?

MatteMedlem sedan aug. 20002 975 inlägg
#12

Det här är troligtvis helt fel, men så här uppfattar jag det du skriver först:

index.php?slump=1 => slumpa
index.pho?slump=0 => slumpa inte
index.php => slumpa

Isåfall så borde detta funka:

(isset($_GET['slump]) && $_GET['slump']==0) ? $slump=0 : $slump=1;

En annan tolkning jag kan göra är att den slump som kommer ifrån URL-en är en helt annan variabel än den $slump som finns i koden.
I såfall rekommenderar jag att du byter namn på variabeln eller arbetar med dom som de två olika variablerna $slump och $_GET['slump'].

Hela idén med att ha en variabel i URL-en är för att skicka in värden till variabler i koden, så får den inte sätta några värden andra än de du senare sätter i koden så ser jag inte finessen med att ha något i din URL överhuvudtaget.

Jag har väl fortfarande troligtvis inte förstått vad du försöker göra.

netfeedMedlem sedan mars 2001593 inlägg
#13

index.php?slump=1 => slumpa
index.pho?slump=0 => slumpa inte
index.php => helt annan sida

:)

men vi kan lägga ner det tills jag fattat ordentligt vad ajg vill göra tror inte ens det skall behövas då det bara är en lite funktion av vad som skall finnas i scriptet och jag ligger fortfarande på v0.6 så det kan vänta...

133 ms totalt · 3 externa anrop · v20260731065814-full.86db40fa
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)