• 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...


  • User

    mi sono inoltrato in un discorso troppo assurdo. 2 cose che chiedo a chi guarderà questo post:
    -se acquisto l'hosting linux da aruba, riuscirò a scrivere nei file? (chi ha esperienza con aruba potrà rispondermi)
    -se doveste creare un modulo d'ordine in 3 pagine (form, riepilogo, spedizione dati), come manterreste attive le variabili?qual'è la soluzione che attuereste?
    PaTeR, ne sei uscito? :microsoft:
    ciao 💻


  • User

    ciao,

    io uso aruba ( linux ) e non ho alcun problema nel creare file sul server, o nello scrivergli dentro. Non è che sbagli qlc?

    Un modulo d'ordine? credo che ti convenga memorizzare i dati in un database.


  • User

    nn sò se sbaglio qualcosa.ho letto le guide di aruba su hosting windows per scrivere nei file e c'è scritto che la cartella dove farlo è la "public", tu su linux scrivi dove ti pare?nn vorrei fare un investimento inutile, anche per quanto riguarda il database, ho 21 prodotti, e nn vorrei complicarmi troppo la vita 🙂

    il codice per aprire e scrivere nel file di step2 è:
    //fparticoli è la variabile che rappresenta il file con all'interno la variabile articolo per nome_prodotti
    $fparticoli = fopen("/localhost/public/articolo.txt","w") or die("non riesco ad aprire articolo.txt");
    echo "$nome_prodotti";
    fputs($fparticoli, $nome_prodotti);
    fclose($fparticoli);
    unset ($fparticoli);

    e così anche per le altre 2 variabili
    su elabora.php, dove si elabora e spedisce la mail, il codice di richiamo per le variabili è:
    '.$fparticoli = fopen("/localhost/public/articolo.txt","r").'
    '.fgets($fparticoli, 32).'
    '.fclose($fparticoli).'

    ma nn riesce ad aprire il file articolo.txt già da step2 quindi nn memorizza niente.
    per il comando fopen le ho provate tutte, mettendoci tutto seguendo la documentazione di phpnet e la cartella indicatami da aruba per windows, ma niente.
    grazie per l'aiuto
    ciao


  • User

    su linux puoi settare i permessi in ogni cartella, su windows mi sembra che non si possa: in sostanza scrivi dove ti pare 🙂
    Te lo straconsiglio ( puoi crearti anche i file .htaccess ).

    prova così ( testato e funzionante):
    $contenuto = 'metti tutto quello che vuoi anche la variabile '.$nome_prodotti;
    $file_da_aprire = fopen($_SERVER['DOCUMENT_ROOT']."/public/articolo.txt","w");
    fwrite($file_da_aprire, $contenuto);
    fclose($file_da_aprire);

    Chiaramente il file articolo.txt deve poter essere editabile.


  • User

    @redriv said:

    Chiaramente il file articolo.txt deve poter essere editabile.

    cioè? ma scusa il permesso 755 nn è abbastanza? mettere un 777 è come aprire le porte a tutti e ora ho letto che anche su linux i permessi nn possono essere cambiati dal 755....
    uffffff
    modulo maledetto


  • User

    deve avere i giusti permessi di scrittura ( 755 tramite Chmod sono sufficienti).

    Se non ricordo male, la cartella public ha i permessi settati su 755 e tutti i file creati in quella cartella dovrebbero avere 755 ( teoricamente sono editabili).