1. ¡OFERTA! con cupón "DIRVPS": hosting por $0,01 y también VPS Linux y Windows por $0,01 el primer mes por Interserver ← publi
    Descartar aviso
Descartar aviso
Al usar este sitio web, aceptas que nosotros y nuestros socios podamos establecer cookies para fines tales como personalizar el contenido y la publicidad. Más información.

pequeño problemilla con sistema de valoración en PHP

Tema en 'Programación y Diseño Web' iniciado por luis14al, 21 Sep 2007.

  1. luis14al

    luis14al Nuevo usuario

    Weno, aqui voy y espero que me ayuden, resulta que tengo un sistema de valoración muy simpático en PHP y MySQL, pero lo que pasa es que cuando le doy al botón para votar el artículo, me lanza este error:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1-->Warning: Cannot modify header information - headers already sent by (output started at D:\Web\Web\Videos\index.php:11) in D:\Web\Web\Videos\portada.php on line 36<!--c2--></div><!--ec2-->

    pero al actualizar la página de donde proviene el formulario para la votación, el voto que hize anteriormete y el cual me dio un error, se cuenta como voto valido. Ahora, lo que quiero es sabes como puedo solucionar este error, para q en vez de que me salga, puess solo se actualize la página y se vea el voto.

    Este es el código:

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1--><?php
    #####CONEXIÓN A MYSQL
    @mysql_connect('localhost','root','luis123...')or die ('Ha fallado la conexión: '.mysql_error());
    @mysql_select_db('luisdb')or die ('Error al seleccionar la BD: '.mysql_error());
    ////end conexión
    $SSQL_=mysql_query("SELECT * FROM valoraciones WHERE id_noticia='".$_GET[id]."'")or die(mysql_error());
    $array_d=mysql_fetch_array($SSQL_);
    $valoracioN_total=@round($array_d[ptos]/$array_d[num_votos],2);

    if(isset($_POST[valor])){
    &nbsp;&nbsp; if(mysql_num_rows($SSQL_)==0){
    &nbsp;&nbsp; @mysql_query("INSERT INTO valoraciones VALUES('".$_GET[id]."','1','".$_POST[valor]."')")or die ('ERROR AL INSERTAR REGISTRO: '.mysql_error());
    &nbsp;&nbsp; }else{
    &nbsp;&nbsp; @mysql_query("UPDATE valoraciones SET num_votos=num_votos+1,ptos=ptos+".$_POST[valor]." WHERE id_noticia='".$_GET[id]."'")or die ('ERROR AL MODIFICAR REGISTRO: '.mysql_error());
    &nbsp;&nbsp; }
    &nbsp;&nbsp;header('Location:'.$REQUEST_URI);&nbsp;&nbsp;&nbsp;&nbsp; #####-------LINEA 36 DEL ERROR
    &nbsp;&nbsp; exit;
    }

    echo '<strong>Valoración Media : '.$valoracioN_total.'</strong> <div style="background-color:#EFEFEF; width:50px"><img width="'.($valoracioN_total*5).'" height="6" style="background-color: #000099"></div> <br>Total de votos: '.$array_d[num_votos];

    ?><hr>
    <form action="<?php echo $REQUEST_URI; ?>" method="post">
    Nueva valoración:
    <select name="valor" id="valor">
    <?php for ($i=1; $i<=10; $i++) echo '<option value="'.$i.'">'.$i.'</option>';?>
    </select>
    <input type="submit" value="Votar por este artículo">
    </form><!--c2--></div><!--ec2-->

    y tengo una página llamada index.php en la que hay un include (<b><?php include("portada.php"); ?></b>) y en esta página llamada portada, se encuentra el sistema de valoraión.

    Gracias.
     
  2.  
  3. elQuique

    elQuique Usuario activo

    El problema esta en lo que te dice el error :p, nunca puedes imprimir nada antes de un header()
     
  4. luis14al

    luis14al Nuevo usuario

    la verdad es que no entiendo, me lo podrias explicar por favor?, o como solucionar este problema, la verdad es que me ayudarias mucho?...

    Gracias.
     
  5. marcus aurelio

    marcus aurelio Nuevo usuario

    lo que quique esta diciendo.. es que nunca podes imprimir algo en pantalla antes de un header

    el header es...

    header('Location:'.$REQUEST_URI);

    y como vos tenes el index.php con el include (portada)... puede ser que en portada no estes imprimiendo nada pero si en index...

    seia algo como esto..

    index.php

    <!--c1--><div class='codetop'>CÓDIGO</div><div class='codemain'><!--ec1--><html>
    <body>
    <p>hola</p>
    <?php include('PORTADA.PHP');?>
    </body>
    </html>
    <!--c2--></div><!--ec2-->

    de esta forma estas imprimiendo en pagina la palabra hola... antes que el header... entonces el header te da error .... estate atento a eso... saludos
     


Alojamiento web, Hosting Reseller, Servidores Dedicados - All in Hosting


    
    
    
    
Blog · Sitios amigos: GuiaHosting · Unidominios · Interalta ·