• Super User

    che intendi? per hashare con md5 è semplice...

    $var= md5("hash");


  • User Attivo

    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.


  • Super User
    1. non usare request, è facile contraffare le variabili.
    2. 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


  • User Attivo

    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.


  • Super User

    mmm... strano, in quanto gli apici ci dovrebbero essere... che versione di PHP hai?
    prova con $HTTP_POST_VARS anzichè $_POST


  • User Attivo

    La versione installata di php è la 5.0.2 proverò come mi hai detto tu vedo che succede.


  • User Attivo

    funziona pater

    $HTTP_POST_VARS[nome_campo]

    e funziona pure il method GET

    $HTTP_GET_VARS[nome_campo]

    tutto perfetto..s


  • Super User

    Avrai impostato male il php.ini ( o php.conf )


  • User Attivo

    rispondendo alla domanda iniziale non puoi usare le varibili direttamente ( $variabile ) per una impostazione di sicurezza (penso il safemode)..


  • User Attivo

    Ehi, ma io al safemode ancora ci devo arrivare.
    Che cos'è?


  • Super User

    impostazioni di sicurezza... ma è una cretinata, ti disattiva alcune cose e basta...


  • User Attivo

    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.


  • User Attivo

    @PaTeR said:

    impostazioni di sicurezza... ma è una cretinata, ti disattiva alcune cose e basta...

    :mmm:

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


  • Super User

    Si, ma non è il safemode che fa questo, c'è un'altra direttiva che ora mi sfugge... comunque sconsiglio in ogni caso il _REQUEST


  • Super User

    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


  • User Attivo

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


  • Super User

    si, se non mi sbaglio si 😄