mantenere le informazioni

opeth978

Utente Attivo
24 Ott 2005
21
0
1
Buongiorno a tutti ho un piccolo prob., ho stò realizzando una pagina internet con php e mysql.
Creato un'utente vorrei che al momento del login mi conservasse le informazioni per tutte le pagine (es. username). ma una volta inserito username e password invio nella pagina succesiva ho aggiunto la script <?=$username ?> e lui me lo mostra ma come creo un link su di una terza pagina e la apro mi dà un'errore che la variabile non è stata definita.
Esiste un modo per conservare le informazioni?
ciao e grazie
 
Potresti usare le sessioni oppure con i cookie, altrimenti valuta se puoi inviare le informazioni da pagina a pagina attraverso il metodo GET...
 
cache

Grazie per i consigli, ma essendo un neofita non saprei nemmeno da dove partire nell'utilizzo delle sessioni e della cache, mentre mi sembra che nel caso di più connessioni contemporaneamente con il metodo GET succederebbero dei casini, o sbaglio?
 
Non ho mai letto da nessuna parte che con il metodo GET succedono i problemi che tu dici... mi sembra comunque una problematica molto interessante sulla quale ti invito a te o altri interessati a dilungarsi.:hammer:

Per quanto riguarda le sessioni e i cookie, il loro utilizzo è molto semplice penso che se cerchi qualche tutorial su questo sito o su internet potrai facilmente apprenderne i rudimenti ed implementarli nei tuoi script...:book:

CIAO:elvis: :beer:
 
provato

beh ho provato ad inserire all'interno del file .php che controlla il nome username e pwd ho aggiunto la stringa session_register($username) ma niente????

<?
include('connect.php');

$text1 = "Controlla che username o la password non siano vuoti!";
$text2 = "username o password Sbagliate!";
$file = "admin.php";
$file3 = "login.php";

$username=$_POST["user"];
session_register($username);//*******************//
$password=$_POST["pass"];
$sqlquery="select * from clienti where username ='$username' and password='$password'";
$controllo1=mysql_query($sqlquery);
$controllo=mysql_num_rows($controllo1);

if ($username == "****" && $password == "*****"){
include ("$file");}
else
{
if ($username == null || $password == null) {
echo "<h4 align=center>$text1</h4>";}
else {
if ($controllo != NULL)
{
include ("$file3");}

else {
echo "<h4 align=center>$text2</h4>";
}
}
}
?>
 
sinceramente io la sessione la apro in altro modo...

session_start();

$_SESSION['esempio'] = $_GET/POST['esempio'];

Ps: devi ricordarti che la sessione la devi aprire sempre all'inizio della pagina..
 
siamo a metà del cammino

Beh sono riuscito a portare le mie informazioni a tutte le pagine solo che mi dà il seguente errore:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\net1\index_ordini.php:8) in c:\programmi\easyphp1-8\www\net1\index_ordini.php on line 15

ho semplicemente aggiunto nei dati del login
session_register();
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;

e poi nelle pagine interessate

session_start();
$username = $_SESSION['username'];
echo $username;

ma mi dà quell'errore che sinceramente non capisco cosa vuol dire????
 
risolto

ok risolto mi bastava mettere la script sessio_start() all'inizion della pagina html.... ma come prima cosa

:beer:
 
session_destroy()

si ma noto un nuovo problema, quando torno semplicemente indietro con i tasti di explorer (e firefox) mi dà impossibile visualizzare la pagina......
come se fosse scaduta e poi se faccio refresh mi dà l'errore come se non avessi inserito username e password (text che ho aggiunto nello script del login) praticamente come se avesse perso le informazioni ma il fatto è che non ho aggiunto nessun session_destroy().......
 
Posto qui il mio problema visto ke è lo stesso ma ke a me da cmq l'errore:dipser: è uno script semplicissimo dove cerco di memorizzare un valore TRUE nella variabile di sessione:


<?php
$ctrl_cat_merc = true;
session_start();
session_register();
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;
?>
il valore della sessione "ctrl_cat_merc" è: <?echo($_SESSION['ctrl_cat_merc']);?>

Morale della favola mi restituisce il valore 1 quindi TRUE ma mi da questo errore:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db2.php:2) in c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db2.php on line 4

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db2.php:2) in c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db2.php on line 4
il valore della sessione "ctrl_cat_merc" è: 1

chi mi aiuta?
Grazie 1000:fonzie:
 
Dusino dal cuore d'ora aiuta tutti volentieri... :angel:
la funzione
session_start();
deve essere eseguita come prima cosa...
mettila dinque in testa alla tua pagina,
prima ancora del TAG <html>
altrimenti da il famoso errore...

ritenta...
ma rispondete per favore
anche al mio post???
Quello sull'area download???

Ich Bedanke mich im voraus für eure Hilfe :love:
 
Dusy ha scritto:
ma rispondete per favore
anche al mio post???
Quello sull'area download???
Grazie 10.000 ora funziona e do una sbirciatina al tuo post nella speranza di ricambiare:fonzie:
 
Ho parlato troppo presto:dipser: cioè se la faccio facile facile funziona...ma se creo una condizione in cui se la tale tabella di mysql è vuota metto false e se è piena metto true mi da un errore...con questo codice semplice semplice funziona:

<?php
session_start();

$ctrl_cat_merc = true;

session_register();
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;
?>
il valore della sessione è <?echo($_SESSION['ctrl_cat_merc']);?>

Con questo in cui creo la condizione mi da errore:


<?php
session_start();
//CONNESSIONE A MYSQL
require('../config.php');
$sqlquery = "SELECT * FROM categorie_merci";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);
//SE LA TABELLA E' VUOTA
if ($number < 1)
{
$ctrl_cat_merc = false;
}
//SE LA TABELLA HA ALMENO UN RECORD
else
{
$ctrl_cat_merc = true;
}
//MEMORIZZO IL VALORE NELLA SESSIONE
session_register();
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;
?>
Mi da questo errore:

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db.php:2) in c:\programmi\easyphp1-8\www\gestionale2\sistema\ctrl_db.php on line 3

Il valore della sessione è
<?echo($_SESSION['ctrl_cat_merc']);?>


Sai aiutarmi?Grazie 1000:byebye:
 
Ultima modifica:
Non sapendo dove sbattere la testa visto che corretti un paio d'imperfezioni
tutto girava bene, mi sono letto il manuale...e questo dice:
Se stai utilizzando $HTTP_SESSION_VARS o $_SESSION, non usare session_register(),
session_is_registered() e session_unregister(). Il perchè non lo sò ma lo dice il manuale...
Se viene usata $_SESSION (o $HTTP_SESSION_VARS per PHP 4.0.6 o inferiore),
assegna la variabile direttamente come $_SESSION.
es. $_SESSION['var'] = 'ABC';
Io ho provato il tuo sorgente e come ripeto funziona senza problemi!

L'unica cosa che secondo il manuale sarebbe
sbagliata è...

//MEMORIZZO IL VALORE NELLA SESSIONE
session_register();
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;

perchè o fai così:
session_register($ctrl_cat_merc;);

o fai così:
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;

Sei sicurissimo al 100% che prima di
<?php
session_start();
non ci siano TAG di nessun tipo???
nemmeno uno spazio o una virgolina???
 
Si sicurissimo.Ti ringrazio infinitamente dell'aiuto.
Io ho risolto togliendo addirittura session_start() :D
Da quello ke ho capito io session_start() lo usi x rikiamare una sessione...quindi se devi semplicemente scriverla non serve ke lo metti...e poi c'è il discorso che se non l'hai ancora scritta php si arrabbia quindi devi dirgli che se non è inizializzata deve assumere un certo valore...posto il codice:

<?php
//se non ha ancora un valore le metto FALSE di default
if (!isset($_SESSION['ctrl_cat']))
{
$_SESSION['ctrl_cat_merc'] = false;
}
//CONNESSIONE A MYSQL
require('config.php');
$sqlquery = "SELECT * FROM categorie_merci";
$result = mysql_query($sqlquery);
$number = mysql_numrows($result);

//SE ESISTE SETTO LA VARIABILE $ctrl_cat_merc SU "true"
if ($number > 0)
{
$ctrl_cat_merc = true;
}
elseif ($number < 1)
{
$ctrl_cat_merc = false;
}

//MEMORIZZO IL VALORE NELLA SESSIONE
$_SESSION['ctrl_cat_merc'] = $ctrl_cat_merc;
?>
così funge:D il fatto è ke io ho sempre usato ASP x fare ste cose che non è cosi enigmatico.
:byebye:
PS: buttiamo giù un progettino open source su un gestionale?
io quando ho tempo scrivo qualche riga di codice ma da
solo mi annoio se siamo in tanti ti diverti anche...fammi sapere che ti dico l'idea mia quale sarebbe...poi io ho gia un negozio e un gestionale quindi possiamo prendere spunto x la struttura:book:
 
metalgemini ha scritto:
PS: buttiamo giù un progettino open source su un gestionale?
io quando ho tempo scrivo qualche riga di codice ma da
solo mi annoio se siamo in tanti ti diverti anche...fammi sapere che ti dico l'idea mia quale sarebbe...poi io ho gia un negozio e un gestionale quindi possiamo prendere spunto x la struttura:book:

Ma perchè non rispondi hai messaggi privati?
 

Discussioni simili