- Home
- Categorie
- Coding e Sistemistica
- Coding
- definizione di varibili in hash
-
In pratica se definisco un array nel modo seguente tutto ok
$var=array('mio_nome','mio_cognome','mio_numero');
oppure così:
$var[0]='mio_nome';
$var[1]='mio_cognome';
$var[2]='mio_numero';Fin qui non credo ci siano grossi problemi; ma nel caso il mio_nome, mio_cognome e mio_numero provengano da un form (html o php) le cose si complicano.
Non riesco a visualizzare a video i parametri immessi nel form, a meno che non uso una espressione foreach().Di seguito ho inserito le due pagine che mi danno il grattacapo:
<html>
<body> # chiamo il file form.html
<form METHOD=GET action="read_info.php"> # provato diversi method
nome <input type="text" name="nome">scegli un giorno della settimana
<select name="giorno_settimana[]">
<option>lun
<option>mart
<option>merc
<option>giov
<option>ven
<option>sab
<option>dom
</select>pagamento
assegno<input type="radio" name="pagamento" value="assegno">
carta di credito<input type="radio" name="pagamento" value="carta">
contanti<input type="radio" name="pagamento" value="contanti" checked><input type="submit" value="invio le informazioni">
<input type="reset" value="cancella">
</form>
</body>
</html>invio del form a read.php
<html>
<body>
<?php
echo"grazie $nome
";
echo"
giorno scelto: ";
if (sizeof($giorno_settimana) >= "1")
{ foreach($giorno_settimana as $valore)
{ echo"
$valore"; }
}
else { echo"Non hai selezionato alcun giorno
"; }echo"
pagamento con $pagamento
";
?>
qui sotto estrapolate le informazioni con foreach
<?php
$a=$_REQUEST;foreach($a as $d => $m)
{
echo"$d: $m
";
}
?>
</body>
</html>Queste due pagine non servono a gran che. In pratica quando schiaccio il pulsante invio le informazioni mi si apre la finesta come se stessi facendo un download (questo vale solo se uso internet explorer; se uso Mozilla riesco a vedere qualche cosa anche se il risultato non è soddisfacente).
Sulla mia macchina ho istallato php 5. Mi chiedevo se il form funzionerebbe con php 4. Mi sembra un tantino bizzarro retrocedere anche per una semplice prova; non trovate?Un saluto a tutti.
-
- non usare request, è facile contraffare le variabili.
- usa l'array $_POST se invii con il metodo POST, $_GET se usi GET
3)non usare foreach, cosa ti serve prendere???
nome <input type="text" name="nome">
lo prendi con$_POST['nome'] dove nome è il nome del campo del form mandato con POST
-
Avevo visto il topic "Problemi con i form", in realtà avevo provato questo tipo di espressione
$_POST['nome'] usando method="POST"
mi dava l'errore e non ho più insistito; poi visto che mi hai dato le indicazioni giuste su quello che devo usare e non devo usare ho riprovato.
L'errore era negli apici, in pratica:$_POST['nome'] mi da l'errore perchè ci sono gli apici;
$_POST[nome] è giusto.
Adesso ho risolto un grosso problema e te ne sono grato. Spero solo che funzioni anche sul server esterno.
Per me può anche considerarsi chiuso il topic. Grazie.
-
mmm... strano, in quanto gli apici ci dovrebbero essere... che versione di PHP hai?
prova con $HTTP_POST_VARS anzichè $_POST
-
La versione installata di php è la 5.0.2 proverò come mi hai detto tu vedo che succede.
-
funziona pater
$HTTP_POST_VARS[nome_campo]
e funziona pure il method GET
$HTTP_GET_VARS[nome_campo]
tutto perfetto..s
-
Avrai impostato male il php.ini ( o php.conf )
-
rispondendo alla domanda iniziale non puoi usare le varibili direttamente ( $variabile ) per una impostazione di sicurezza (penso il safemode)..
-
Ehi, ma io al safemode ancora ci devo arrivare.
Che cos'è?
-
impostazioni di sicurezza... ma è una cretinata, ti disattiva alcune cose e basta...
-
Pensando alla sicurezza però
io non escluderei l'uso foreach()
$a=$_POST;
foreach($a as $campo => $variabile)
{
echo "$campo: $variabile
";
}In pratica le due variabili cambiano sempre, pur restando definite una sola volta. Con questo modo è possibile anche inserire i valori immessi nel form all'interno di una tabella.
-
@PaTeR said:
impostazioni di sicurezza... ma è una cretinata, ti disattiva alcune cose e basta...
non capisco....
cmq, la sicurezza è relativa al fatto di obbligare il programmatore a usare _GET/_POST o HTTP_GET_VARS/HTTP_POST_VARS o _SESSION
senza questa impostazione sarebbe sufficiente andare a mettere nell'url un parametro con il nome di una variabile usata nella pagina (magari una variabile di sessione che si potrebbe sempre utilizzare senza _SESSION) per modificarne il valore...
-
Si, ma non è il safemode che fa questo, c'è un'altra direttiva che ora mi sfugge... comunque sconsiglio in ogni caso il _REQUEST
-
Si, ma non è il safemode che fa questo... cioè lo fa, come insieme di altre direttive che verranno disattivate, c'è un'altra direttiva che ora mi sfugge... comunque sconsiglio in ogni caso il _REQUEST
-
@PaTeR said:
Si, ma non è il safemode che fa questo, c'è un'altra direttiva che ora mi sfugge... comunque sconsiglio in ogni caso il _REQUEST
si... non ricordo neanchio forse il register_globals.... bho...
-
si, se non mi sbaglio si