Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/07/2006, 14:09
Kailea
 
Fecha de Ingreso: marzo-2004
Ubicación: Sureste
Mensajes: 186
Antigüedad: 20 años, 1 mes
Puntos: 0
Problema pasando variables por formulario

Hola again (a este paso voy a tema por día qué depresión...)!

Creo que hay fantasma en mi PC porque lo que funcionaba ayer, hoy al iniciar PC y comprobarlo ya no funciona y es desesperante porque no encuentro el error. (¿es esto posible?)

Veamos, tengo un formulario corriente y moliente en este archivo:

Código PHP:
<?php
require_once '../includes/conn.php';
include(
'header.php');
include(
'funciones.php');

$titulo '';
$cuerpo '';
$article '';
$autorid '';

if (isset(
$_GET['a']) 
    and 
$_GET['a'] == 'editar' 
    
and isset($_GET['article']) 
    and 
$_GET['article']) 
    
    {
    
$sql "SELECT titulo,cuerpo,autor_id FROM not_main WHERE not_id='" $_GET['article']."'";

    
$result mysql_query($sql,$conn)
        or die(
'No se pueden obtener los datos del artículo; ' mysql_error());

    
$row mysql_fetch_array($result);
    
$titulo $row['titulo'];
    
$cuerpo $row['cuerpo'];
    
$article $_GET['article'];
    
$autorid $row['autor_id'];
    }
    
    require_once 
'header.php';
?>



<form action="transact-article.php" method="post" >
<h2>Escribir documento</h2>
<p>Titulo:</p>
<p><input type="text" class="titulo" name="titulo" size="93" maxlength="500" value="<?php echo htmlspecialchars($titulo); ?>" /></p>
<p>Texto:</p>
<p><textarea class="cuerpo" name="cuerpo" rows="20" cols="70"><?php echo htmlspecialchars($cuerpo); ?></textarea></p>
<br />
<h4>Seleccione una categoría:</h4>
<br />
<p><a href="includes/cat.php">Crear una nueva categoría principal</a></p>
<p><a href="includes/subcat.php">Crear una nueva subcategoría</a></p>
<br />

<br />
<p>
<?php

echo '<input type="hidden" name="article" value="' $article "\" />\n";
    if (
$_SESSION['access_lvl'] < 2) {
        echo 
'<input type="hidden" name="autorid" value="' $row['autor_id'] . "\" />\n";
    }
    if (isset(
$_GET['article'])) {
        echo 
'<input type="submit" class="submit" name="action" ' "value=\"Guardar los cambios\" />\n";
    } else {
        echo 
'<input type="submit" class="submit" name="action" ' "value=\"Enviar\" />\n";
    }
?>
</p>

</form>

<?php require_once 'footer.php'?>
Y el archivo transact-article.php es este (abreviado porque es largo):

Código PHP:
<?php
    session_start
();
    require_once 
'../includes/conn.php';
    require_once 
'http.php';

    if (isset(
$_POST['action'])) {
        switch (
$_POST['action']) {
            case 
'Enviar':
                if (isset(
$_POST['titulo']) and isset($_POST['cuerpo'])    and isset($_SESSION['autor_id']))                 {
                
$sql "INSERT INTO not_main (titulo,autor_id,cuerpo,fecha_envio)  VALUES ('".$_POST['titulo']."','".$_SESSION['autor_id']."','".$_POST['cuerpo']."', NOW())";

                
mysql_query($sql$conn) or die('No se puede enviar el artículo; ' mysql_error());
                }
                
redirect('index.php');
                break;

            case 
'Editar':
                
redirect('compose.php?a=editar&article=' $_POST['article']);
                break;
(...)
El problema está en que no realiza la consulta a la base de datos y creo que está bien redactada y estoy al borde del ataque! Si quito el redirect y espero el mysql_error() no me da ningún tipo de error. Lo que hice fue sustituir el redirect por un else que dijera algo por un echo en caso de que no se ejecutara el if. Así que pienso que los valores no están pasando correctamente al archivo transact-article.php y no sé por qué. Si es justo como estaba ayer y funcionaba

Gracias y saludos