View Full Version : PHP session start()
texerasmo
11-03-2003, 15:30
Non riesco ad utilizzare la funzione session_start() e session register.
esempio:
<?php
session_start()
session_register($user)
// il valore di $user proviene da un select
?>
<html>
<body>
.......
<a herf=seconda.php>Vai </a>
....
esempio seconda.php
<?php
session_start();
?>
<html>
<body>
....
<?php
echo"ti ritrovao qui $user";
?>
qualcuno di voi sa dirmi dove faccio la cavolata
Invece di usare session_register (che è il metodo vecchio e non più supportato) devi usare il vettore associativo globale $_SESSION...
Nella prima pagina al psoto di session_register:
$_SESSION["user"] = $utente;
Nella seconda pagina...
$user = $_SESSION["user"];
Così come le variabili di sessione anche quelle passate tramite i form, i link e i cookie non so più variabili dichiarate automaticamente globali, ma sono contenute all'interno dei vettori associativi globali $_POST, $_GET e $_COOKIE...
texerasmo
12-03-2003, 08:19
Tnks.
Ma non riesco a fare passare la varibile.
se non ho capito male il tutto dovrebbe funzionare così:
prima.php
session_start();
$_SESSION["user"] = $utente;
//dove user è la mia variabile che proviene da un form
//$utente dichiaro una nuova varibile
seconda.php
$user = $_SESSION["user"];
// così in questo modo posso richiamarmi $user dove voglio io
Errore
Lasciandoci session_start() al momento del click sull pulsante della form non mi manda avanti.
Dov'è che sbaglio?
Sto usando la versione 4.1.2 di php.
Se $utente proviene da un form la devi prendere o dal vettore GET o da quello POST...
Se il tuo form è fatto con il metodo POST:
$_SESSION["user"] = $_POST["utente"];
texerasmo
12-03-2003, 09:18
Sto facendo mille prove ma non riesco.. :( sono alle prime armi con il php
Ricominciamo?
Prima.php
<?
// qui che devo dirgli?
?>
<html>
.....
// il form che sto usando è con il metodo post
Seconda.php
<?
//qui che devo dirgli?
?>
<html>
...
nb la variabile che mi porto dalla prima.php posso utilizzarla dove voglio?
tnks ancora se puoi aitarmi
texerasmo
12-03-2003, 09:24
é vero che utilizzo un form ma io alla seonda.php ci vado attraverso un link.
Ti spiego il giro che sto facendo.
La form è composta da una user e una passaword
dove l'utente inserisce dei valori.
Questi valori vanno a finire in una select
Se la select va a buon fine posso vedere il link che mi porta alla seconda.php
Nella seconda.php mi serve il valore del campo user..
Forse così è + chiaro..
:)
Sinceramente non ho ancora capito...
Il form in quale pagina è ?
Fammi un esempio di come viene chiamata prima.php e seconda.php...
texerasmo
12-03-2003, 09:41
ecco cosa sto facendo per farmi un giro completo per il php.
contenuto Prima.php
<FORM name="f" METHOD="post" ACTION="">
<TABLE width="60%">
<TR>
<TD><b>user :</b> </TD>
<TD><INPUT TYPE="text" NAME="user"/></TD>
</TR>
<TR>
<TD><b>Password : </b></TD>
<TD><INPUT TYPE="password" NAME="password"/></TD>
</TR>
<TR>
<TD><INPUT TYPE="submit" value="Invia"/></TD>
<TD><INPUT TYPE="reset" value ="Cancella"/></TD>
</TR>
</TABLE>
Al momento che l'utente clicca su invia i dati $user e $password vanno a finire in una select.
Se la select va a buon fine all'utente gli appare questo.
echo "<h3> Ciao $user </h3>
ora puoi andare qui
<a href="seconda.php">vai alla seconda pg ";
Fine prima.php
A qusto punto vorrei trovarmi nella seconda.php
il valore di $user.
Cosa devo fare?
Tnks e grazie per la pazienza!!!
Prima.php funziona completamete quindi ?!?!!?
Se funziona completamente devi fare session_start() prima di dare qualsiasi output HTML...
Poi almomento di (prima o dopo è uguale):
echo "<h3> Ciao $user </h3>
ora puoi andare qui
<a href="seconda.php">vai alla seconda pg
Basta che tu faccia :
$_SESSION["user"] = $user;
In seconda.php:
<?php
session_start();
?>
<html>
<body>
Sei l'utente <?= $_SESSION["user"] ?>
</body>
</html>
texerasmo
12-03-2003, 10:14
OK funziona correttamente. :D
sei un grande!!! :D :D
visto che ormai ci sono ne approfitto per un altra domanda ..
se invece la Action della form mi portava direttamnet alla seconda.php
impostavo il codice in questo modo?
nella prima.php
<?
session_start();
$_SESSION["user"]=$_POST["user"];//oppre $_GET
?>
nella seconda.php
Sei l'utente <?= $_SESSION["user"] ?>
Grazie mille!!!
No...se l'action del form che risiede nella prima pagina portava direttamente alla seconda nella prima non dovevi fare niente...
Nella seconda verificavi nome utente e password...se erano corretti dovevi fare quello che facevi all'inizio nella prima:
<?php
//ovviamente prima di qualunque ouput dovevi richiamare session_start()
$utente = $_POST["utente"];
//verifica se $utente è un utente valido accedendo al DB
//se è valido
$_SESSION["user"] = $utente;
?>
Sei l'utente <?= $_SESSION["user"] ?>
texerasmo
12-03-2003, 10:29
Se gentilissimo.
Posso farti una domanda su mysql?
texerasmo
12-03-2003, 10:39
HO creato una table con il campo date
ma ovviamente non riesco a inserire la data + l'ora.
Ho provato a creare un table con il campo TIMESTAMP ma mi da errore nella create table.
qual'è il campo che mi permentte di inserire data + ora in mysql?
Grazie ancora
texerasmo
12-03-2003, 10:42
Facevo il cazzone nelle scivere la create table il campo TIMESTAMP funziona correttamente.
tnks
TIMESTAMP ha un uso un po' diverso...
DATETIME è il campo per data e ora...
texerasmo
12-03-2003, 11:13
Sicuramente nel mio caso è meglio il campo DataTime, usero questo tipo di campo.
Tnks per le dritte :sofico:
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.