hola, tengo el siguiente código:
<?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ón del menú <?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");
$sql = "SELECT id,img FROM principal WHERE id='$menu'";
echo $row['img'];
}
?>" /></td>
</tr>
<tr>
<td><li><b>Título:</b></li></td>
<td><input type="text" size="54" name="titulo" value="<?php
include("../config.php");
$sql = "SELECT $select FROM principal WHERE id='$menu'";
echo $row[$titulo];
}
?>" /></td>
</tr>
<tr>
<td><li><b>Descripción:</b></li></td>
<td><textarea name="texto" cols="54" rows="10"><?php
include("../config.php");
$sql = "SELECT $select FROM principal WHERE id='$menu'";
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:
<?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
mysql_query("UPDATE principal SET img = '$img', titulo_es = '$titulo', texto_es = '$texto' WHERE id = '$id'"); 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
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!
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:
<form>
...
<input type="hidden" name="lang" value="<?php echo $lang; ?>">
<input type="hidden" name="menu" value="<?php echo $menu; ?>">
...
</form>