Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24

    Checkbox Privacy: errore di validazione in ogni caso

    Ho integrato nel template dei contatti di un tema wordpress il checkbox della privacy ( di default non presente).
    Il problema è che ottengo l'errore di validazione (*Il consenso è obbligatorio*) che io spunti o no il checkbox della Privacy.
    Premetto che sono inesperta di PHP.

    Posto il codice della pagina ( le parti che ho inserito sono commentate)

    Grazie in anticipo!

    Codice PHP:
      <?php
        
    /*Template Name: Contact form*/
    ?>
    <?php 
    global $SMTheme;?>
    <?php  

        
    if (isset($_POST[$_SESSION['commentinput']])&&$form=$_POST[$_SESSION['commentinput']]) {
            
    $msg='';
            
    $error='';
            
    $errorcode='red';
            
    $privacy=$_POST['privacy']; // parte che ho inserito
            
    foreach ($SMTheme->get'contactform''contactform' ) as $key=>$detail) {
                if (
    $detail['req']=='required'&&$form[$key]==''$error.='Field '.$detail['ttl']." is required<br />";
                if (
    $detail['regex']!=''&&!eregi(stripslashes($detail['regex']),$form[$key])) {
                    
    $error.='Field '.$detail['ttl']." is not valid<br />";
                }
                
    $msg.=$detail['ttl'].": ".$form[$key]."\r\n";
            }
            
    //parte che ho inserito
                
    if ($privacy !=1) {
            
    $error.='Il consenso è obbligatorio<br />';
            } 
    //fine 
            
    $from=($SMTheme->get'general','sitename' ))?$SMTheme->get'general','sitename' ):get_bloginfo('name');
            if (
    $error=='') {
                
    wp_mail($SMTheme->get'contactform''email' ), 'Message from '.$from$msg);
                
    $error=$SMTheme->_'emailok' );
                
    $errorcode='green';
            }
        }        
    ?>
    <?php
        get_header
    ();
    ?>
    <div class='articles'>
        <?php
        the_post
    (); 
        
    ?>
            <div class='one-post'>
            <div id="post-<?php the_ID(); ?><?php post_class("post-caption"); ?>>
                <?php if (!is_single()&&!is_page()) { ?>
                <h2><a href="<?php the_permalink(); ?>" title="<?php printf$SMTheme->_'permalink' ), the_title_attribute'echo=0' ) ); ?>" class='post_ttl'><?php the_title(); ?></a></h2>
                <?php } else { ?>
                    <h1><?php the_title(); ?></h1>
                <?php ?>
            </div>
            <div class='post-body'>
                <?php
                    the_content
    ('');
                
    ?>
            
            <?php if ( $SMTheme->get'contactform','address' ) != '' ) {?>
            <div class='googlemap waiting'><div id="map_canvas" style="width: 100%; height: 300px;"></div></div>
            
            <script>jQuery(function(){loadGMap('<?php echo $SMTheme->get'contactform','address' )?>', 'map_canvas', 16)});</script>

            <?php ?>

    <?php
        
    if ($SMTheme->get'contactform''email' )) {
    ?>
    <form action='' method='POST' class='feedback'>
    <h3><?php echo $SMTheme->_'feedbackttl' ); ?></h3>
    <i><?php echo $SMTheme->_'feedbackbefore' ); ?></i>
        <?php
            
    foreach ($SMTheme->get'contactform''contactform' ) as $key=>$detail) {
                switch (
    $detail['type']) {
                    case 
    'text':
                    
    ?>
    <p><?php echo $detail['ttl']?><?php echo ($detail['req']=='required')?'(*)':''?>
    <div class='input'><input type='text' value='' name='<?php echo $key?>'<?php echo ($detail['req']=='required')?" required='true'":''?> /></div>
    </p>
                    <?php
                    
    break;
                    case 
    'textarea':
                    
    ?>
    <p><?php echo $detail['ttl']?><?php echo ($detail['req']=='required')?'(*)':''?>
    <div class='input'><textarea rows='5' name='<?php echo $key?>'<?php echo ($detail['req']=='required')?" required='true'":''?>></textarea></div>
    </p>
                    <?php
                    
    break;
                }
            }
        
    ?>

    // parte che ho inserito
    <p>
    <input name="privacy" type="checkbox" id="privacy" value="1" />
    <label for="privacy">Dichiaro di aver letto e accettato <a href="Privacy.html">l'informativa sulla Privacy</a></label></p>
    // fine
    <?php echo ($error!='')?"<p style='color:".$errorcode."'>".$error."</p>":''?>
    <center><input type='submit' class='readmore'  name='submit' value='<?php echo $SMTheme->_'send' );?>' /></center>
    </form>
    <?php ?>
    <?php 
    if ($SMTheme->get'contactform','detailttl' ) != '') {?>
    <h3><?php echo $SMTheme->get'contactform','detailttl' )?></h3>
    <?php ?>
    <?php 
    if ($SMTheme->get'contactform','text' )) { ?>
    <div style='margin-bottom:20px;'>
    <?php echo $SMTheme->get'contactform','text' )?>
    </div>
    <?php 

        
    $details=$SMTheme->get'contactform''details' );
        if (!empty(
    $details)) {
    ?>
    <div id='contact'><ul class='contact-details'>
        <?php
            
    foreach ($details as $key=>$detail) {
            
    ?>
                <li class='contact<?php echo $key?>'><?php echo $detail['content']?></li>
            <?php
            
    }
        
    ?>
    </ul></div>
    <style>
                        <?php
                            
    foreach ($SMTheme->get'contactform''details' ) as $key=>$detail) {
                            
    ?>
                        ul.contact-details li.contact<?php echo $key?> {
                            background:url(<?php echo $detail['img']?>) left top no-repeat;
                        }
                            <?php
                            
    }
                        
    ?>
                    </style>
    <?php } else { ?>
        <style>
            form.feedback { width:100%;    }
        </style>
    <?php    
        
    }
    ?>
    </div>
            </div>
     </div>
     <script>
        jQuery('.feedback input').each(function(){
            jQuery(this).attr('name','<?php echo $_SESSION['commentinput']; ?>['+jQuery(this).attr('name')+']');
        });
        jQuery('.feedback textarea').each(function(){
            jQuery(this).attr('name','<?php echo $_SESSION['commentinput']; ?>['+jQuery(this).attr('name')+']');
        });
     </script>
    <?php
        get_footer
    ();
    ?>

  2. #2
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    metterei

    Codice PHP:
    $privacy = isset($_POST['privacy']) ? :0
    al posto di

    Codice PHP:
    $privacy=$_POST['privacy']; 
    Ridatemi i miei 1000 posts persi !!!!
    Non serve a nulla ottimizzare qualcosa che non funziona.
    Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    Ciao badaze, ti ringrazio innanzitutto della risposta.
    Ho provato a cambiare il codice secondo le tue indicazioni, ma purtroppo mi dà lo stesso errore

  4. #4
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626
    E' possibile che dipenda da questo:
    Codice PHP:
     <script>
        jQuery('.feedback input').each(function(){
            jQuery(this).attr('name','<?php echo $_SESSION['commentinput']; ?>['+jQuery(this).attr('name')+']');
        });
        jQuery('.feedback textarea').each(function(){
            jQuery(this).attr('name','<?php echo $_SESSION['commentinput']; ?>['+jQuery(this).attr('name')+']');
        });
     </script>
    In pratica (se ho capito bene), ti cambia il nome degli input.

    Prova a mettere:
    Codice PHP:
    $privacy = isset($_POST[$_SESSION['commentinput']]['privacy']) ? :0
    poi, magari, se riesci a stampare a video $_POST ti regoli meglio sul controllo da fare
    Ultima modifica di boots; 14-07-2014 a 09:11

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2014
    Messaggi
    24
    Boots sei un genio!!
    Ti devo la vita! Grazie infinite!!

  6. #6
    Utente di HTML.it L'avatar di boots
    Registrato dal
    Oct 2012
    Messaggi
    1,626

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 © 2025 vBulletin Solutions, Inc. All rights reserved.