Visualizzazione risultati 1 fino 13 di 13

Discussione: [php] checkbox con caratteri speciali

  1. #1
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,573

    Unhappy [php] checkbox con caratteri speciali

    Salve a tutti.
    Ho un normalissimo form, con dei checkbox.
    Questi checkbox, però, si chiamano con il nome di una e-mail

    ad esempio:
    Codice HTML:
    <input type="checkbox" name="ciao@hotmail.it" />
    Prelevandolo tramite POST, non me lo vede: se lo setto, questo if fallisce:
    Codice PHP:
    if(isset($_POST['ciao@hotmail.it']))
    Ho provato anche così:
    Codice PHP:
    if(isset($_POST[html_entity_decode('ciao@hotmail.it')]))
    ma non va ugualmente.

    L'unica soluzione è trasformare la chiocciola e il punto in una stringa (ad esempio "chiocciola" e "punto" ??
    {avevo provato anche questa soluzione, ma non mi funzionava... (forse l'ora )}

    Mi potete aiutare??

    Grazie,

    Ciao!

  2. #2
    Guest

    Predefinito

    A quanto io sappia $_POST non accetta caratteri speciali (lettere accentate, chioccola, punto etc...)

    P.S. Ma non puoi inserire l'email nell'attributo value?

  3. #3
    Guest

    Predefinito

    Forse ho capito male... Ma volendo non potresti fare così?

    Codice HTML:
    <input type="checkbox" name="email" value="ciao@hotmail.it" />
    Può essere che ho detto una fregnaccia, ma io i checkbox non li uso mai...

    Se fungesse dopo i dati li prendi da $_POST['email'];

    Ripeto, probabilmente i checkbox non accettano il value (non ricordo !!!), però puoi provare o farti dire da qualcuno se ho sbagliato....

  4. #4
    Guest

    Predefinito

    Come ogni input, checkbox accetta il value e se presente in un form, questo viene trasmesso via post o get.

    Comunque se puoi usa il metodo suggerito da superproxy

  5. #5
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,573

    Predefinito

    Il problema è che non ho un solo chekbox, ma vengono scritti via PHP. Quindi potrei averne anche 1000!
    Il caso che ho scritto è molto semplificato!

    Allora provo a togliere i caratteri speciali (@ e .) ma a eliminarli proprio:

    Codice PHP:
    <input type="checkbox" name="<?php echo str_replace("@","", str_replace(".","","ciao@hotmail.it")); />
    Ieri notte mi sembra di aver provato una cosa simile, ma ero troppo stanco e mi sembra che non avevo messo l'echo!

    Grazie!

    Ciao!

  6. #6
    Guest

    Predefinito

    Non ho ben capito cosa devi fare, se ci spieghi dall'inizio forse riusciamo a trovare una soluzione insieme !

  7. #7
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,573

    Predefinito

    Ho già fatto come ho detto sopra

    Grazie a entrambi

    Ciao!

  8. #8
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,306

    Predefinito

    lo sai vero che puoi avere array di checkbox?

    Codice HTML:
    <input type="checkbox" name="indirizzi[]" value="prima@email" />
    <input type="checkbox" name="indirizzi[]" value="seconda@email" />
    <input type="checkbox" name="indirizzi[]" value="terza@email" />

  9. #9
    Guest

    Predefinito

    Non sapevo

    Se ho capito bene, per recuparli si dovrebbe fare:
    Codice PHP:
    echo $_POST["indirizzi"][0]; // prima@email
    Anche non essendo l'autore del topic, mi serviva davvero sapere questo metodo.
    Grazie mille!
    Ultima modifica di nokiagames : 25-07-2009 alle ore 12.55.50

  10. #10
    L'avatar di alemoppo
    alemoppo è connesso ora Staff AV
    Data registrazione
    24-08-2008
    Residenza
    PU / BO
    Messaggi
    22,573

    Predefinito

    Citazione Originalmente inviato da dreadnaut Visualizza messaggio
    lo sai vero che puoi avere array di checkbox?

    Codice HTML:
    <input type="checkbox" name="indirizzi[]" value="prima@email" />
    <input type="checkbox" name="indirizzi[]" value="seconda@email" />
    <input type="checkbox" name="indirizzi[]" value="terza@email" />
    Non lo sapevo... Ormai ho fatto, ma tornerà utile

    grazie!

    Ciao!

  11. #11
    Guest

    Predefinito

    Neanche io lo sapevo! Credo che un giorno mi tornerà utile! Grazie dreadnaut.

  12. #12
    Guest

    Predefinito

    basta fare così:

    Codice PHP:
    $_POST_var = '';
    for (
    $i = 0; $i < count($HTTP_POST_VARS['indirizzi']); $i++)
    {
    echo
    $_POST_var .= $HTTP_POST_VARS['indirizzi'][$i] . ' ';
    }
    Così stampera tutti i check checkati appunto

    Attenzione: l'uso di $HTTP_POST_VARS è stato deprecato anni fa, con php4. Al suo posto usare $_POST.
    Ultima modifica di dreadnaut : 25-07-2009 alle ore 14.16.31

  13. #13
    Guest

    Predefinito

    Ma anche:
    Codice PHP:
    $checkboxs = null;
    foreach(
    $_POST["indirizzi"] as $email) {
    $checkboxs .= $email . " ";
    }
    P.S.
    Citazione Originalmente inviato da php
    Introduced $_POST that deprecated $HTTP_POST_VARS.
    Ultima modifica di nokiagames : 25-07-2009 alle ore 14.14.44

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •