- Home
- Categorie
- Coding e Sistemistica
- PHP
- Session PHP
-
Session PHP
Salve , avevo gia postato questo messaggio nella sezione html , ma essendo in una sezione sbagliata ho deciso di ripostarlo nella sezione giusta.
In pratica devo prendere il contenuto di un form da una pagina a.php e portarlo nella pagina b.php tramite sessioni.
Ho cercato di capire come funzionano le sessioni e tutto ok ,ma nel mio caso non riesco a memorizzare il contenuto di un form.
Ecco il codice:Questo e' il primo file
a.php<b>Primo campo:</b>
<form method="post" action="a.php">
<input type="Text" name="mobile" maxlength="15" >
</form>
<a href='b.php'>Stampa</a>;
<?php
session_start();
$_SESSION['mobile']="$mobile";
?>Questo e' il secondo file
b.php<?php
session_start();
isset($_SESSION['mobile'])?print $_SESSION['mobile']rint "NON sei passato da a.php";
session_destroy()
?>In questo caso non riesco a portare il contenuto del form in a.php nel file b.php
Sara' di sicuro banale ma essendo agli inizi non riesco a capire.
Aspetto un vostro aiuto
-
da quanto ho capito leggendo il codice, salvi la sezione prima che il valore venga salvato, poi tu il form non lo invii, dovresti:
o usare javascript, o mettere un bottone ne form per spedirlo,
dopo che lo hai spedito, lo recuper dell'altra parte con POST o GET
o ancora fai ricaricare la pagina, catturi il POST o il GET, lo salvi en sessione e fai il re-direct.fammi sapere!
-
Grazie per la risposta
Dove devo mettere il codice non posso mettere il bottono per vari motivi.
L'unico modo che ho per passare alla pagina siccessiva e' con il link href.Quello che io non ho capito e' come faccio dare una variabile al form?
Cioe' in
session_start();
$_SESSION['mobile']="$mobile";Al posto di $mobile dovrei mettere la varibile esatta che corrisponde al form.
Come faccio?
-
Tecnicamente non puoi, dato che tu prima catturi la variabile, poi la setti, quando dovrebbe essere il contrario.
fai una cosa:
<?php
session_start();
if(isset($_POST["mobile"]))
{
$_SESSION['mobile']=$_POST["mobile"];
//a seconda se usi il controllo dell'output o no fai:
//questo
header("Location: b.php");
//o questo
echo "<script>setTimeout('location.href="b.php"',1);</script>";
}?>
<form name="form" method="post" action="">
<input name="mobile" />
</form>
<a href="javascript:document.form.submit()">Stampa</a>questo è l'unico modo che conosco per riuscire a passare le variabili tra form e php, dato che il php viene interperetato dal server, quindi prima che arrivi al client.
fammi sapere se trovi un altro metodo o se questo va!
CIAO!!!!
-
Ma funziona Perfettamente!
Grazie Tantissimo! ora non mi resta che studiarmi per bene la tua idea!
Grazie tanto!
-
al tuo servizio.
CIAO!!!
-
Ti ringrazio immensamente!
Ma ho un'altra cosa da chiederti se possibile:Il codice funziona alla grande ma nella pagina in cui devo inserire questo codice non posso inserire ne un pulsante e ne un link in java.
L'unica cosa che posso inserire e' un link href
Potresti aiutarmi anche per questo?
Te ne sarei immensamente grato!
-
mi spiace, io conosco solo questi 3 metodi:
nel link inserire un "onclick" con javascript:
<a href="javascript:document.nomeform.submit()" >
o
<a href="javascript:void(0)" onclick="javascript:document.nomeform.submit()" >un input:
<input type="submit" value=" Invia " />
o
<input type="image" src="immagine" onclick="javascript:document.nomeform.submit()" />un bottone con javascript
<button onclick="javascript:document.nomeform.submit()">TUTTO QUEEELLO CHE VUOI</button>
o
<button type="submit">TUTTO QUEEELLO CHE VUOI</button>in sintesi, almeno x quello che conosco, un form deve essere inviato in qualche modo, puoi usare al posto di onclock quello che ti sembra migliore:
"onrollover", "onmousedown", ecc.cmq bisogna inviare il form in qualche modo, o puoi usare l'opzione ajax
che finito di scrivere invia asincronamente info al server.per dare una risposta migliore e magari trovare una soluzione, dovrei sapere le motivazioni della scelta di non inserire bottoni o quantaltro, quidi se potessi spiegarmi si potrebbe trovare una soluzione migliore.
Grazie e ciao!
-
Grazie ancora per la tua pazienza!
Allora ti spiego le motivazioni
Questo form era gia precostruito ed ha gia un tasto tipo input che invia dati ad un database , quindi se ne inserisco un'altro questo non fara' altro che la stessa funione del primo visto che il form e' lo stesso.
Per quanto riguarda il javascript , non so il motivo preciso ma quando clicco sul link java mi restituisce l'errore " propieta' o metodo non supportati dall'oggetto " Comunque all'interno della pagina c'e' gia altro codice java.
-
a questo punto ti consiglio di usare ajax, cosi tramite una funzione, comunichi con il server senza problemi, vai a vedere la guida ajax su html.it, e se ti serve, se mi mandi i files, vedo di metterli a posto e farti una bella spiegazione, fammi sapere, cmq, ti consiglio di leggierla, e cercando su google avevo trovato una guida molto utile sull'argomento, ma non ricordo bene l'url, solo che era qualcosa"spaghetti"qualcosaltro.
ciao!