Foros del Web » Programando para Internet » PHP »

Necesito ayuda con Formulario.

Estas en el tema de Necesito ayuda con Formulario. en el foro de PHP en Foros del Web. Tengo este formulario, WP-ContactForm enparte compuesto por este codigo Este que pertenece a las opciones de administración. Código PHP: <?php /* Description: Opciones de administracion para WP-ContactForm */ load_plugin_textdomain ( ...
  #1 (permalink)  
Antiguo 24/06/2007, 12:57
Avatar de xiscomax  
Fecha de Ingreso: febrero-2006
Mensajes: 379
Antigüedad: 18 años, 2 meses
Puntos: 5
Necesito ayuda con Formulario.

Tengo este formulario, WP-ContactForm enparte compuesto por este codigo

Este que pertenece a las opciones de administración.

Código PHP:
<?php
/*
Description: Opciones de administracion para WP-ContactForm
*/

load_plugin_textdomain('wpcf',$path 'wp-content/plugins/wp-contact-form');
$location get_option('siteurl') . '/wp-admin/admin.php?page=wp-contact-form/options-contactform.php'// Form Action URI

/*Lets add some default options if they don't exist*/
add_option('wpcf_email'__('[email protected]''wpcf'));
add_option('wpcf_subject'__('Comentario del blog''wpcf'));
add_option('wpcf_success_msg'__('Gracias por tu comentario!''wpcf'));
add_option('wpcf_error_msg'__('Por favor complete todos los campos requeridos.''wpcf'));
add_option('wpcf_show_quicktag'TRUE);

/*check form submission and update options*/
if ('process' == $_POST['stage'])
{
update_option('wpcf_email'$_POST['wpcf_email']);
update_option('wpcf_subject'$_POST['wpcf_subject']);
update_option('wpcf_success_msg'$_POST['wpcf_success_msg']);
update_option('wpcf_error_msg'$_POST['wpcf_error_msg']);

if(isset(
$_POST['wpcf_show_quicktag'])) // If wpcf_show_quicktag is checked
    
{update_option('wpcf_show_quicktag'true);}
    else {
update_option('wpcf_show_quicktag'false);}

}

/*Get options for form fields*/
$wpcf_email stripslashes(get_option('wpcf_email'));
$wpcf_subject stripslashes(get_option('wpcf_subject'));
$wpcf_success_msg stripslashes(get_option('wpcf_success_msg'));
$wpcf_error_msg stripslashes(get_option('wpcf_error_msg'));
$wpcf_show_quicktag get_option('wpcf_show_quicktag');
?>

<div class="wrap">
  <h2><?php _e('Formulario de Contacto, Opciones''wpcf'?></h2>
  <form name="form1" method="post" action="<?php echo $location ?>&amp;updated=true">
    <input type="hidden" name="stage" value="process" />
    <table width="100%" cellspacing="2" cellpadding="5" class="editform">
      <tr valign="top">
        <th scope="row"><?php _e('Dirección, E-mail:'?></th>
        <td><input name="wpcf_email" type="text" id="wpcf_email" value="<?php echo $wpcf_email?>" size="40" />
        <br />
<?php _e('Esta es la direccion a la que se le enviara el email.''wpcf'?></td>
      </tr>
      <tr valign="top">
        <th scope="row"><?php _e('Asunto:'?></th>
        <td><input name="wpcf_subject" type="text" id="wpcf_subject" value="<?php echo $wpcf_subject?>" size="50" />
        <br />
<?php _e('Este sera el asunto del email.''wpcf'?></td>
      </tr>
     </table>

    <fieldset class="options">
        <legend><?php _e('Respuestas''wpcf'?></legend>
        <table width="100%" cellspacing="2" cellpadding="5" class="editform">
          <tr valign="top">
            <th scope="row"><?php _e('Formulario correcto:''wpcf'?></th>
            <td><textarea name="wpcf_success_msg" id="wpcf_success_msg" style="width: 80%;" rows="4" cols="50"><?php echo $wpcf_success_msg?></textarea>
            <br />
    <?php _e('Cuando el formulario este correctamente rellenado, este será el mensaje que vera el usuario.''wpcf'?></td>
          </tr>
          <tr valign="top">
            <th scope="row"><?php _e('Error en el formulario:''wpcf'?></th>
            <td><textarea name="wpcf_error_msg" id="wpcf_error_msg" style="width: 80%;" rows="4" cols="50"><?php echo $wpcf_error_msg?></textarea>
            <br />
    <?php _e('Si el usuario no rellena un de los campos requeridos, verá este mensaje.''wpcf'?> <br />
    <?php _e('Puede aplicar CSS en este texto, colocándolo entre <code>&lt;p style="[su CSS aqui]"&gt; &lt;/p&gt;</code>.''wpcf'?><br />
    <?php _e('IE. <code>&lt;p style="color:red;"&gt;Por favor complete todos los campos requeridos.&lt;/p&gt;</code>.''wpcf'?></td>
          </tr>
        </table>

    </fieldset>

    <fieldset class="options">
        <legend><?php _e('Avanzado''wpcf'?></legend>

        <table width="100%" cellpadding="5" class="editform">
          <tr valign="top">
            <th width="30%" scope="row" style="text-align: left"><?php _e('Insertar Quicktag en  el editor''wpcf'?></th>
            <td>
                <input name="wpcf_show_quicktag" type="checkbox" id="wpcf_show_quicktag" value="wpcf_show_quicktag"
                <?php if($wpcf_show_quicktag == TRUE) {?> checked="checked" <?php ?> />
            </td>
          </tr>
         </table>

    </fieldset>

    <p class="submit">
      <input type="submit" name="Submit" value="<?php _e('Update Opciones''wpcf'?> &raquo;" />
    </p>
  </form>
</div>
Bueno resulta que cuando el usuario envia el formulario correctamente le aparece como respuesta lo siguiente:
Gracias por tu comentario!

Que esta en esta parte del codigo:

Código PHP:
/*Lets add some default options if they don't exist*/
add_option('wpcf_email'__('[email protected]''wpcf'));
add_option('wpcf_subject'__('Comentario del blog''wpcf'));
add_option('wpcf_success_msg'__('Gracias por tu comentario!''wpcf'));
add_option('wpcf_error_msg'__('Por favor complete todos los campos requeridos.''wpcf'));
add_option('wpcf_show_quicktag'TRUE); 
Lo que me gustaria saber es si seria posible que envez de mostrar este mensaje, pues que automaticamente llevase al usuario al index de la pagina web.

Cita:
Opto por suprimir esta respuesta "Gracias por tu comentario!" porque no se como agregarle style a ese apartado, add_option('wpcf_success_msg', __('Gracias por tu comentario!', 'wpcf')); ya que me descuadra parte del sitio web devido al tamaño del texto con el que aparece. Si alguien sabe otra solucion oh si realmente se puede añadir style y me lo pudiera decir, se lo agradeceria.
Gracias:
Si necesitais el codigo del formulario esta en el siguiente post:

Última edición por xiscomax; 24/06/2007 a las 13:02
  #2 (permalink)  
Antiguo 24/06/2007, 12:58
Avatar de xiscomax  
Fecha de Ingreso: febrero-2006
Mensajes: 379
Antigüedad: 18 años, 2 meses
Puntos: 5
Re: Necesito ayuda con Formulario.

Código PHP:
<?php
/*
Plugin Name: WP-ContactForm
Description: WP Contact Form es un formulario para que los usuarios se puedan poner fácilmente en contacto con usted. Se puede insertar en un post o en una web. Esta versión es de uso SOLO para Wordpress 2.0 --- Esta versión ha sido traducida por <a href="http://quintadimension.net/blog/">Quintadimension.net</a> si tiene alguna consulta o sugerencia consulte su web. --- Programado
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__('Insert Contact Form''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

Última edición por xiscomax; 24/06/2007 a las 13:17
  #3 (permalink)  
Antiguo 24/06/2007, 12:59
Avatar de xiscomax  
Fecha de Ingreso: febrero-2006
Mensajes: 379
Antigüedad: 18 años, 2 meses
Puntos: 5
Re: Necesito ayuda con Formulario.

Código PHP:
!</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();


$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="contactform"><h2 align="center">Contact me</h2>
        ' . $wpcf_strings['error'] . '
            <form enctype="multipart/form-data" action="' . get_permalink() . '" method="post">
                <div class="contactleft"><label for="wpcf_your_name">' . __('Nombre (*): ', '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">' . __('Mensaje: ', 'wpcf') . '</label>' . $wpcf_strings['msg'] . '</div>
                <div class="contactleft nop"><label for="wpcf_msg">' . __('Añadir Fotos: ', '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" /></div>
                <div class="contactright"><input type="submit" name="Submit" value="Send" 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''Contact Form''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);

?>
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 15:46.