Jump to content
php.lv forumi

Nestrada PHP 4.3.4 sesijas (apskaidrojiet ludzu)


andris_b

Recommended Posts

:( Varbuut kaads var izskaidrot taadu lietu! Es ieksh PHP 4.3.4 izveidoju sesiju ar session_start() un peectam registreeju mainiigos ar session_register() it kaa vis OK tiek izveidots fails direktorijaa kura noraadiita PHP.INI prieksh sesijaam Bet probleema ir tur ka es nekaadiigi nevaru daboot taas saglabaaataas veertiibas aaraa! CIk es sapratu tad itkaa vinsh neredz ka tur ir kautkas saglabaats jo kad ar isset paarbaudiiju vinsh uzkatiija ka tas sessijas mainiigais ir tuksh ! Luudzu pasakiet kas man vareetu buut taa par probleemu!!!!

Link to comment
Share on other sites

:huh: Ok tas kods pirmaja faila xxx1.php izskatas sekojoshi:

<?
//error_reporting(512);
session_start();

session_register('vards');
session_register('uzvards');

$vards=2;
$uzvards=4;
?>

Tjipa te tiek izveidota sesija un tas viss straadaa jo mapee c:/temp kas noraadiita prieks sesijaam php.ini failaa tiek izveidots fails ar attieciigiem mainiigiem

 

Otraa failaa xxx2.php kods izskataas sekojoshi:

<?
//error_reporting(512);
session_start();


echo"<br/>uzvards=$_SESSION['uzvards']<br/>";
?>

 

Nezinu bet tikko tiek izsaukts pirmais fails paraadaas warnings:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Apache2\htdocs\xxx1.php:9) in C:\Apache2\htdocs\xxx1.php on line 11

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Apache2\htdocs\xxx1.php:9) in C:\Apache2\htdocs\xxx1.php on line 11

 

Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0

Kaa palaizhu otro ta paraadaas
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Apache2\htdocs\xxx2.php:9) in C:\Apache2\htdocs\xxx2.php on line 11

 

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Apache2\htdocs\xxx2.php:9) in C:\Apache2\htdocs\xxx2.php on line 11

 

uzvards=

kur kaa redzmas uzvards ir tuksh, bet cik saprotu vajadzeeja paraadiities mainigaa veeertiibai

 

:o Luudzu paliidziet varbuut man ir jaapaarliek php vai kas cits

Link to comment
Share on other sites

ņu nezinu cik tev tur ir faili, bet jānodrošina, ka visi

 

session_start()

header()

 

u.tml. funkcijas startējās tikai pirms jebkāda izvada (texts, binārie dati). Vai nu iekš php.ini (vai run-taimā, ja ļauj) slēgt iekšā output_buffering uz on.

 

<html>

<?php

session_start();

- errors

 

<?php

session_start();

?>

<html>

- nav errors

Link to comment
Share on other sites

BTW: warningā tev stāv, ka ir session cookie, iekš php.ini attiecībā uz session_use_cookies kaut kas ir sakāms

Un vēl - cerams, ka otro failu tu ver vaļā pirmā faila pārlūka loga atvasē - vai nu ar linku, vai ctrl+n, citādi tev veras vaļā _divas_ sessijas - katram browsera logam.

Iztīri c:/temp, ienāc lapā un paskaties, vai tempā uzradies failiņš ar 32 ķēburu nosaukumu. Ja pārejot uz otru lapu tev tur parādās cits, tad tev verās vaļā jauna sessija. RFisinājums: jāapskata pāriešanas mehanisms; php.ini settingi; sessijas id jānodod pašrocīgi - iekš php.ini nodefinēts mainīgais PHPSESSID, vai SID, pie katra linka jāliek klāt ?...&SID='.session_id().', ja serveris to nedara pats (iekš php.ini tas arī norādams - rewrite_tags vai tml.).

Link to comment
Share on other sites

Joho hoooo! :rolleyes: Tas mans kods negaaja, bet panjeemu vienu gatavu login sisteemu kura man arii negaaja deelj sesijaam un taa tagad aizgaaja ideaali :) Bet tur lai nolasiitu info no sessijas cik es sapratu tiek izmantots $_POST! Taa tas vareetu buut???? Es butu ljoti pateiciigs ja man atsuutitu pa visam vienkaarshus failinjus kuru starpaa tiek izmantots SESSION (Nu HALLO WORLD liimenii)!!! Jau iepriekš pasaku paldies par paliidziibu gruutaa briidii ! :D

Link to comment
Share on other sites

Tomeer laikam pa aatru sapriecaajos! kautkas nav ar to panjemshanu no sesiijas faila tagad man (peec Venom ieteikuma) sessijas failaa bez mainiigo veertiibaam atrodas arii kautkaads keburu virkneejums laikam sesiijas id cik saprotu, bet kas man jadara lai visu to nolasiitu vai tieshaam php 4.3.4 nav domaats kopaa ar Apache2 prieksh sessijaam!! Ja kaadam ir tieshi taada pasha programmaturas versija php4.3.4 un Apache 2.0.48 (Vai vismaz ar Apache2) un viss ar sessijaam ir ok tad luudzu dodiet zinju!

Situaacija ir taada ka nezinu ko dariit likt vecaaku versiju! Varbuut man tiesham kautkas nav kaartiibaa ar to apache vai php configuraciju.

Spechuki paliidziet! :o

Link to comment
Share on other sites

Es peec VENOMA ieteikuma ieliku php.ini failaa to SID bet nezinu vai taa ir pareizi es to uzrakstiiju sekojoshi:

url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=,fieldset=,SID='.session_id().'"

Ja kautkas nav pareizi tad luudzu dodties zinju bet lieta taada ka nekas labaaks par to ka pazuda tie error reporti nenotieka notiek tas pats ka izveidot sessiju varu bet no taa faila neko nenolasa pie sessijas izsaukshanas kautkas nav kaartiibaa betnezinu kas! :angry:

Paliidziet

Link to comment
Share on other sites

... SID='.session_id().' ...

 

tur nu tiešām nevajadzētu likt - jo url_rewrite tieši nosaka pie kādiem tegiem pierakstāms SID un iekš php.ini session_id() nu tiešām nestrādā.

 

pamēģini parefreshot šito:

 

<?php

if (!session_id())

session_start();

 

echo session_id();

 

echo '<pre>';

print_r($_SESSION);

echo '</pre>';

 

$_SESSION[]=gmmktime();

?>

 

pa rokai nav php.ini

 

pirmajā rindiņā redzēsi, vai mainās sessiju identifikators - ja tas "2389645uygsdv" mainās - tad tef katru reizi veras vaļā jauna sesija. Apsk. php.ini session_autostart vai kaut ko tml. => uz 0/false;

 

tālāk ar katru refrešu jābūt vairāk un vairāk datu, ja tā nav, bet sessijas ID ir stabils, tad varētu būt, ka tavs HDD/Apache nepaspēj ierakstīt mainīgos sesijā (reti, bet gadās).

 

ko vēl var darīt - iekš $_REQUEST arraya var atrasties sessijas ID, no kuras ienākts lapā (apskatāms ar print_r($_REQUEST)) - tad viens no variantiem ir manuāli atsākt sessiju ar iepriekšējo identifikatoru, ķipa;

 

session_id($_REQUEST['SID']); //liekam izmantot veco "failiņu"

session_start();

Link to comment
Share on other sites

ja man iet tikai ar trans.sid bet ar cookiem neiet taas sesijas kas vereetu buut vainaa jo nekas cits nelidz kas ieprieksh jau tika aprunaats!

Vai nevarētu salikt kaut kur komatus. Varbūt pārāk daudz šampānieša esu sarāvies, bet nevaru izštukot no tā vārdu salikuma intonāciju & jēgu.

Link to comment
Share on other sites

×
×
  • Create New...