Jump to content
php.lv forumi

Mainiigie - Variables


Mystery2004

Recommended Posts

Haizaa PHP meistari! :)

 

Nu te vairaakas dienas atpaka domaju japaskatas PHP. Nu pamaaciishos!

Meginu, meginu. WWW serveri uzliku, PHP piesleedzu, MySql ari izliku datubaazi izveidoju, meginaaju datus nolasiit - sanaaca, atspogulot ari sanaaca, tipa pamazaam iet un tiiri nekaada vaina tam PHP, bet nu saskaaros ar taadu probleemu. Programmejot citas valodas mainiigos define un ti ari saglaba defineeto vertiibu, vai tas ir funkcija vai globaali, tas nebuutu tik svariigi. Taatad probleema sekojosha:

 

Man ir index.php, tas atspogulo pogas un nelielu info kaa taadu.

Katrai pogai man ir savs php fails. Tipa login.php register.php help.php utt.

Bet nonaacu pie nepiesieshamiibas nodot mainiigos shiem failiem, tas ira:

kaadaa no sadallam kaut kas ir atzimets vai izveeleets, un sho info gribu uzglabat mainiigajaa. uzspiezot uz pogas piemeeram atveras login.php, kur sakuma ir kods kas paarbauda vai esmu ielogojies vai ne.

 

Vai varu defineet mainiigos faila. Piemeeram variables.php un cits *.php fails tos varees nolasiit.

 

Iespeejams man ir galiigi nepareizas domas ka to dariit, bet tikai maacos un luuk griezos pec paliidziibas.

 

Thanks visiem kas paliidzees.

Link to comment
Share on other sites

nodot no vienas lapas uz otru vari izmantojot http GET un POST metodes.

GET metodee mainiigais tiek nolasiits no url.

 

GET piemeers:

lapaa http://www.mansdomains.lv/index.php?mainiigais=lalala

 

echo $_GET['mainiigais']; // tiks izvadiits lalala

 

POST mainiigie tiek nodoti izmantojot formas un domaati lielaakam datu apjomam.

POST piemeers:

<form method="POST" action="lapauzkurunododmainiigos.php">

<input type="text" name="mainiigais" value="lalala">

</form>

 

submitojot formu failaa lapauzkurunododmainiigos.php mainigos var nolasiit:

 

echo $_POST['mainiigais']; // tiks izvadiits lalala

Link to comment
Share on other sites

visu augstākminēto failu augšā:

if (!session_id())

session_id();

 

nododāmos mainīgos saglabājam $_SESSION masīvā

 

$_SESSION['x']=3;

 

citā lapā $_SESSION['x'] jābūt pieejamam.

 

svarīgi ir saprast, ka katrs php fails ir atsevišķa programma, ar savu mainīgo apgabalu on oper. atmiņu.

Link to comment
Share on other sites

A ja kukiji ir atslēgit, tad nekā ar sesijām ...

pilnīga nesaprašana par sessiju mehānismu

 

man vienmēr iekš php.ini session.use_cookies=0

kad tiek pastartēts php, kas pieprasa atvērt sesiju, tad _serveris_ noģenerē katram tādam lietotājam unikālu identifikātoru (balstoties uz IP, pilno pārlūka stringu, pārlūka programmas handle utml, vai nu arī atverot permanento socketu, kā nu kurais). Šis hashs tiek nosūtīts atpakaļ brauzerim, kurš var, bet var arī nenēsāt sev pats to līdzi (operatīvajā atmiņā, nododot to tikai ar slēpto HTTP headeri; vai arī caur $_GET; dažs arī cūkijā utml), bet ja pārlūks nenodod šo identifikātoru, tad serveris to ģenerē no jauna, pēc tā paša algoritma - un loģiski, ka arī tad viņam jāsakrīt ar iepriekšējo.

Attiecīgi katram hasham tiek izveidots failiņš _uz servera_ (sk. temp direktoriju, vai kur viņš to veido jums - session~path), kurā tiek serializēts $_SESSION masīva saturs. Pieslēdzoties klientam ar kādu hashu, tiek pārbaudīts, vai tāds failiņš eksistē, un ja - jā - tad tiek unserializēts tā saturs php pieejamā $_SESSION masīvā (tātad, unikāli katram lietotājam). Ja tāda failiņa nav, tad tiek vērta vaļā jauna sesija (ar jaunu hashu).

Paralēli iet arī cits process, kas nodzēš novecojušo sesiju failus.

 

Jā, cilvēki dāžreiz session.use_cookies=1, _ja_ sessijās glabājas "nekonfidenciāla" informācija.

 

Jā, kūkijos glabā sessijas identifikātoru, lai atsāktu to pašu sesiju, ja pārlūks tika aizvērts. Jo, ja pārlūks tika aizvērts, pie jaunas konekcijas "ienākošie" parametri hashu ģenerēšanas algoritmam būs citādi (cits ports, handle un hvz kas vēl).

Cūkijos saglabāto identifikātoru pirms sessijas uzsākšanas ar session_start ekskluzīvi var iestatīt ar session_id funkciju, vai arī nodot kā PHPSID?=šurum-burum (PHPSID vietā jūsu sessiju mainīgā nosaukums).

Link to comment
Share on other sites

A ja kukiji ir atslēgit, tad nekā ar sesijām ...

pilnīga nesaprašana par sessiju mehānismu

 

man vienmēr iekš php.ini session.use_cookies=0

kad tiek pastartēts php, kas pieprasa atvērt sesiju, tad _serveris_ noģenerē katram tādam lietotājam unikālu identifikātoru (balstoties uz IP, pilno pārlūka stringu, pārlūka programmas handle utml, vai nu arī atverot permanento socketu, kā nu kurais). Šis hashs tiek nosūtīts atpakaļ brauzerim, kurš var, bet var arī nenēsāt sev pats to līdzi (operatīvajā atmiņā, nododot to tikai ar slēpto HTTP headeri; vai arī caur $_GET; dažs arī cūkijā utml), bet ja pārlūks nenodod šo identifikātoru, tad serveris to ģenerē no jauna, pēc tā paša algoritma - un loģiski, ka arī tad viņam jāsakrīt ar iepriekšējo.

Attiecīgi katram hasham tiek izveidots failiņš _uz servera_ (sk. temp direktoriju, vai kur viņš to veido jums - session~path), kurā tiek serializēts $_SESSION masīva saturs. Pieslēdzoties klientam ar kādu hashu, tiek pārbaudīts, vai tāds failiņš eksistē, un ja - jā - tad tiek unserializēts tā saturs php pieejamā $_SESSION masīvā (tātad, unikāli katram lietotājam). Ja tāda failiņa nav, tad tiek vērta vaļā jauna sesija (ar jaunu hashu).

Paralēli iet arī cits process, kas nodzēš novecojušo sesiju failus.

 

Jā, cilvēki dāžreiz session.use_cookies=1, _ja_ sessijās glabājas "nekonfidenciāla" informācija.

 

Jā, kūkijos glabā sessijas identifikātoru, lai atsāktu to pašu sesiju, ja pārlūks tika aizvērts. Jo, ja pārlūks tika aizvērts, pie jaunas konekcijas "ienākošie" parametri hashu ģenerēšanas algoritmam būs citādi (cits ports, handle un hvz kas vēl).

Cūkijos saglabāto identifikātoru pirms sessijas uzsākšanas ar session_start ekskluzīvi var iestatīt ar session_id funkciju, vai arī nodot kā PHPSID?=šurum-burum (PHPSID vietā jūsu sessiju mainīgā nosaukums).

šim forumam vaidzētu pielikt fīču ar postu novērtēšanu, dodu savas 5 zvaigznītes šim postam ;)

Link to comment
Share on other sites

Jā, cilvēki dāžreiz session.use_cookies=1, _ja_ sessijās glabājas "nekonfidenciāla" informācija.
Nu shis gan attiecas tikai uz sesijas id glabaashanu liidz ar to konfidenciaala/nekonfidenciaala nav pareizi, jo dati anyway ir servera pusee.

 

Jā, kūkijos glabā sessijas identifikātoru, lai atsāktu to pašu sesiju, ja pārlūks tika aizvērts.

Parasti nokluseetaa konfiguraacijaa ir:

session.cookie_lifetime = 0

 

Liidz ar to tiek veidota jauna sesija pie browsera aizveershanas/atveershanas. Ja gribaas lai taa buutu tad jaaseto savs cookijs un tad jau kaa Venom teica ar session_id() likt tur sesijas id vai arii jaamaina shis parametrs un janoraada cookiju lifetime (kas gan manupraat nav ieteicams).

Link to comment
Share on other sites

session_id() - atgriež (ja tiek palaista bez parametriem) /uzstāda sessijas identifikātoru (ja tas tiek nodots kā parametrs)

 

session_start() iesāk sessiju ar aktīvo identifikātoru

 

es parasti izmantoju variantu:

 

if (!session_id())

session_start();

 

gadījumā, ja fails tiek inklūdots citā, kur jau iesāknēta B) sessija.

Link to comment
Share on other sites

×
×
  • Create New...