- Home
- Categorie
- Coding e Sistemistica
- PHP
- Il cane mi ha mangiato le variabili o sono sparite nel buco nero?
-
Il cane mi ha mangiato le variabili o sono sparite nel buco nero?
Ciao
Bazzico con php e sql da qualche mese. Form di registrazione, pagamento, fatture automatiche, pannello di controllo (...) mi sono attrezzato per bene MA ho un problema odioso!
Queste benedette variabili che raccolgo nei miei forum le passo tranquillamente da una pagina all'altra ma ad un certo punto queste svaniscono nel nulla! Ho fatto ogni controllo possibile e sono arrivato alla conclusione che forse se le è mangiate il cane :bho: vi spiego...
**pagina_1.php
**[php]
//Chiedo il NOME
<form action="pagina_2.php" method="post">
Nome <input type="text" id="nome" name="nome" size="20">//Salvo la variabile NOME come $nome
$nome = (urlencode($nome));
echo "<INPUT TYPE="HIDDEN" NAME="nome" value=$nome>";//Invio la variabile alla pagina seguente
<INPUT TYPE="submit" value="Procedi">
[/php]**pagina_2.php
**[php]
//Faccio visualizzare sulla pagina il NOME che mi viene regolarmente mostrato
<form action="pagina_3.php" method="post">
<html>Il tuo nome è <? echo $nome ?></html>//Mi porto la variabile $nome ancora dietro alla pagina seguente
$nome = (urlencode($nome));
echo "<INPUT TYPE="HIDDEN" NAME="nome" value=$nome>";<INPUT TYPE="submit" value="Procedi">
[/php]**pagina_3.php
**[php]
// A questo punto la viariabile NOME non esiste più!
<form action="pagina_4.php" method="post">
<html>Il tuo nome è <? echo $nome ?></html>$nome = (urlencode($nome));
echo "<INPUT TYPE="HIDDEN" NAME="nome" value=$nome>";<INPUT TYPE="submit" value="Procedi">
[/php]Ho provato a inserirmi in tutte le pagine $nome = $_POST['nome']; ho provato anche a alternare urlcode e urldecode in tutti i modi possibili anche insieme! Teoricamente avrei risolto con le sessioni ma per quello che devo farci non posso utilizzarle.Da come l'ho capita io salvo la variabile ma nel momento in cui la mostro nella pagina, benchè io continui a salvarla, questa si perde.
Aiutatemi avessi trovato su internet uno col mio stesso problema
Grazie
P.S. Lo so che ho abbondato con urldecode / encode ma nella sfiancamento ho cominciato a "vomitare" codici per dispetto
-
Ciao Kian,
nei campi hidden del tuo codice leggo alle pagina 1 2 e 3 :
value=$nome>
invece dovrebbe essere a mio avviso
value="$nome">PS Non ho indicato il codice tramite i tag PHP del Forum altrimenti si perde un backslash.
-
Di che colore preferisci avere una statua? Ti ringrazio tantissimo e mi vergogno... non posso credere di essermelo fatto sfuggire
Ultima domanda per completezza. Adesso che ho tutte le mie variabili ce ne sta una che viene generata da un calcolo moltiplicando un valore nel database per un altro inserito nel form. Stampo questa variabile a video
[php]$totale = $row['costo_unitario'] * $quantita;
echo ("Il costo totale è $totale €");[/php]Come faccio a salvarmela con urldecode? Il procedimento sò che è lo stesso ma non me la "prende" mai. Non ci sono mai riuscito se non con le sessioni che preferisco non utilizzare.Grazie ancora
-
@Kian said:
Ti ringrazio tantissimo e mi vergogno... non posso credere di essermelo fatto sfuggire
Invece ti capisco. Succede molto frequentemente quando guardi lo stesso codice e non trovi il problema. Se ti capitano queste cose ti consiglio (e non è uno scherzo) di fare altro per mezza giornata e poi tornarci sopra a mente fresca.@Kian said:
Come faccio a salvarmela con urldecode? Il procedimento sò che è lo stesso ma non me la "prende" mai. Non ci sono mai riuscito se non con le sessioni che preferisco non utilizzare.
scusa ma... non è più facile passare questo valore come parametro di una querystring e recuperarlo con GET ? Oppure, se proprio devi fare dei giri pindarici, serializzati tutti i dati (funzione serialize) e poi li deserializzi.
-
Se non erro con serialize() devo coinvolgere il database giusto? Tempo fa ho fato un'occhiata ora non saprei dove metterci mano (ho rivisto 2 tutorial adesso e non so :D). Sicuro che sia la cosa più semplice in assoluto?
-
Non lo è e infatti ti ho detto "giri pindarici".
Ti dovrebbero bastare una querystring e un GET per risolvere.