ayuda leer variables con POST/GET/REQUEST

Iniciado por soru13, 13 Febrero 2012, 18:31 PM

0 Miembros y 1 Visitante están viendo este tema.

soru13

hola, tengo el siguiente código:

Código (php) [Seleccionar]

<?php
$menu 
$_GET['menu'];
//escribe los menus con letras
if ($menu == "1"){
$letra "izquierdo";
}else{
if ($menu == "2"){
$letra "central";
}else{
if ($menu == "3"){
$letra "derecho";
}}}
?>

<?php
//variables SQL para los distintos idiomas
$lang $_GET['lang'];
if (
$lang == "es"){
$select "id,texto_es,titulo_es";
$texto "texto_es";
$titulo "titulo_es";
}
if (
$lang == "en"){
$select "id,texto_en,titulo_en";
$texto "texto_en";
$titulo "titulo_en";
}
if (
$lang == "po"){
$select "id,texto_po,titulo_po";
$texto "texto_po";
$titulo "titulo_po";
}

?>

<div class="form"><br>
<h2 align="center">Edici&oacute;n del men&uacute; <?php echo $letra?></h2>
   <?php echo '<form action="./principal/procesar.php?menu='.$menu.'&lang='.$lang.'&" method="post" class="niceform">' ?>
    <ul>
      <table width="100%" border="0">
        <tr>
          <td><li><b>Idioma:</b></li></td>
          <td>
          <?php
   echo '<select>';
   if ($lang == "es"){
   echo '<option selected onclick=location.href="pprincipal.php?menu='.$menu.'&lang=es">Español';
   }else{
   echo '<option onclick=location.href="pprincipal.php?menu='.$menu.'&lang=es">Español';
   }
   if ($lang == "en"){
   echo '<option selected onclick="location.href=pprincipal.php?menu='.$menu.'&lang=en">Inglés';
   }else{
   echo '<option onclick=location.href="pprincipal.php?menu='.$menu.'&lang=en">Inglés';
   }
   if ($lang == "po"){
   echo '<option selected onclick=location.href="pprincipal.php?menu='.$menu.'&lang=po">Polaco';
   }else{
   echo '<option onclick=location.href="pprincipal.php?menu='.$menu.'&lang=po">Polaco';
   }
   echo '</select>';
   ?>

          </td>
        </tr>
        <tr>
          <td width="16%"><li><b>Imagen:</b></li></td>
          <td width="84%"><input type="text" size="54" name="img"
          value="<?php
 include(
"../config.php");
$conectar mysql_connect($dbhost,$dbuser,$dbpass) ; 
mysql_select_db($db,$conectar) or die(mysql_error());
$sql "SELECT id,img FROM principal WHERE id='$menu'";
$squery mysql_query($sql);
while($row mysql_fetch_array($squery)){ 
echo $row['img'];

 ?>
" /></td>
        </tr>
        <tr>
          <td><li><b>T&iacute;tulo:</b></li></td>
          <td><input type="text" size="54" name="titulo" value="<?php
 include(
"../config.php");
$conectar mysql_connect($dbhost,$dbuser,$dbpass) ; 
mysql_select_db($db,$conectar) or die(mysql_error());
$sql "SELECT $select FROM principal WHERE id='$menu'";
$squery mysql_query($sql);
while($row mysql_fetch_array($squery)){ 
echo $row[$titulo];

 ?>
" /></td>
        </tr>
        <tr>
          <td><li><b>Descripci&oacute;n:</b></li></td>
          <td><textarea name="texto" cols="54" rows="10"><?php
 include(
"../config.php");
$conectar mysql_connect($dbhost,$dbuser,$dbpass) ; 
mysql_select_db($db,$conectar) or die(mysql_error());
$sql "SELECT $select FROM principal WHERE id='$menu'";
$squery mysql_query($sql);
while($row mysql_fetch_array($squery)){ 
echo $row[$texto];

 ?>
</textarea></td>
        </tr>
        <tr>
          <td colspan="2" align="center"><br /><input type="submit" value="Modificar" name="submit" /></td>
          </tr>
      </table>
      </ul>
      </form>
</div>


y este es el archivo que lo procesa:

Código (php) [Seleccionar]

<?php

?>

<?php
include(
"../../config.php");
//variables
$id $_REQUEST['id'];
$lang $_REQUEST['lang'];
$img=$_REQUEST['img'];
$titulo=$_REQUEST['titulo']; 
$texto=  $_REQUEST['texto']; 
//conectar a la BD
$con mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($db$con);
mysql_query("UPDATE principal SET img = '$img', titulo_es = '$titulo', texto_es = '$texto'  WHERE id = '$id'");
mysql_close($con);
echo 'Los datos se han guardado correctamente.';
echo $id;
echo "<br>";
echo $titulo;
echo "<br>";
echo $texto;
echo "<br>";
echo $lang;
?>



el problema lo tengo al procesarlo, ya que solo me coge y muestra la variables $texto y $titulo, pero necesito que también me lea las variables de la url de la página anterior

?menu=1&lang=es

que supuestamente lo hace aqui

$id = $_REQUEST['id'];
$lang = $_REQUEST['lang'];


pero no me las muestra, y si no consigo obtener el valor de esas 2 variable, no puedo continuar.

¿Alguien sabe donde está el problema y como podría solucionarlo?

Gracias y un saludo!

dark_sargon

La verdad no veo cual es error, debes fijarte en las URL a ver qué está pasando. Pero podrías usar POST para enviar esos valores. Dentro del formulario haces los dos input ocultos:

Código (php) [Seleccionar]

<form>
...
   <input type="hidden" name="lang" value="<?php echo $lang?>">
   <input type="hidden" name="menu" value="<?php echo $menu?>">
...
</form>
http://www.actimediaonline.com
Diseño Web, animación y más.

http://www.ciudadoscura.com
Diseño Web, electrónica, programación, móviles y más.

soru13

gracias amigo, llegué a la conclusión de usar un <input> como tu decias, pero mi fallo fue que lo hacia oculto con CSS y no con type="hidden". Ya me funciona correctamente.

Gracias, y un saludo!.