variabile di sessione

ciao! sono imparando php , mi serve utilizzare una variabile di sessione ma mi da errore:

io la inizializzo in una pagina:

$id=$_POST[idcliente];
session_start(); 
session_register('idcliente');
$_SESSION["idcliente"] = $id;

e provo a leggerla in un'altra pagina così:

session_start();
$id = $_SESSION['idcliente'];

ma mi da:

PHP Warning: session_start() [function.session-start]: open(C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload\sess_h5rhqofobd9sduboajojgfcnv4, O_RDWR) failed: No such file or directory (2) in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 35 PHP Notice: Undefined index: idcliente in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 36 PHP Notice: Undefined variable: sql in C:\Inetpub\wwwroot\ecom\errore.php on line 4 PHP Warning: Unknown: open(C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload\sess_h5rhqofobd9sduboajojgfcnv4, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload) in Unknown on line 0

come dovrei fare invece??

inviato 9 anni fa
cyb
cyb
1
X 0 X

A me sembra che non ci siano i permessi di scrittura e quindi non riesce a salvare la sessione.

E poi session_register('idcliente'); è inutile. ;)

risposto 9 anni fa
LonelyWolf
X 0 X

grazie, cosa devo settare per dare i permessi di scrittura??

risposto 9 anni fa
cyb
cyb
1
X 0 X

Prova prima a modificare il php.ini. Cerca la direttiva session.save_path ed impostala a:

session.save_path = "C:\WINDOWS\Temp"

Poi riavvia Apache.

Inoltre ho visto che fai confusione nell'uso delle sessioni per cui ti suggerisco di leggere questo articolo:

http://www.phpnews.it/articoli/php/le-sessioni/

 :bye:

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

grazie, ma mi da sempre quell'errore se faccio così:

session_start();
$_SESSION['idcliente'] = $id;

e nell'altra pagina:

session_start();
$id = $_SESSION['idcliente'];

come dovrei correggere o settare il php.ini,

questo l'ho fatto:

session.save_path = "C:\WINDOWS\Temp"

risposto 9 anni fa
cyb
cyb
1
X 0 X

Visto che adesso le sessioni le salva qui: session.save_path = "C:\WINDOWS\Temp" vai a mettere i permessi alla cartella Temp, click col destro, proprietà, protezione e abilita tutti a leggere/scrivere.

risposto 9 anni fa
LonelyWolf
X 0 X

grazie, l'ho fatto e non mi da + l'errore ma se aggiungo alla query l'id recuperato dalla sessione mi da errore:

session_start();
   $id = $_SESSION['idcliente'];
   
$sql="INSERT INTO scadenze_domini (dominio, spazio, hosting, importo_hosting, scadenza_dominio, scadenza_hosting, host, user_ftp, pass_ftp,idcliente ) VALUES ('$dominio', '$spazio','$hosting','$importo_hosting','$scad_dominio','$scad_hosting','$host','$user_ftp','$pass_ftp','$id')";

invece di così che funziona:

$sql="INSERT INTO scadenze_domini (dominio, spazio, hosting, importo_hosting, scadenza_dominio, scadenza_hosting, host, user_ftp, pass_ftp) VALUES ('$_POST[dominio]', '$_POST[spazio]','$_POST[hosting]','$_POST[importo_hosting]','$_POST[scad_dominio]','$_POST[scad_hosting]','$_POST[host]','$_POST[user_ftp]','$_POST[pass_ftp]')";

forse perchè l'id è un numero e devo scriverlo in un'altro modo???

risposto 9 anni fa
cyb
cyb
1
X 0 X

Perchè le stringhe/caratteri devono essere inseriti con ' o " per identificarli tali, i valori numerici non devono averli altrimenti mysql considera il numero come carattere e restituisce errore dato che non puoi mettere caratteri in un campo numerico.

Es.

$id = 1
$nome="pippo"
$sql = "insert into tabella (nome, id) values ('$nome','$id');";

Da errore perchè considera il valore di $id come il carattere 1

$id = 1
$nome="pippo"
$sql = "insert into tabella (nome, id) values ('$nome',$id);";

Così va correttamente perchè il valore di $id è considerato come numero 1.

invece di così che funziona:

$sql="INSERT INTO scadenze_domini (dominio, spazio, hosting, importo_hosting, scadenza_dominio, scadenza_hosting, host, user_ftp, pass_ftp) VALUES ('$_POST[dominio]', '$_POST[spazio]','$_POST[hosting]','$_POST[importo_hosting]','$_POST[scad_dominio]','$_POST[scad_hosting]','$_POST[host]','$_POST[user_ftp]','$_POST[pass_ftp]')";

Così va perchè non ci hai messo proprio l'$idcliente, nè giusto nè sbagliato!

;D

risposto 9 anni fa
LonelyWolf
X 0 X

grazie, se ci metto $id=1 e nella stringa sql senza le virgolette, non mi da errore, invece se metto

session_start();
$id = $_SESSION['idcliente'];

mi da quest'errore:

Query was empty

1065zbr>PHP Warning: session_start() [function.session-start]: open(C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload\sess_p1k257nbv3k7onicmg554ll7j5, O_RDWR) failed: No such file or directory (2) in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 35 PHP Notice: Undefined index: idcliente in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 36 PHP Notice: Undefined variable: sql in C:\Inetpub\wwwroot\ecom\errore.php on line 4 PHP Warning: Unknown: open(C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload\sess_p1k257nbv3k7onicmg554ll7j5, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload) in Unknown on line 0

quali settaggi dovrei fare??o correzioni??

risposto 9 anni fa
cyb
cyb
1
X 0 X

hai cambiato ancora session.save_path, li non ha i permessi per scrivere.

risposto 9 anni fa
LonelyWolf
X 0 X

il fatto è ke non la trovo questa cartella

C:\DOCUME~1\roberta\IMPOST~1\Temp\php\upload

dentro

C:\DOCUME~1\roberta\IMPOST~1\Temp\

non c'è php

 :'( :'(

risposto 9 anni fa
cyb
cyb
1
modificato 9 anni fa
X 0 X

Ti avevo consigliato di usare:

ession.save_path = "C:\WINDOWS\Temp"

Avevi pure cambiato i permessi alla cartella. Adesso non ti piace più?

risposto 9 anni fa
Gianni Tomasicchio
X 0 X

l'ho fatto, poi l'ho rifatto così:

upload_tmp_dir="C:\document and settings\roberta\impostazioni locali\temp"

session.save_path="C:\document and settings\roberta\impostazioni locali\temp"

condividendo la cartella temp con nome temp, ma mi da sempre:

Query was empty

1065zbr>PHP Warning: session_start() [function.session-start]: open(C:\document and settings\roberta\impostazioni locali\temp\sess_81kabjih40b1t1ti59000v25t2, O_RDWR) failed: No such file or directory (2) in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 35 PHP Notice: Undefined index: idcliente in C:\Inetpub\wwwroot\ecom\ins_dominio.php on line 36 PHP Notice: Undefined variable: sql in C:\Inetpub\wwwroot\ecom\errore.php on line 4 PHP Warning: Unknown: open(C:\document and settings\roberta\impostazioni locali\temp\sess_81kabjih40b1t1ti59000v25t2, O_RDWR) failed: No such file or directory (2) in Unknown on line 0 PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\document and settings\roberta\impostazioni locali\temp) in Unknown on line 0

 :'( :'( :'(

risposto 9 anni fa
cyb
cyb
1
X 0 X

non devi condividere la cartella, ma solo cambiare i permessi, sono due concetti differenti.

Infatti questo:

PHP Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\document and settings\roberta\impostazioni locali\temp) in Unknown on line 0

è la madre di tutti gli errori, non riesce a scrivere la sessione nella cartella, di conseguenza non può essere letta e non esistono  i valori per le query.

risposto 9 anni fa
LonelyWolf
X 0 X

ho sistemato il percorso e mi funziona!!!!!

grazie tante del vostro aiuto!!!!!!!

 :D :D :D

ciao1 :bye:

risposto 9 anni fa
cyb
cyb
1
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda