• Super User

    @Puitz said:

    ciao ho un problema con php. ho creato un form per ordinare dei prodotti. -su "step1" seleziono il numero dei prodotti
    -su "step2" visualizzo i prodotti scelti e posso tornare indietro o confermare
    -su "step3" oltre a visualizzare i prodotti scelti c'è da compilare il form con i propri dati

    da "step1" a "step2" riesco a spedire le variabili scelte tramite il form con metodo post, ma da "step2" a "step3" come faccio a mantenere attive le variabili?

    da "step3" il form spedisce i dati tramite post su fine.php che si occupa di spedire una mail con i dati anagrafici e gli ordini relativi ai prodotti...e anche qui come faccio a dirgli di spedirmi le variabili per mail?

    devo creare un ulteriore variabile che comprenda il form delle variabili?ma come faccio a dirgli di prendermi un determinato pezzo di codice?
    grazie a chiunque mi risponderà
    ciauzzzzzzzzzzz
    o usi le sessioni, o usi dei campi hidden ovvero nascosti:
    ci sarà sempre il pulsante di submit come in un form, ma i campi non si vedranno:

    <input type='hidden' name='nome_campo' value='valore_campo'>

    naturalmente scelta pessima se si devono mandare password, perchè chi apre l'HTML la vede 😄


  • User

    @PaTeR said:

    o usi le sessioni, o usi dei campi hidden ovvero nascosti:
    ci sarà sempre il pulsante di submit come in un form, ma i campi non si vedranno:
    <input type='hidden' name='nome_campo' value='valore_campo'>

    per facilitare le cose ho eliminato uno step. ora ho "step1.php" dove ordino, passo i valori a "step2.php" e completo l'ordine con i dati anagrafici.
    per visualizzare i prodotti, ho creato degli array:
    nome_prodotti
    prezzo_prodotti
    numero_prodotti
    e ho creato una varibile "indice" per dei cicli for per la stampa a video. il campo hidden dove lo inserisco?devo crearne uno per ogni variabile?
    questa è una variabile che indica "prodotto 1"
    'p1' => $_POST["p1"]

    grazie a chi mi risponderà
    ciao


  • Super User

    @Puitz said:

    per facilitare le cose ho eliminato uno step. ora ho "step1.php" dove ordino, passo i valori a "step2.php" e completo l'ordine con i dati anagrafici.
    per visualizzare i prodotti, ho creato degli array:
    nome_prodotti
    prezzo_prodotti
    numero_prodotti
    e ho creato una varibile "indice" per dei cicli for per la stampa a video. il campo hidden dove lo inserisco?devo crearne uno per ogni variabile?
    questa è una variabile che indica "prodotto 1"
    'p1' => $_POST["p1"]

    grazie a chi mi risponderà
    ciao
    In un form:

    <form action="step3.php" method="POST">
    <input type="hidden" name="variabile1" value="valore">
    <input type="hidden" name="variabile2" value="valore">
    <input type="hidden" name="variabile3" value="valore">
    </form>


  • User

    @PaTeR said:

    In un form:

    <form action="step3.php" method="POST">
    <input type="hidden" name="variabile1" value="valore">
    <input type="hidden" name="variabile2" value="valore">
    <input type="hidden" name="variabile3" value="valore">
    </form>

    perdonami, sarà stupido ma nn ne stò venendo a capo di stà storia.
    ho integrato nel form esistente (<form action="elabora.php" method="POST">)
    <input type="hidden" name="p1" value="$nome_prodotti['$indice']">
    <input type="hidden" name="p2" value="$numero_prodotti">
    <input type="hidden" name="p3" value="$prezzo_prodotti">

    e in elabora.php ho scritto
    <td>'.$_POST[p1].'</td>
    <td>'.$_POST[p2].'</td>
    <td>'.$_POST[p3].'</td>

    e la stampa nella mail che ricevo è quella di
    $nome_prodotti['$indice']
    $numero_prodotti
    $prezzo_prodotti

    insomma nn mi stampa i prodotti selezionati con relativi prezzi selezionati in step1.php. devo creare un "hidden" per tutti e venti i prodotti?
    grazie ancora
    ciao


  • Super User

    @Puitz said:

    @PaTeR said:

    In un form:

    <form action="step3.php" method="POST">
    <input type="hidden" name="variabile1" value="valore">
    <input type="hidden" name="variabile2" value="valore">
    <input type="hidden" name="variabile3" value="valore">
    </form>

    perdonami, sarà stupido ma nn ne stò venendo a capo di stà storia.
    ho integrato nel form esistente (<form action="elabora.php" method="POST">)
    <input type="hidden" name="p1" value="$nome_prodotti['$indice']">
    <input type="hidden" name="p2" value="$numero_prodotti">
    <input type="hidden" name="p3" value="$prezzo_prodotti">

    e in elabora.php ho scritto
    <td>'.$_POST[p1].'</td>
    <td>'.$_POST[p2].'</td>
    <td>'.$_POST[p3].'</td>

    e la stampa nella mail che ricevo è quella di
    $nome_prodotti['$indice']
    $numero_prodotti
    $prezzo_prodotti

    insomma nn mi stampa i prodotti selezionati con relativi prezzi selezionati in step1.php. devo creare un "hidden" per tutti e venti i prodotti?
    grazie ancora
    ciaose vuoi puoi pure serializzare un array e mandarlo con il metodo post...

    serialize();

    unserialize();

    comunque fai

    print '
    <input type="hidden" name="p1" value="'.$nome_prodotti[$indice].'">
    <input type="hidden" name="p2" value="'.$numero_prodotti.'">
    <input type="hidden" name="p3" value="'.$prezzo_prodotti.'">
    ';


  • User

    @PaTeR said:

    se vuoi puoi pure serializzare un array e mandarlo con il metodo post...

    serialize();

    unserialize();

    comunque fai

    print '
    <input type="hidden" name="p1" value="'.$nome_prodotti[$indice].'">
    <input type="hidden" name="p2" value="'.$numero_prodotti.'">
    <input type="hidden" name="p3" value="'.$prezzo_prodotti.'">
    ';

    ok ho creato degli hidden in step2.php
    <? print '
    <input type="hidden" name="p1" value="'.$nome_prodotti[$indice].'">
    <input type="hidden" name="p2" value="'.$numero_prodotti[$indice].'">
    <input type="hidden" name="p3" value="'.$prezzo_prodotti[$indice].'">
    <input type="hidden" name="p4" value="'.$totale_attuale.'">
    <input type="hidden" name="p5" value="'.$totale.'">
    '; ?>

    e in elabora.php
    <td>'.$_POST[p1].'</td>
    <td>'.$_POST[p2].'</td>
    <td>'.$_POST[p3].'</td>
    <td>'.$_POST[p4].'</td>
    <td>'.$_POST[p5].'</td>

    p5, il totale dell'ordine funziona
    p1, mi stampa il 21esimo prodotto, che sia stato ordinato o no
    p2, non mi restituisce nulla
    p3, il prezzo del 21esimo prodotto, anche se nn è stato selezionato
    p4, mi restituisce la somma dell'ultimo prodotto che è stato ordinato, ma in corrispondenza del 21esimo prodotto, quindi sbagliato
    ho capito di aver creato degli array un pò del cavolo, ma per essere alle prime armi e molto di fretta, non riesco a capire dove sbaglio.
    grazie PaTeR per la pazienza


  • Super User

    @Puitz said:

    @PaTeR said:
    se vuoi puoi pure serializzare un array e mandarlo con il metodo post...

    serialize();

    unserialize();

    comunque fai

    print '
    <input type="hidden" name="p1" value="'.$nome_prodotti[$indice].'">
    <input type="hidden" name="p2" value="'.$numero_prodotti.'">
    <input type="hidden" name="p3" value="'.$prezzo_prodotti.'">
    ';

    ok ho creato degli hidden in step2.php
    <? print '
    <input type="hidden" name="p1" value="'.$nome_prodotti[$indice].'">
    <input type="hidden" name="p2" value="'.$numero_prodotti[$indice].'">
    <input type="hidden" name="p3" value="'.$prezzo_prodotti[$indice].'">
    <input type="hidden" name="p4" value="'.$totale_attuale.'">
    <input type="hidden" name="p5" value="'.$totale.'">
    '; ?>

    e in elabora.php
    <td>'.$_POST[p1].'</td>
    <td>'.$_POST[p2].'</td>
    <td>'.$_POST[p3].'</td>
    <td>'.$_POST[p4].'</td>
    <td>'.$_POST[p5].'</td>

    p5, il totale dell'ordine funziona
    p1, mi stampa il 21esimo prodotto, che sia stato ordinato o no
    p2, non mi restituisce nulla
    p3, il prezzo del 21esimo prodotto, anche se nn è stato selezionato
    p4, mi restituisce la somma dell'ultimo prodotto che è stato ordinato, ma in corrispondenza del 21esimo prodotto, quindi sbagliato
    ho capito di aver creato degli array un pò del cavolo, ma per essere alle prime armi e molto di fretta, non riesco a capire dove sbaglio.
    grazie PaTeR per la pazienzadi niente, anzi, è un piacere aiutare 😄

    però mi dovresti dire da dove prendi quei valori, perchè se no, non ti so dire molto... Se avresti anche un sito dove posso testare la pagina sarebbe il massimo


  • User

    ok partiamo da STEP1.PHP, dove c'è il form dei prodotti, e ti scrivo il form con un esempio di variabile:
    <form name="prodotti" action="step2.php" method="post">
    <td><input name="p1" type="text" maxlength="5"></td>
    <td><input name="p2" type="text" maxlength="5"></td>
    <input type="submit" value="Verifica carrello">

    in STEP2.PHP c'è il riepilogo dei prodotti e la compilazione dei dati:
    <?php
    $numero_prodotti = array(
    'p1' => $_POST["p1"],
    'p2' => $_POST["p2"]
    );
    $nome_prodotti = array (
    'p1' => "Caffettiera",
    'p1' => "Set"
    );
    $prezzo_prodotti = array (
    'p1' => "2.00",
    'p2' => "2.00"
    );
    ?>

    poi c'è un ciclo for e la variabile $indice:
    <?php
    for ($i = 1; $i <= 21; $i++) {
    $indice = "p".$i;
    if ($numero_prodotti["$indice"] <> 0) {
    ?>

    e nei giusti campi vengono stampate il nome prodotti, il prezzo, la quantità tenendo presente gli array
    echo($nome_prodotti["$indice"]);
    .......
    poi ottengo il totale del singolo prodotto e il totale generale dell'ordine:
    <?php
    $totale_attuale = $numero_prodotti["$indice"] *$prezzo_prodotti["$indice"];
    $totale = $totale + $totale_attuale;
    echo ($totale_attuale." ?");
    ?>

    insomma sono le variabili che poi dovrei riportare in ELABORA.PHP,cioè nella mail, le stesse, e con i campi hidden insomma nn ha funzionato alla grande. Il codice non è granchè, ma è il mio primo passo in php.
    tutto qui
    grazie
    ciao


  • Super User

    @Puitz said:

    ok partiamo da STEP1.PHP, dove c'è il form dei prodotti, e ti scrivo il form con un esempio di variabile:
    <form name="prodotti" action="step2.php" method="post">
    <td><input name="p1" type="text" maxlength="5"></td>
    <td><input name="p2" type="text" maxlength="5"></td>
    <input type="submit" value="Verifica carrello">

    in STEP2.PHP c'è il riepilogo dei prodotti e la compilazione dei dati:
    <?php
    $numero_prodotti = array(
    'p1' => $_POST["p1"],
    'p2' => $_POST["p2"]
    );
    $nome_prodotti = array (
    'p1' => "Caffettiera",
    'p1' => "Set"
    );
    $prezzo_prodotti = array (
    'p1' => "2.00",
    'p2' => "2.00"
    );
    ?>

    poi c'è un ciclo for e la variabile $indice:
    <?php
    for ($i = 1; $i <= 21; $i++) {
    $indice = "p".$i;
    if ($numero_prodotti["$indice"] <> 0) {
    ?>

    e nei giusti campi vengono stampate il nome prodotti, il prezzo, la quantità tenendo presente gli array
    echo($nome_prodotti["$indice"]);
    .......
    poi ottengo il totale del singolo prodotto e il totale generale dell'ordine:
    <?php
    $totale_attuale = $numero_prodotti["$indice"] *$prezzo_prodotti["$indice"];
    $totale = $totale + $totale_attuale;
    echo ($totale_attuale." ?");
    ?>

    insomma sono le variabili che poi dovrei riportare in ELABORA.PHP,cioè nella mail, le stesse, e con i campi hidden insomma nn ha funzionato alla grande. Il codice non è granchè, ma è il mio primo passo in php.
    tutto qui
    grazie
    ciao

    Allora prova con una sessione:

    aggiungi session_start(); all'inizio della pagina ed una l'array $_SESSION per mettere valori o altro.

    in elabora.php rimetti session_start(); all'inizio della pagina e in $_SESSION avrai i valori che avevi settato in step2.php


  • User

    stò facendo una serie di prove, ma ancora niente....purtroppo neanche la documentazione php mi è di aiuto...continuo
    ti faccio sapere
    grazie ancora
    ciao


  • User

    in step2.php

    session_start();
    $_SESSION['numero_prodotti'] = $_POST['numero_prodotti'];
    $_SESSION['nome_prodotti'] = $_POST['nome_prodotti'];
    $_SESSION['prezzo_prodotti'] = $_POST['prezzo_prodotti'];
    $_SESSION['totale_attuale'] = $_POST['totale_attuale'];

    in elabora.php

    session_start();
    <td>'.$_SESSION['nome_prodotti'].'</td>
    <td>'.$_SESSION['numero_prodotti'].'</td>
    <td>'.$_SESSION['prezzo_prodotti'].'</td>
    <td>'.$_SESSION['totale_attuale'].'</td>

    quello che mi stampa nella mail, nei campi è "Array"...sembra funzionare, ma come faccio a dirgli di stamparmi la roba che è dentro all'array?cioè p1, p2.... :bho:


  • Super User

    @Puitz said:

    in step2.php

    session_start();
    $_SESSION['numero_prodotti'] = $_POST['numero_prodotti'];
    $_SESSION['nome_prodotti'] = $_POST['nome_prodotti'];
    $_SESSION['prezzo_prodotti'] = $_POST['prezzo_prodotti'];
    $_SESSION['totale_attuale'] = $_POST['totale_attuale'];

    in elabora.php

    session_start();
    <td>'.$_SESSION['nome_prodotti'].'</td>
    <td>'.$_SESSION['numero_prodotti'].'</td>
    <td>'.$_SESSION['prezzo_prodotti'].'</td>
    <td>'.$_SESSION['totale_attuale'].'</td>

    quello che mi stampa nella mail, nei campi è "Array"...sembra funzionare, ma come faccio a dirgli di stamparmi la roba che è dentro all'array?cioè p1, p2.... :bho:

    $_SESSION['nome_prodotti']['p1']


  • User

    '.$_SESSION['nome_prodotti'] [p1].'

    '.$_SESSION['nome_prodotti'] [p2].'

    '.$_SESSION['nome_prodotti'] [p3].'

    .....
    mi visualizza tutti i prodotti selezionati e non

    '.$_SESSION['numero_prodotti'] [p1].'

    '.$_SESSION['numero_prodotti'] [p2].'

    '.$_SESSION['numero_prodotti'] [p3].'

    ....
    mi visualizza il numero esatto dei prodotti selezionati, quindi funziona, e solo perchè in step2.php il numero era preso col post:
    $numero_prodotti = array(
    'p1' => $_POST["p1"],
    ....

    '.$_SESSION['prezzo_prodotti'] [p1].' ?

    '.$_SESSION['prezzo_prodotti'] [p2].' ?

    '.$_SESSION['prezzo_prodotti'] [p3].' ?

    ....
    mi visualizza i prezzi di tutti i prodotti, selezionati e non

    per il totale, al solito mi stampa solo l'ultimo prezzo del prodotto selezionato
    dove sbaglio?devo inserire qualcosaltro?
    thanks ancora una volta


  • Super User

    @Puitz said:

    '.$_SESSION['nome_prodotti'] [p1].'

    '.$_SESSION['nome_prodotti'] [p2].'

    '.$_SESSION['nome_prodotti'] [p3].'

    .....
    mi visualizza tutti i prodotti selezionati e non

    '.$_SESSION['numero_prodotti'] [p1].'

    '.$_SESSION['numero_prodotti'] [p2].'

    '.$_SESSION['numero_prodotti'] [p3].'

    ....
    mi visualizza il numero esatto dei prodotti selezionati, quindi funziona, e solo perchè in step2.php il numero era preso col post:
    $numero_prodotti = array(
    'p1' => $_POST["p1"],
    ....

    '.$_SESSION['prezzo_prodotti'] [p1].' ?

    '.$_SESSION['prezzo_prodotti'] [p2].' ?

    '.$_SESSION['prezzo_prodotti'] [p3].' ?

    ....
    mi visualizza i prezzi di tutti i prodotti, selezionati e non

    per il totale, al solito mi stampa solo l'ultimo prezzo del prodotto selezionato
    dove sbaglio?devo inserire qualcosaltro?
    thanks ancora una volta
    Devi fare il controllo... mi era sembrato lo avevi già fatto!!! Non hai detto di avere problemi con quello...


  • User

    @PaTeR said:

    Devi fare il controllo... mi era sembrato lo avevi già fatto!!! Non hai detto di avere problemi con quello...

    il controllo c'è già...a questo punto credo che il problema sia il modo in cui spedisco le variabili del form.
    da step1 a step2 il form si chiude con un "submit", da step2 a elabora il form si chiude con un "button" perchè c'è un controllo sui dati anagrafici in javascript e con il submit nn funziona....può essere questo il problema principale?
    thanks


  • User

    guardando un pò in giro ho pensato anche a poter memorizzare le variabili in un file temporaneo salvandola in una directory dello spazio web, ma sorpresa? non riesce ad aprire il file per scriverci dentro. il codice è ok, e che nn ho i permessi...anche se nn capisco perchè! l'host è comprato da aruba è la directory ha permessi 755, dovrebbero bastare per creare dei file temporanei, scriverci e cancellarli, cmq sia se cerco di settare i permessi a 777, mi dà errore. cioè cavolo....cambio strada e ora è il server che rompe?

    cmq ragionando sul discorso degli array, le vere variabili sono quelle della quantità dei prodotti, gli altri 2 array sono dichiarati in step2 e in base alla quantità richiesta, c'è il controllo che mi permette di stampare le righe necessarie.
    PaTeR avrai smesso di leggermi, cmq se vuoi posso darti in privato il link del modulo così da farti provare a ricevere la mail...o dimmi tu!
    caosssss........ :impiccato:


  • Super User

    @Puitz said:

    PaTeR avrai smesso di leggermi, cmq se vuoi posso darti in privato il link del modulo così da farti provare a ricevere la mail...o dimmi tu!
    caosssss........ :impiccato:

    Che fai, scherzi? 😄

    Si, se dai i sorgenti anche qui e mi dici esattamente tutti i tuoi problemi, ti sistemo tutto ( qui nel forum )


  • User

    ok ti ho spedito le tre pagine per email. vedi un pò il codice, se per te nn è eccessivo lo copio per intero sul forum, come mi hai detto.
    grazie per la disponibilità
    🙂


  • User

    ...capito qualcosa?
    io ho trovato una guida per creare e scrivere nei file, le stò provando tutte:
    fopen con ftp, http, in w, r....niente,dice di nn riuscire ad aprire il file
    ho chiesto chiarimenti ad aruba e mi hanno risposto che per hosting windows non posso cambiare i permessi da 755....ma credo siano cmq sufficienti,giusto?
    qualcuno riesce a darmi una soluzione da provare?
    grazie ancora
    ciauzzzzzzzzzzzzzz


  • Super User

    @Puitz said:

    ...capito qualcosa?
    io ho trovato una guida per creare e scrivere nei file, le stò provando tutte:
    fopen con ftp, http, in w, r....niente,dice di nn riuscire ad aprire il file
    ho chiesto chiarimenti ad aruba e mi hanno risposto che per hosting windows non posso cambiare i permessi da 755....ma credo siano cmq sufficienti,giusto?
    qualcuno riesce a darmi una soluzione da provare?
    grazie ancora
    ciauzzzzzzzzzzzzzzè da un pò che ci sbatto la testa... ti mando quello che sono riuscito a fare...