Foros del Web » Programando para Internet » PHP »

Urgente ayuda con id

Estas en el tema de Urgente ayuda con id en el foro de PHP en Foros del Web. Estoy cargando un sitio en su server definitivo. El sitio es una tienda online en la que al estar registrado podran ir agregando cosas al ...
  #1 (permalink)  
Antiguo 04/11/2009, 15:44
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
Urgente ayuda con id

Estoy cargando un sitio en su server definitivo. El sitio es una tienda online en la que al estar registrado podran ir agregando cosas al carro.

El tema es el siguiente, probé crear un usuario, y navegué la web si nproblemas pero al intentar agregar un producto al carro me dice lo siguiente:

Código HTML:
Warning: Cannot modify header information - headers already sent by (output started at /home/rs000118/public_html/conexion.bd.sql.php:9) in /home/rs000118/public_html/agregacar.php on line 77
Mi archivo de conexion dice lo siguiente:

[PHP]<?php
//localhost
$host = "localhost";
$user = "MIUSUARIO";
$pass = "MICLAVE";
$bd = "rs000118_usuarios";
$conn = mysql_connect($host,$user,$pass) or die ("Error al establecer la conexion a la base de datos");
mysql_select_db($bd,$conn) or die("La base de datos seleccionada no existe en la base de la administracion");
?> /PHP]

y el archivo agregarcar.php dice:

Código PHP:
<?php 
session_start
();
if (isset(
$_SESSION["user"])){
if (
$_SESSION["user"] != ""){    
//error_reporting(E_ALL);
//@ini_set('display_errors', '1');
//con session_start() creamos la sesión si no existe o la retomamos si ya ha sido creada
extract($_REQUEST);
//la función extract toma las claves de una matriz asoiativa y las convierte en nombres de variable,
//asignándoles a esas variables valores iguales a los que tenía asociados en la matriz. Es decir, convierte a $_GET['id'] en $id,
//sin que tengamos que tomarnos el trabajo de escribir $id=$_GET['ID']; 
include('conexion.bd.sql.php');
//incluímos la conexión a nuestra base de datos
if(!isset($cantidad)){$cantidad=1;}
//Como también vamos a usar este archivo para actualizar las cantidades,
//hacemos que cuando la misma no esté indicada sea igual a 1
$qry=mysql_query("select * from peliculas where id_peli='".$id."'");
$row=mysql_fetch_array($qry);
//Si ya hemos introducido algún producto en el carro lo tendremos guardado temporalmente
//en el array superglobal $_SESSION['carro'], de manera que rescatamos los valores de dicho array
//y se los asignamos a la variable $carro, previa comprobación con isset de que $_SESSION['carro']
//ya haya sido definida
if(isset($_SESSION['carro']))
$carro=$_SESSION['carro'];
//Ahora introducimos el nuevo producto en la matriz $carro, utilizando como índice el id del producto
//en cuestión, encriptado con md5. Utilizamos md5 porque genera un valor alfanumérico que luego,
//cuando busquemos un producto en particular dentro de la matriz, no podrá ser confundido con la posición
//que ocupa dentro de dicha matriz, como podría ocurrir si fuera sólo numérico.
//Cabe aclarar que si el producto ya había sido agregado antes, los nuevos valores que le asignemos reemplazarán
//a los viejos. 
//Al mismo tiempo, y no porque sea estrictamente necesario sino a modo de ejemplo, guardamos más de un valor 
//en la variable $carro, valiéndonos de nuevo de la herramienta array.

//$carro[md5($id)]=array('identificador'=>md5($id),'cantidad'=>$cantidad,'titulo'=>$row['titulo'],'precio'=>$row['precio'],'id_peli'=>$id);

$carro[($id)]=array('identificador'=>($id),'cantidad'=>$cantidad,'titulo'=>$row['titulo'],'precio'=>$row['precio'],'id_peli'=>$id'sobre'=>'si');
//Ahora dentro de la sesión ($_SESSION['carro']) tenemos sólo los valores que teníamos (si es que teníamos alguno) antes de ingresar
//a esta página y en la variable $carro tenemos esos mismos valores más el que acabamos de sumar. De manera que 
//tenemos que actualizar (reemplazar) la variable de sesión por la variable $carro.
$_SESSION['carro']=$carro;
$cantsobre 0;
$cantcaja 0;
foreach(
$carro as $k => $v)
    {
       if (
$v['sobre'] == "si")
               {
            
$cantsobre $cantsobre $v['cantidad'];
            }
        else
            {
            
$cantcaja $cantcaja $v['cantidad'];
            }  
    }
$_SESSION['sobrecant'] = $cantsobre;
$_SESSION['cajacant'] = $cantcaja;
    
/*
$cant = $carro[($id)]['cantidad'];
if (isset($_SESSION['sobrecant']))
    {
    $_SESSION['sobrecant'] = $_SESSION['sobrecant'] + $cant;
    }
else
    {
    $_SESSION['sobrecant'] = $cant;
    } */
//Y volvemos a nuestro catálogo de artículos. La cadena SID representa al identificador de la sesión, que, dependiendo 
//de la configuración del servidor y de si el usuario tiene o no activadas las cookies puede no ser necesario pasarla por la url.
//Pero para que nuestro carro funcione, independientemente de esos factores, conviene escribirla siempre.
}else{
    echo 
"<script language='javascript'>alert('Debe registrarse para realizar la operacion')</script>";
    echo 
"<script language='javascript'>location.href='index.php'</script>";
}
}else{
    echo 
"<script language='javascript'>alert('Debe registrarse para realizar la operacion')</script>";
    echo 
"<script language='javascript'>location.href='index.php'</script>";
}
header("Location:vercarrito.php?".SID);
?>
QUE HAGO!!!!

Gracias!!!
  #2 (permalink)  
Antiguo 04/11/2009, 15:47
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Urgente ayuda con id

ob_start() // al inicio del doc.. bajo el tag <?php
ob_end_flush() // al final del doc sobre el tag ?>
  #3 (permalink)  
Antiguo 04/11/2009, 16:07
Avatar de oso96_2000  
Fecha de Ingreso: junio-2002
Ubicación: Distrito Federal
Mensajes: 558
Antigüedad: 22 años, 5 meses
Puntos: 35
Respuesta: Urgente ayuda con id

Aunque la solución de Hidek1 sirve, no es taaan correcta.

Seguramente tienes un espacio o linea en blanco al final de tu archivo de conexión a la BD, por eso te tira el error, porque no se puede imprimir nada (ni espacios o líneas en blanco) antes de mandar alguna cabecera.
__________________
Sin Ideas
  #4 (permalink)  
Antiguo 04/11/2009, 18:24
Avatar de jimadri  
Fecha de Ingreso: julio-2006
Ubicación: Buenos Aires
Mensajes: 487
Antigüedad: 18 años, 4 meses
Puntos: 1
Respuesta: Urgente ayuda con id

Cita:
Iniciado por oso96_2000 Ver Mensaje
Aunque la solución de Hidek1 sirve, no es taaan correcta.

Seguramente tienes un espacio o linea en blanco al final de tu archivo de conexión a la BD, por eso te tira el error, porque no se puede imprimir nada (ni espacios o líneas en blanco) antes de mandar alguna cabecera.
Era el espacio que existia al final del ultimo tag.

Desde ya muchas gracias gente. A veces son pavadas pero estar viendo linea tras linea todo el dia ya me tiene loco!!!


Abrazos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:30.