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...
12 svar · 354 visningar · startad av netfeed
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...
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.
det borde ju vara så men det vore kul att få reda på det... kankse skall testa...
*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? :)
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?
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.
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?
Vad är det du försöker göra. Det kanske finns andra vägar.
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
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 :)
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?
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.
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...