- Home
- Categorie
- Coding e Sistemistica
- PHP
- dati del form
-
@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_prodottiinsomma 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.'">
';
-
@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
-
@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 aiutareperò 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
-
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
-
@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
ciaoAllora 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
-
stò facendo una serie di prove, ma ancora niente....purtroppo neanche la documentazione php mi è di aiuto...continuo
ti faccio sapere
grazie ancora
ciao
-
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:
-
@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']
-
'.$_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 nonper il totale, al solito mi stampa solo l'ultimo prezzo del prodotto selezionato
dove sbaglio?devo inserire qualcosaltro?
thanks ancora una volta
-
@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 nonper 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...
-
@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
-
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:
-
@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 )
-
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à
-
...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
-
@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...
-
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?
ciao
-
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.
-
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
-
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.