Foros del Web » Programando para Internet » PHP »

Como añadirle un elemento de confirmación "checkbox" a este formulario?

Estas en el tema de Como añadirle un elemento de confirmación "checkbox" a este formulario? en el foro de PHP en Foros del Web. Salu2 gente tengo este formulario donde los usuarios pueden contactar conmigo y enviarme archivos a mi dirección de correo. pero necesito añadir un checkbox obligatorio ...
  #1 (permalink)  
Antiguo 12/09/2007, 12:09
Avatar de xiscomax  
Fecha de Ingreso: febrero-2006
Mensajes: 379
Antigüedad: 18 años, 2 meses
Puntos: 5
Como añadirle un elemento de confirmación "checkbox" a este formulario?

Salu2 gente tengo este formulario donde los usuarios pueden contactar conmigo y enviarme archivos a mi dirección de correo. pero necesito añadir un checkbox obligatorio para que el envio se pueda realizar.

el dormulario es un plugin del wordpress pongo el enlace para quien quiera descargarselo y verlo, de todas formas os pongo el codigo.

Código PHP:
<?php
/*
Plugin Name: WP-ContactForm
Version: 1.4.3
*/

load_plugin_textdomain('wpcf',$path 'wp-content/plugins/wp-contact-form');

// Attachments max size in KB!
$attachment_max_size 1024;

/* Declare strings that change depending on input. This also resets them so errors clear on resubmission. */
$wpcf_strings = array(
    
'name' => '<div class="contactright"><input  class="textfield" type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' $_POST['wpcf_your_name'] . '" /> (requerido)</div>',
    
'email' => '<div class="contactright"><input  class="textfield" type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' $_POST['wpcf_email'] . '" /> (requerido)</div>',
    
'msg' => '<br/><textarea  class="textfield" name="wpcf_msg" id="wpcf_msg" cols="35" rows="8" >' $_POST['wpcf_msg'] . '</textarea>',
    
'error' => '');

/*
This shows the quicktag on the write pages
Based off Buttonsnap Template
http://redalt.com/downloads
*/
if(get_option('wpcf_show_quicktag') == true) {
    include(
'buttonsnap.php');

    
add_action('init''wpcf_button_init');
    
add_action('marker_css''wpcf_marker_css');

    function 
wpcf_button_init() {
        
$wpcf_button_url buttonsnap_dirname(__FILE__) . '/wpcf_button.png';

        
buttonsnap_textbutton($wpcf_button_url__('Insertar Formulario''wpcf'), '<!--contact form-->');
        
buttonsnap_register_marker('contact form''wpcf_marker');
    }

    function 
wpcf_marker_css() {
        
$wpcf_marker_url buttonsnap_dirname(__FILE__) . '/wpcf_marker.gif';
        echo 
"
            .wpcf_marker {
                    display: block;
                    height: 15px;
                    width: 155px
                    margin-top: 5px;
                    background-image: url({$wpcf_marker_url});
                    background-repeat: no-repeat;
                    background-position: center;
            }
        "
;
    }
}

function 
wpcf_is_malicious($input) {
    
$is_malicious false;
    
$bad_inputs = array("\r""\n""mime-version""content-type""cc:""to:");
    foreach(
$bad_inputs as $bad_input) {
        if(
strpos(strtolower($input), strtolower($bad_input)) !== false) {
            
$is_malicious true; break;
        }
    }
    return 
$is_malicious;
}

/* This function checks for errors on input and changes $wpcf_strings if there are any errors. Shortcircuits if there has not been a submission */
function wpcf_check_input()
{
    if(!(isset(
$_POST['wpcf_stage']))) {return false;} // Shortcircuit.

    
$_POST['wpcf_your_name'] = stripslashes(trim($_POST['wpcf_your_name']));
    
$_POST['wpcf_email'] = stripslashes(trim($_POST['wpcf_email']));
    
$_POST['wpcf_website'] = stripslashes(trim($_POST['wpcf_website']));
    
$_POST['wpcf_msg'] = stripslashes(trim($_POST['wpcf_msg']));

    global 
$wpcf_strings;
    
$ok true;

    if(empty(
$_POST['wpcf_your_name']))
    {
        
$ok false$reason 'empty';
        
$wpcf_strings['name'] = '<div class="contactright"><input type="text" name="wpcf_your_name" id="wpcf_your_name" size="30" maxlength="50" value="' $_POST['wpcf_your_name'] . '" class="contacterror" /> (' __('requerido''wpcf') . ')</div>';
    }

    if(!
is_email($_POST['wpcf_email']))
    {
        
$ok false$reason 'empty';
        
$wpcf_strings['email'] = '<div class="contactright"><input type="text" name="wpcf_email" id="wpcf_email" size="30" maxlength="50" value="' $_POST['wpcf_email'] . '" class="contacterror" /> (' __('requerido''wpcf') . ')</div>';
    }

    if(empty(
$_POST['wpcf_msg']))
    {
        
$ok false$reason 'empty';
        
$wpcf_strings['msg'] = '<div class="contactright"><textarea name="wpcf_msg" id="wpcf_message" cols="35" rows="8" class="contacterror">' $_POST['wpcf_msg'] . '</textarea></div>';
    }

    if(
wpcf_is_malicious($_POST['wpcf_your_name']) || wpcf_is_malicious($_POST['wpcf_email'])) {
        
$ok false$reason 'malicious';
    }

    if(
$ok == true)
    {
        return 
true;
    }
    else {
        if(
$reason == 'malicious') {
            
$wpcf_strings['error'] = "<div style='font-weight: bold;'>You can not use any of the following in the Name or Email fields: a linebreak, or the phrases 'mime-version', 'content-type', 'cc:' or 'to:'.</div>";
        } elseif(
$reason == 'empty') {
            
$wpcf_strings['error'] = '<div style="font-weight: bold;">' stripslashes(get_option('wpcf_error_msg')) . '</div>';
        }
        return 
false;
    }
}

/*Wrapper function which calls the form.*/
function wpcf_callback$content )
{
    global 
$wpcf_strings$attachment_max_size;

    
/* Run the input check. */

        
if(! preg_match('|<!--contact form-->|'$content)) {
        return 
$content;
        }

    if(
wpcf_check_input()) // If the input check returns true (ie. there has been a submission & input is ok)
    
{
            
$recipient get_option('wpcf_email');
            
$subject get_option('wpcf_subject');
                        
$success_msg get_option('wpcf_success_msg');
                        
$success_msg stripslashes($success_msg);

            
$name $_POST['wpcf_your_name'];
            
$email $_POST['wpcf_email'];
            
$website $_POST['wpcf_website'];
            
$msg $_POST['wpcf_msg'];

        
$regexp "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>(.*)<\/a>";
        if(
preg_match_all("/$regexp/siU"$msg$matchesPREG_SET_ORDER)) {
            if(
count($matches) > 2) {
                
$results '<h2 class="pagetitle red">No more than 2 links allowed!</h2>';
                echo 
$results;
                return;
             }
/*
            foreach($matches as $match) {
            # $match[2] = link address 
            # $match[3] = link text
            }
*/
        
}

        
$headers "MIME-Version: 1.0\n";
        
$headers .= "From: $name <$email>\n";
                        
//$headers .= "Content-Type: text/plain; charset=\"" . get_settings('blog_charset') . "\"\n";

        
$headers .= "Content-Type: multipart/related; type=\"multipart/alternative\"; boundary=\"----=MIME_BOUNDRY_main_message\"\n";
        
$headers .= "X-Sender: $from_name<" $email ">\n";
        
$headers .= "X-Mailer: PHP4\n";
        
$headers .= "X-Priority: 3\n"//1 = Urgent, 3 = Normal
        
$headers .= "Return-Path: <" $email ">\n"
        
$headers .= "This is a multi-part message in MIME format.\n";
        
$headers .= "------=MIME_BOUNDRY_main_message \n"
        
$headers .= "Content-Type: multipart/alternative; boundary=\"----=MIME_BOUNDRY_main_message\"\n"

            
//$fullmsg = "$name wrote:\n";
            //$fullmsg .= wordwrap($msg, 80, "\n") . "\n\n";
            //$fullmsg .= "Website: " . $website . "\n";
            //$fullmsg .= "IP: " . getip();
Sigue....
  #2 (permalink)  
Antiguo 12/09/2007, 12:10
Avatar de xiscomax  
Fecha de Ingreso: febrero-2006
Mensajes: 379
Antigüedad: 18 años, 2 meses
Puntos: 5
Re: Como añadirle un elemento de confirmación "checkbox" a este formulario?

Código PHP:
$filecount = 0;
foreach($_FILES as $file => $value) {
    $attachment[(int)$filecount] = $_FILES[$file]['tmp_name'];
    $attachment_name[(int)$filecount] = $_FILES[$file]['name'];
    $attachment_size[(int)$filecount] = $_FILES[$file]['size'];
    if (is_uploaded_file($attachment[(int)$filecount])) { //Do we have a file uploaded?
        if ($attachment_size[(int)$filecount] <= $attachment_max_size * 1024) { //Do we have a file uploaded?
            $fp = fopen($attachment[(int)$filecount], "rb"); //Open it
            $data[(int)$filecount] = fread($fp, filesize($attachment[(int)$filecount])); //Read it
            $data[(int)$filecount] = chunk_split(base64_encode($data[(int)$filecount])); //Chunk it up and encode it as base64 so it can emailed
            fclose($fp);
            $filecount++;
        }
    }
}
    //$attachment = $_FILES['cattachment']['tmp_name'];
//    $attachment_name = $_FILES['cattachment']['name']; 
//    if (is_uploaded_file($attachment)) { //Do we have a file uploaded?
//      $fp = fopen($attachment, "rb"); //Open it
//      $data = fread($fp, filesize($attachment)); //Read it
//      $data = chunk_split(base64_encode($data)); //Chunk it up and encode it as base64 so it can emailed
//        fclose($fp);
//    } 
    
    $fullmsg = "------=MIME_BOUNDRY_main_message\n";
    $fullmsg .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n"; 
    $fullmsg .= "Content-Transfer-Encoding: quoted-printable\n"; 
    $fullmsg .= "\n"; 
    /* Add our message, in this case it's plain text.  You could also add HTML by changing the Content-Type to text/html */
    $fullmsg .= "Sitio web: " . $website . "\n";
        $fullmsg .= "$name wrote:\n";
    $fullmsg .= wordwrap($msg, 80, "\n") . "\n\n";
    $fullmsg .= "\n"; 
    $fullmsg .= "------=MIME_BOUNDRY_main_message\n"; 
    $fullmsg .= "\n"; 

        $fullmsg .= "------=MIME_BOUNDRY_main_message\n"; 
  
for ($i = 0, $filecount = (int) count($data); $i < $filecount; $i++) {
    $fullmsg .= "------=MIME_BOUNDRY_main_message\n";
    $fullmsg .= "Content-Type: application/octet-stream;\n\tname=\"" . $attachment_name[$i] . "\"\n";
    $fullmsg .= "Content-Transfer-Encoding: base64\n";
    $fullmsg .= "Content-Disposition: attachment;\n\tfilename=\"" . $attachment_name[$i] . "\"\n\n";
    $fullmsg .= $data[$i]; //The base64 encoded message
    $fullmsg .= "\n\n";
}

      //$fullmsg .= "Content-Type: application/octet-stream;\n\tname=\"" . $attachment_name . "\"\n";
    //$fullmsg .= "Content-Transfer-Encoding: base64\n";
    //$fullmsg .= "Content-Disposition: attachment;\n\tfilename=\"" . $attachment_name . "\"\n\n";
    //$fullmsg .= $data; //The base64 encoded message
    //$fullmsg .= "\n"; 
    $fullmsg .= "------=MIME_BOUNDRY_main_message\n";  

            mail($recipient, $subject, $fullmsg, $headers);

            $results = '<h2 class="pagetitle">' . $success_msg . '</h2>';
            echo $results;
    }
    else // Else show the form. If there are errors the strings will have updated during running the inputcheck.
    {
        $form = '<div class="formfoto">
        ' . $wpcf_strings['error'] . '
            <form enctype="multipart/form-data" action="' . get_permalink() . '" method="post">
                <div class="contactleft"><label for="wpcf_your_name">' . __('Nombre o Nick Para la Foto (*): ', 'wpcf') . '</label></div>' . $wpcf_strings['name']  . '
                <div class="contactleft"><label for="wpcf_email">' . __('E-Mail (*):', 'wpcf') . '</label></div>' . $wpcf_strings['email'] . '
                <div class="contactleft"><label for="wpcf_website">' . __('Sitio web:', 'wpcf') . '</label></div><div class="contactright"><input class="textfield" type="text" name="wpcf_website" id="wpcf_website" size="30" maxlength="100" value="' . $_POST['wpcf_website'] . '" /></div>
                <div class="contactleft nop"><label for="wpcf_msg">' . __('Cuentanos algo... (Ejemplo, porque quieres salir en webculos) ', 'wpcf') . '</label>' . $wpcf_strings['msg'] . '</div>
                <div class="contactleft nop"><label for="wpcf_msg">' . __('Seleccionar las fotos en formato JPG: ', 'wpcf') . '<small>max ' . $attachment_max_size . ' kb</small></label><br/>
                            <input type="file" name="cattachment1"  class="textfield file" /><br/>
                            <input type="file" name="cattachment2"  class="textfield file" /><br/>
                            <input type="file" name="cattachment3"  class="textfield file" /><br/>
                            <input type="file" name="cattachment4"  class="textfield file" /></div>
                <div class="contactright"><input type="submit" name="Submit" value="Enviar" id="contactsubmit" /><input type="hidden" name="wpcf_stage" value="process" /></div>
               </form>
        </div>
        <div style="clear:both; height:1px;">&nbsp;</div>';

        return str_replace('<!--contact form-->', $form, $content);
    }
}


/*Can't use WP's function here, so lets use our own*/
function getip()
{
    if (isset($_SERVER))
    {
         if (isset($_SERVER["HTTP_X_FORWARDED_FOR"]))
         {
              $ip_addr = $_SERVER["HTTP_X_FORWARDED_FOR"];
         }
         elseif (isset($_SERVER["HTTP_CLIENT_IP"]))
         {
              $ip_addr = $_SERVER["HTTP_CLIENT_IP"];
         }
         else
         {
             $ip_addr = $_SERVER["REMOTE_ADDR"];
         }
    }
    else
    {
         if ( getenv( 'HTTP_X_FORWARDED_FOR' ) )
         {
              $ip_addr = getenv( 'HTTP_X_FORWARDED_FOR' );
         }
         elseif ( getenv( 'HTTP_CLIENT_IP' ) )
         {
              $ip_addr = getenv( 'HTTP_CLIENT_IP' );
         }
         else
         {
              $ip_addr = getenv( 'REMOTE_ADDR' );
         }
    }
return $ip_addr;
}


/*CSS Styling*/
function wpcf_css()    {
    ?>
<?php

    
}

function 
wpcf_add_options_page()
    {
        
add_options_page('Contact Form Options''Formulario Fotos''manage_options''wp-contact-form/options-contactform.php');
    }

/* Action calls for all functions */

//if(get_option('wpcf_show_quicktag') == true) {add_action('admin_footer', 'wpcf_add_quicktag');}

add_action('admin_head''wpcf_add_options_page');
add_filter('wp_head''wpcf_css');
add_filter('the_content''wpcf_callback'7);

?>
Si alguien puede hecharme un cable se lo tendria muy agradecido
Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:40.