• User Attivo

    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


  • User Attivo

    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!


  • User Attivo

    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?


  • User Attivo

    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!!!!


  • User Attivo

    Ma funziona Perfettamente!

    Grazie Tantissimo! ora non mi resta che studiarmi per bene la tua idea!

    Grazie tanto!


  • User Attivo

    al tuo servizio.

    CIAO!!!


  • User Attivo

    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!


  • User Attivo

    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!


  • User Attivo

    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.


  • User Attivo

    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!