problemas con acceder a las noticias(curso del blog)

15 views
Skip to first unread message

Eyter Higuera

unread,
Nov 25, 2013, 8:26:35 PM11/25/13
to programa...@googlegroups.com
hola buenas noches estoy siguiendo el curso del blog de jonathan y voy por el video 15, tengo un problema que cuando haga click a cualquier de las noticias me redirecciona al formulario pero no me muestra el titulo de la noticia, me aparece el siguiente error:

Notice: Undefined offset: 0 in C:\xampp\htdocs\blog\noticia.php on line 82

Notice: Undefined offset: 0 in C:\xampp\htdocs\blog\noticia.php on line 82
de de | Publicado por 
Notice: Undefined offset: 0 in C:\xampp\htdocs\blog\noticia.php on line 82

Notice: Undefined offset: 0 in C:\xampp\htdocs\blog\noticia.php on line 85

yo hice la prueba imprimiendo los datos  echo print_r($datos);exit; y me lo imprime, pero no se que sucede con esto realmente, tuve que copiar y pegar los archivos de jonathan para ver el error y me sigue dando el mismo error, si alguien me aclara esta duda se lo agradeceria. saludos

Jonathan Morales Salazar

unread,
Nov 25, 2013, 8:35:53 PM11/25/13
to programa...@googlegroups.com
Eyter comparta por favor el código donde está imprimiendo los datos para ver posibles errores.

Eyter Higuera

unread,
Nov 25, 2013, 8:52:59 PM11/25/13
to programa...@googlegroups.com

este es el archivo noticia.php


 <?php
    require_once("class/noticias.php");
    require_once("class/comentarios.php");
    $obj = new Principal();

    $objN = new Noticias();
   
    $url = "http://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];
   
    $cantNot = "5";    //Noticias por página

    $datos = $objN->noticiaPorId(!isset($_GET["id"]));
   
    //echo "<pre>";print_r($datos);exit;
   
    $obj1 = new Comentarios();
    $comentAct = $obj1->comentarioId(!isset($_GET["id"]));
   
    if (isset($_POST["enviar"]) and $_POST["enviar"]=="si") {
           //verifico el captcha
           include_once 'securimage/securimage.php';
           $securimage = new Securimage();
       
        if ($securimage->check($_POST['captcha_code']) == false) {
             // the code was incorrect
             // you should handle the error so that the form processor doesn't continue
            echo "El código ingresado es incorrecto. Por favor intente de nuevo.<br /><br />";
            echo "<a href='javascript:history.go(-1)'>Click aquí para regresar</a>";
            exit;
        }else{
            $obj1->insertarComentario();
        }
    }
   
?>

<!DOCTYPE html>
<html lang="es">
    <head>
        <title>Mi Blog Personal - <?php echo $datos[0]["titulo"]; ?></title>
        <meta charset="UTF-8">
        <script type="text/javascript" src="js/funciones.js" language="JavaScript"></script>
        <link href="css/estilos.css" type="text/css" rel="stylesheet" />
        <link href="images/favicon.png" rel="icon" type="image/vnd.microsoft.icon"/>
    </head>
    <body>
        <div id="wrapper">
            <header>
                <h1>Mi Blog</h1>
                <nav>
                    <ul>
                        <li>
                            <a href="<?php echo Principal::ruta(); ?>">
                                Home
                            </a>
                        </li>
                        <li>
                            <a href="<?php echo Principal::ruta(); ?>Videos-v0.html">
                                Video Tutoriales
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                Acerca
                            </a>
                        </li>
                        <li>
                            <a href="<?php echo Principal::ruta(); ?>contacto.php">
                                Contacto
                            </a>
                        </li>
                    </ul>
                </nav>
            </header>
            <div id="contenido">
                <div id="post">
                    <article>
                        <div class="tituloPost">
                            <h2><a href="#"><?php echo $datos[0]["titulo"]; ?></a></h2>
                        </div>
                        <div class="fecha">
                            <?php echo Principal::diaLetra($datos[0]["dia"]);?> <?php echo Principal::invierteFecha($datos[0]["fecha"]); ?> | Publicado por <span class="negrita"><?php echo $datos[0]["nombre"]; ?></span>
                        </div>
                        <div class="contenidoPost">
                            <?php echo $datos[0]["detalle"]; ?>
                        </div>
                        <div class="piePost">
                            <?php
                                $comentarios = $obj1->totalComentarios(!isset($_GET["id"]));
                            ?>
                            <a href="#"><?php echo $comentarios; ?> Comentarios</a>
                            <?php
                                if (!empty($datos[0]['descarga'])) {
                            ?>
                                    |
                                    <a href="<?php echo $datos[0]['descarga']; ?>">Descargar</a>
                            <?php
                                }
                            ?>
                        </div>
                    </article>
                    <div id="formulario">
                        <form name="Fcomentarios" method="post" action="">
                            Nombre<br>
                            <input type="text" name="nombre" id="nombre" /><br /><br>
                            Correo<br>
                            <input type="text" name="correo" id="correo" /><br><br>
                            Comentario<br>
                            <textarea name="comentario" id="comentario" cols="30" rows="10"></textarea>
                            <input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
                            <input type="hidden" name="url" value="<?php echo $url; ?>">
                            <input type="hidden" name="enviar" value="si" />
                           
                            <br><br>
                            <img id="captcha" src="securimage/securimage_show.php" alt="CAPTCHA Image" />
                            <br />
                            <a href="#" onclick="document.getElementById('captcha').src = 'securimage/securimage_show.php?' + Math.random(); return false">[ Cambiar Imagen ]</a>
                            <br /><br />
                            <label for="captcha_code">Digite el texto de la imagen anterior <span class="obligatorio">*</span></label>
                            <br />
                            <input type="text" name="captcha_code" size="10" maxlength="6" required />
                            <br /><br />
                            <div id="error"></div>
                            <input type="button" name="comentar" value="comentar" onclick="validaComentario();" />
                        </form>
                    </div>
                    <div id="actual">
                        <h3><?php echo $comentarios; ?> Comentarios</h3>
                        <ul>
                        <?php
                            foreach ($comentAct as $key) {
                        ?>
                            <li>
                                <span class="negrita"><?php echo $key["nombre"]; ?></span>
                                ,
                                <?php
                                    echo Principal::invierteFecha($key["fecha"]);
                                    echo " (".$key["hora"].")";
                                ?>
                               
                                <br>
                                <?php echo $key["comentario"]; ?><br>
                            </li>
                        <?php   
                            }
                        ?>
                        <ul>
                    </div>
                    <div id="compartir"><?php include 'compartir.php'; ?></div>
                    <!-- ******************************************************** -->
                </div>    <!-- Fin #post -->
                <div id="sidebar">
                    <?php include 'sidebar.php'; ?>
                </div>    <!-- Fin #sidebar -->
            </div>    <!-- Fin #contenido -->
            <?php include 'footer.php'; ?>
        </div>    <!-- Fin #wrapper -->
    </body>
</html>

Jonathan Morales Salazar

unread,
Nov 25, 2013, 9:04:13 PM11/25/13
to programa...@googlegroups.com
esta línea:

$datos = $objN->noticiaPorId(!isset($_
GET["id"]));

el isset es para verificar que exista un valor, me queda la duda de cómo lo está usando, debería simplemente pasar el id:

$datos = $objN->noticiaPorId($_GET["id"]);

en el método haría una validación más o menos así:

if ( isset($_GET["id"]) ) {
     // llamo al método
}

Eyter Higuera

unread,
Nov 25, 2013, 9:14:00 PM11/25/13
to programa...@googlegroups.com
gracias jonathan, ya resolvi el problema, lo que sucede es que al imprimir el archivo noticia.php me dice que el "id" no està definido entonces yo le ponia un isset y me quitaba esa error entonces al yo clisear las noticias para luego enviar un comentario entonces no me redireccionaba la noticia seleccionada, ahora no se si no importa que el "id" no esté definida, entonces es normal que daba ese error ya que no lo pasaba el id por el url sino que imprimia directo noticia.php. saludos


El martes, 26 de noviembre de 2013 02:26:35 UTC+1, Eyter Higuera escribió:
Reply all
Reply to author
Forward
0 new messages