Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129

    Problema con permessi al form

    Salve a tutti...
    ho un problemino credo facilmente risolvibile, solo che ci sto provando da un po e non riesco a risolverlo....

    Poco tempo fa, anche con l'aiuto di un manuale, mi sono creato il mio piccolo scipt e-commerce da usare per piccoli siti... è un po di tempo che non lo uso ma ora devo fare una modifica...

    In poche parole devo aggiungere nella form di spedizione invio dell'ordine la voce "trattamento dati" e se la casella è spuntata l'ordine viene inviato!!! solo che non riesco a fare il controllo.... adesso vi spiego come è strutturata la pagina!!!

    Ci sono 2 file... uno dell'invio ordine (aggiungo solo la parte che sarà da modificare...):



    // Qui stampo la form!!!

    function visualizza_form($msg='') {
    echo "
    <HTML><HEAD><TITLE>Riempi i Campi</TITLE></HEAD>
    <BODY><form name='form[]' method='post' action='invia_ordine.php'>
    <table width='50%' border='1' cellspacing='0' cellpadding='0' bordercolor='#000000'>
    <tr bgcolor='#D5CCBB'>
    <td colspan='2'>Modulo d'ordine: Tutti i campi sono obbligatori. Pagamento
    alla consegna.
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>Nominativo:</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='text' name='form[nominativo]' size='50' maxlength='50'>
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>Indirizzo:</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='text' name='form[indirizzo]' size='50' maxlength='100'>
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>Citt&agrave;:</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='text' name='form[citta]' size='50' maxlength='100'>
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>CAP:</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='text' name='form[cap]' size='5' maxlength='5'>
    </td>
    </tr>
    <tr>
    <td width='22%' height='22' bgcolor='#FFCCCC'>Email:</td>
    <td width='78%' height='22' bgcolor='#FFFFCC'>
    <input type='text' name='form[email]' size='30' maxlength='30'>
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>Codice Fiscale:</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='text' name='form[codice]' size='16' maxlength='16'>
    </td>
    </tr>
    <tr>
    <td width='22%' bgcolor='#FFCCCC'>ACCETTO TRATTAMENTO DATI</td>
    <td width='78%' bgcolor='#FFFFCC'>
    <input type='checkbox' name='form[consento]'>
    </td>
    </tr>
    <tr>
    <td>
    <input type='submit' name='form[submit]' value='Invia Ordine'>
    </td>
    <td>$msg</td>
    </tr>
    </table>
    </form></BODY></HTML>";
    }

    //controllo dell'input di utente
    //Vedere il file check_input.php

    function check($array) {
    include("check_input.php");
    $msg='';
    if (!check_nominativo($array[nominativo]))
    $msg.='Nominativo non corretto
    ';
    if (!check_indirizzo($array[indirizzo]))
    $msg.='Indirizzo non corretto
    ';
    if (!check_citta($array[citta]))
    $msg.='Città non corretta
    ';
    if (!check_cap($array[cap]))
    $msg.='CAP non corretto
    ';
    if (!check_codice($array[codice]))
    $msg.='CF non corretto
    ';
    if (!check_email($array[email]))
    $msg.='Email non corretta
    ';
    if (!check_email($array[consento]))
    $msg.='Devi consentire ai dati spuntando il campo
    ';
    return $msg;
    }

    //invio ordine etc...


    Una volta inseriti i dati come vedete fà un controllo con una pagina creata e se tutto va bene và avanti con la spedizione della mail.....
    Adesso io vorrei fare il controllo che se il campo è spuntato lui và avanti... altrimenti mi ridà l'errore "spuntare il campo".... solo che non ci riesco!
    pagina check_input.php:



    <?PHP

    function check_provincia($provincia) {
    if ((empty($provincia))||(ereg("[^a-zA-Z]+",$provincia,$array))) return 0;
    else return 1;
    }
    function check_nominativo($nominativo) {
    if ((empty($nominativo))||(ereg("[^a-zA-Z\ ]+",$nominativo,$array))) return 0;
    else return 1;
    }
    function check_email($email) {
    if ((empty($email))||(!ereg("([a-zA-Z0-9\.]+)(@{1})([a-zA-Z0-9]{2,})\.([a-zA-Z0-9]{2,})",$email,$array))||(ereg("([\|\<\>\\\/]+)",$email,$array))) return 0;
    else return 1;
    }
    function check_indirizzo($indirizzo) {
    if ((empty($indirizzo))||(ereg("[^a-zA-Z0-9\,\/\ ]+",$indirizzo,$array))) return 0;
    else return 1;
    }
    function check_citta($citta) {
    if ((empty($citta))||(ereg("[^a-zA-Z\ ]+",$citta,$array))) return 0;
    else return 1;
    }
    function check_cap($cap) {
    if ((empty($cap))||(ereg("[^0-9]{5}",$cap,$array))) return 0;
    else return 1;
    }
    function check_telefono($telefono) {
    if ((empty($telefono))||(ereg("([^0-9/\-]+)",$telefono,$array))) return 0;
    else return 1;
    }
    function check_codice($codice) {
    if ((empty($codice))||(!ereg("([a-zA-Z]){6}([0-9]){2}([a-zA-Z]){1}([0-9]){2}([a-zA-Z]){1}([0-9]){3}([a-zA-Z]){1}",$codice,$array))) return 0;
    else return 1;
    }
    function check_qta($articolo_qta) {
    if ((empty($articolo_qta))||(ereg("[^0-9]",$articolo_qta,$array))||($articolo_qta<"0")) return 0;
    else return 1;
    }
    function check_consento($consento) {
    if ($consento='true') return 0;
    else return 1;
    }
    ?>



    Ovviamente io sbaglio la funzione check_consento... come si crea col checkbox!?!?
    Grazie!!!

    Avrei un'altra domanda... ma sarebbe buono inserire uno script che permetta ai clienti di pagare online direttamente con carta oppure è pericoloso?!... fino ad adesso ho usato un link che li collega direttamente a paypal.it. Meglio?! O ci sono script sicuri e fatti bene che mi permettono anche questo!? Poi credo ci vorrebbero anche i permessi,no!?

    grazie ancora

  2. #2
    Se il checkbox è checkato invia un valore alla pagina successiva... altrimenti non lo invia.

    Basta quindi fare un controllo sul valore di "form[consento]" con 'isset()' e (visto che non hai specificato alcun 'value' preciso) controllare semplicemente se arriva qualcosa da quel campo.

    Se ritorna true allora è stato checkato....

    Per il controllo javascript dovresti chiedere sull'altro forum... comunque si fa controllando se è true o false la proprietà 'checked' dell'oggetto <input checkbox />.

    Consulta qualche sito di transazioni online, come BancaSella..... loro ti dicono di inviare tramite form certi specifici dati ad una Loro pagina.
    Loro processano i dati, fanno la transazione e ti restituiscono il risultato indietro, che tu processerai di nuovo e mostrerai a video nuovamente sulle tue pagine...

    Di totalmente sicuro non c'è niente.
    Ma si può dire che "Sì, è sicuro"; almeno più sicuro che uscire in periferia a Milano per andare a fare un prelievo.
    La sicurezza TOTALE non esiste, in nessun ambito. Esistono solo buoni compromessi (come quello che fai 'azzardantoti' ad uscire fuori casa e andare ad un bancomat pubblico... non so se mi spiego )

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe dovrei sostituire nella pagina dei controlli la parte...


    function check_consento($consento) {
    if ($consento='true') return 0;
    else return 1;


    con questa...


    function check_consento($consento) {
    if (isset($consento)=='true') return 0;
    else return 1;


    Solo che continua a non andarmi bene... nel senso che spuntato o no mi restituisce il messaggio di mancato riempimento:

    if (!check_email($array[consento]))
    $msg.='Devi consentire ai dati spuntando il campo
    ';


    Dove sbaglio????


    Riguardo i pagamenti ho capito... bhe cmq di solito se voglio accettare dei pagamenti diretti devo parlare con la banca e loro mi daranno tutto il codice che dovrò inserire nelle mie pagine... a quanto ho capito....

    Grazie

  4. #4
    ma non puoi farlo in javascript? fai un controllo sul checkbox, se è segnato fa la submit, altrimenti no e mostra ad ex un alert
    V.I.S.T.A. --> Virus Inside, Switch To Apple

  5. #5
    Il controllo javascript non è sicuro.... basta che li disabilito nel browser e salto qualunque tipo di controllo senza alert o altro...

    Prova una cosa: aggiungi la proprietà 'value' al checkbox. Mettigli value="si" o qualunque altro valore (basta che ne abbia uno).
    E ora controlla se ti funziona.

    Se non ti funziona, prima del controllo scrivi:
    Codice PHP:
    echo ( (isset($_POST["form[consento]"])) ? "Il valore arriva" "Il valore non arriva) . "
    ";
    echo "
    Il valore di form[consentoè " . $_POST["form[consento]"] . "!";
    exit(); 
    E dimmi cosa ti stampa.


    Poi una cosa..... ma la funzione check_consento la esegui da qualche parte o speri che parta da sola?
    E cosa gli passi come argomento?

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    bhe il javascript proprio no... ho fatto tutto in php fortunatamente...

    Pictor ho seguito la tua prima risposta e ci ho sbattuto la testa un po di volte....alla fine ho risolto così...


    if (isset($consento)=='true') return 1;
    else return 0;

    Adesso funziona!

    il problema era anche un'altro di distrazione..... eccolo...

    if (!check_email($array[consento]))
    $msg.='Devi consentire ai dati spuntando il campo
    ';

    questo check mail deve scomparire... e va check_consento ovviamente!!!!

    Cmq grazie di tutto... la funzione isset() l'avevo proprio dimenticata!

  7. #7
    La funzione isset è basilare nello scambio di informazioni tra pagine!

    A proposito.... il concetto di condizione è che viene valutata un'espressione e visto se risulta Vera o Falsa.

    Quindi quando fai un IF non c'è bisogno che tu compari con "==true". E' facoltativo.

    Un programmatore decente (quale io non sono ) di solito mette solamente la condizione:
    Codice PHP:
    if (isset($consento)) return 1;
    else return 
    0
    è come fare
    Codice PHP:
    if (isset($consento)==true) return 1;
    else return 
    0
    e allo stesso modo

    Codice PHP:
    if ( ! isset($consento)) return 1;
    else return 
    0
    è come fare
    Codice PHP:
    if (isset($consento)==false) return 1;
    else return 
    0
    Nel tuo caso true e false sono messe come stringhe e il discorso non vale. Ma io te lo dico per sicurezza

  8. #8
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    grazie...
    e se tu non sei un buon programmatore allora io che sono...ahha ...

    Tutto chiaro cmq....

    Solo una dubbio mi è rimasto... quindi riguardo l'e-commerce, il modo più sicuro e migliore è di parlare con la banca. e sono loro che i devono passare "link" o "script" per inserirlo nella mia pagina vero?!!?

    Grazie e scusa!!!

  9. #9
    Tu non inserisci script nella tua pagina.

    In pratica la banca richiede che tu fornisca tot dati per effettuare la transazione (chi paga, numero di carta, numero di sicurezza, scadenza, chi viene pagato, costo della transazione, ed eventuali altri codici o roba di riconoscimento).

    Tu fai una pagina con una form che permette di inviare questi dati richiesti. Al submit della form invia i dati ad un indirizzo che la banca ti fornirà (un webservice che riceve dei precisi parametri per effettuare delle operazioni). Quell'URL infatti starà nella proprietà 'action' del tuo form.

    La banca processa i dati da te passati, effettua la transazione, e restituisce dei dati di ritorno come risultato.
    Questi dati verranno passati ad una pagina del tuo sito che avrà le informazioni necessarie per capire se la transazione economica ha avuto successo o no.

    Questo nella mia esperienza. Poi a volte la compilazione dei dati si svolge completamente sul sito della banca, per poi tornare sul tuo a transazione finita.
    O magari ti danno loro direttamente il codice sorgente della form che invia i dati, da integrare nel tuo sito.

    Devi informarti da chi ti fornirà il servizio....

    Io conosco BancaSella per il trading online... ma ne esistono sicuramente altri.

    Contatta loro o chiedi informazioni alla tua banca...

    Ciao

  10. #10
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    129
    Sei grande!!!!

    Grazie di tutto!!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.