Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/04/2006, 08:37
albertt_t
 
Fecha de Ingreso: noviembre-2004
Mensajes: 159
Antigüedad: 19 años, 5 meses
Puntos: 0
Exclamación Pasar Variable por post a función

Saludos amigos, tengo una duda, tengo un formulario mediante el cual intento pasar una varible por metodo post a una función, el detalle es que dentro de la función existe una consulta que debe recibir el valor de esa variable pero no lo recibe (se esta perdiendo).


archivo gb.class.php

Código PHP:

//esta es la funcion a la cual quiero hacerle llegar el valor de esa variable.

 
function get_entries($entry,$last_entry) {


  
// $ valor es la variable que recibe por metodo post
      
        
$valor = (isset($_POST['valor']));
        global 
$GB_UPLOAD$GB_PG;
        
        
$entry intval($entry);
        
$last_entry intval($last_entry);
        
        
$img = new gb_image();
        
$img->set_border_size($this->db->VARS["img_width"], $this->db->VARS["img_height"]);
        
$LANG = &$this->db->LANG;
        
$id $this->total-$entry;
        
$HOST '';
        
$COMMENT '';
        
$GB_ENTRIES '';
        
$i=0;
        
$template['entry'] = $this->template->get_template($this->db->GB_TPL['entry']);
        
$template['com'] = $this->template->get_template($this->db->GB_TPL['com']);
        
$template['url'] = $this->template->get_template($this->db->GB_TPL['url']);
        
$template['icq'] = $this->template->get_template($this->db->GB_TPL['icq']);
        
$template['aim'] = $this->template->get_template($this->db->GB_TPL['aim']);
        
$template['email'] = $this->template->get_template($this->db->GB_TPL['email']);
        
$template['image'] = $this->template->get_template($this->db->GB_TPL['image']);     
        
$result $this->db->query("select x.*, y.p_filename, y.width, y.height from ".$this->db->table['data']." x left join ".$this->db->table['pics']." y on 



// se supone $valor es el valor que recibe desde mi formulario por metodo post
// pero no lo recibe... 


(x.id=y.msg_id and y.book_id=2 )  
              where x.type='$valor' order by x.id desc limit $entry, $last_entry"
        
);
        





while (
$row $this->db->fetch_array($result)) {
            
$row['email2'] = "";
            
$DATE $this->db->DateFormat($row['date']);
            
$MESSAGE nl2br($row['comment']);
            
            
            if (
$row['p_filename'] && ereg("^img-",$row['p_filename'])) {
                if (
file_exists("$this->path/$GB_UPLOAD/t_$row[p_filename]")) {
                    
$row['p_filename'] = "t_$row[p_filename]";
                }
                
$new_img_size $img->get_img_size_format($row['width'], $row['height']);
                eval(
"\$USER_PIC = \"".$template['image']."\";");
            } else {
                
$USER_PIC '';
            }
            if (
$this->db->VARS["smilies"] == 1) {
                
$MESSAGE $this->db->emotion($MESSAGE);
            }
            if (!
$row['location']) {
                
$row['location'] = "-";
            }
            
$bgcolor = ($i 2) ? $this->db->VARS["tb_color_2"] : $this->db->VARS["tb_color_1"];
            
$i++;
            if (
$row['url']) {
                eval(
"\$URL = \"".$template['url']."\";");
            } else {
                
$URL '';
            }
            if (
$row['icq'] && $this->db->VARS["allow_icq"]==1) {
                eval(
"\$ICQ = \"".$template['icq']."\";");
            } else {
                
$ICQ '';
            }
            if (
$row['aim'] && $this->db->VARS["allow_aim"]==1) {
                eval(
"\$AIM = \"".$template['aim']."\";");
            } else {
                
$AIM '';
            }
            if (
$row['email']) {
                
/* E-mail Hack */
                
$row['email2'] = str_replace("@""(at)"$row['email']);
                
$row['email2'] = str_replace(".""(dot)"$row['email2']); 
                
$row['email'] = "javascript:getEmail('".$this->db->encryptEmail("mailto:".$row['email'])."')";              
                eval(
"\$EMAIL = \"".$template['email']."\";");
            } else {
                
$EMAIL '';
            }
            if (
$this->db->VARS["allow_gender"]==1) {
                
$GENDER = ($row['gender']=="f") ? "&nbsp;<img src=\"$GB_PG[base_url]/img/female.gif\" width=\"12\" height=\"12\">" "&nbsp;<img src=\"$GB_PG[base_url]/img/male.gif\" width=\"12\" height=\"12\">";
            } else {
                
$GENDER '';
            }
            if (
$this->db->VARS["show_ip"] == 1) {
                
$hostname = ( eregi("^[-a-z_]+"$row['host']) ) ? "Host" "IP";
                
$HOST "$hostname: $row[host]\n";
            }
            
$this->db->query("select * from ".$this->db->table['com']." where id='$row[id]'  order by com_id asc");
            while (
$com $this->db->fetch_array($this->db->result)) {
                
$com['comments'] = nl2br($com['comments']);
                eval(
"\$COMMENT .= \"".$template['com']."\";");
            }          
            
$GB_COMMENT = (IS_MODULE && eregi("\?",$GB_PG["comment"])) ? "$GB_PG[comment]&gb_id=$row[id]" "$GB_PG[comment]?gb_id=$row[id]"
            eval(
"\$GB_ENTRIES .= \"".$template['entry']."\";");
            
$COMMENT "";
            
$id--;
        }
        
$TPL['GB_ENTRIES'] = $GB_ENTRIES;
        return 
$TPL;
    }

}

?> 
Esta clase esta contenida como (include) en un archivo Index.php

Es decir Index.php incluye a gb.class.php que es la que esta arriba


Index.php

He recortado partes no necesarias del codigo dejando solo las que van a trabajar.

Código PHP:

if (IS_MODULE) {

    if (!
eregi("modules.php"$_SERVER['PHP_SELF'])) {
        die (
"You can't access this file directly...");
    }
    
$ModName basename(dirname__FILE__ ));

    
ob_start();
    include(
"header.php");

    
$GB_PG["base_url"] .= "/modules/$ModName";

    
$GB_SELF basename($_SERVER['PHP_SELF']);
    
$GB_PG["index"]    = "$GB_SELF?op=modload&name=$ModName&file=index";
    
$GB_PG["admin"]    = "$GB_SELF?op=modload&name=$ModName&file=index&agbook=admin";
    
$GB_PG["comment"]  = "$GB_SELF?op=modload&name=$ModName&file=index&agbook=comment";
    
$GB_PG["addentry"] = "$GB_SELF?op=modload&name=$ModName&file=index&agbook=addentry";

    if (!isset(
$agbook)) {
        
$agbook '';
    }

    switch (
$agbook) {

                case 
"addentry":
            include_once 
$include_path."/lib/vars.class.php";
            include_once 
$include_path."/lib/add.class.php";
            include_once 
$include_path."/lib/phrase.class.php";
            
$gb_post = new addentry($include_path);
            if (isset(
$_POST["gb_action"])) {
                
                
                
$gb_post->type = (isset($_POST["gb_type"])) ? $_POST["gb_type"] : '';
                
$gb_post->name = (isset($_POST["gb_name"])) ? $_POST["gb_name"] : '';
                
$gb_post->email = (isset($_POST["gb_email"])) ? $_POST["gb_email"] : '';
                
$gb_post->url = (isset($_POST["gb_url"])) ? $_POST["gb_url"] : '';
                
$gb_post->comment = (isset($_POST["gb_comment"])) ? $_POST["gb_comment"] : '';
                
$gb_post->location = (isset($_POST["gb_location"])) ? $_POST["gb_location"] : '';
                
$gb_post->icq = (isset($_POST["gb_icq"])) ? $_POST["gb_icq"] : 0;
                
$gb_post->aim = (isset($_POST["gb_aim"])) ? $_POST["gb_aim"] : '';
                
$gb_post->gender = (isset($_POST["gb_gender"])) ? $_POST["gb_gender"] : '';
                
$gb_post->userfile = (isset($_FILES["userfile"]["tmp_name"]) && $_FILES["userfile"]["tmp_name"] != "") ? $_FILES '';
                
$gb_post->user_img = (isset($_POST["gb_user_img"])) ? $_POST["gb_user_img"] : '';
                
$gb_post->preview = (isset($_POST["gb_preview"])) ? 0;
                
$gb_post->private = (isset($_POST["gb_private"])) ? 0;
                
$gb_post->token = (isset($_POST["gb_token"])) ? $_POST["gb_token"] : '';
                
$gb_post->gb_captcha = (isset($_POST["gb_captcha"])) ? $_POST["gb_captcha"] : '';
                echo 
$gb_post->process($_POST["gb_action"]);
            } else {
                echo 
$gb_post->process();
            }
            
$gb_post->db->close_db();
            break;

        default:
            
            include_once 
$include_path."/lib/vars.class.php";
            include_once 
$include_path."/lib/gb.class.php";
            
$gb = new guestbook($include_path);
            
$entry = (isset($_GET["entry"])) ? $_GET["entry"] : 0;
            
$entry = (isset($_POST["entry"])) ? $_POST["entry"] : $entry;
            
            
            
            
            echo 
$gb->show_entries(intval($entry));
            
$gb->db->close_db();
    }
    
ob_end_flush();
    
$base_path dirname(dirname($include_path));
    
chdir("$base_path");
    include(
"$base_path/footer.php");

} else {
    include_once 
$include_path."/lib/vars.class.php";
    include_once 
$include_path."/lib/gb.class.php";
    
$gb = new guestbook($include_path);
    
$entry = (isset($_GET["entry"])) ? $_GET["entry"] : 0;
    
$entry = (isset($_POST["entry"])) ? $_POST["entry"] : $entry;
    
            
            
    echo 
$gb->show_entries(intval($entry));
    
}
?> 
aqui esta mi formulario desde donde propago la variable $valor.

Código HTML:
//y este es mi formulario

<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Documento sin t&iacute;tulo</title>
</head>

<body>
<p>Select Type </p>
<form id="form1" name="form1" method="post" action="index.php">
  <label>
  <select name="valor" size="1" id="valor">
    <option value="false">Please Select</option>
    <option value="0">0</option>
    <option value="2">2</option>
  </select>
  </label>
  <p>
    <label>
    <input type="submit" name="Submit" value="Enviar" />
    </label>
  </p>
</form>
<p>&nbsp;</p>
</body>
</html> 
Alguien me puede decir que estoy haciendo mal? porque el valor de esa variable no se esta propagando bien...

Muchas gracias

A. Acosta