Foros del Web » Programando para Internet » PHP »

haber que les parece!!!

Estas en el tema de haber que les parece!!! en el foro de PHP en Foros del Web. bueno gracias ala ayuda de cluster y oktubre he logrado hacer un script, este script lo que hace es que el usuario al ingresar a ...
  #1 (permalink)  
Antiguo 22/01/2004, 15:45
 
Fecha de Ingreso: julio-2003
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
Mensaje haber que les parece!!!

bueno gracias ala ayuda de cluster y oktubre he logrado hacer un script, este script lo que hace es que el usuario al ingresar a una pagina (contador.php) esta pagina tiene diferentes funciones una guarda en la base de datos un numero sl iniciar el script lo que hace es consultar ese numero y sumarle 1 a dicho numero.

la otra funcion es de llegar a x numero de visitas, la pagina es redireccionada a otra pagina llamada "caduco.htm".

ademas de eso la pagina verifica con cookie si el usuario ah ingresa a la pagina contador.php si es asi lo redirecciona a otra pagina llama "yaentraste.htm" este cookie tiene 2 dias de vida.

Ahora les pongo los codigo del script y la base de datos

Cita:
#
# Estructura de tabla para la tabla `pro_series`
#
#

CREATE TABLE `pro_series` (
`ID` int(11) NOT NULL default '0',
`SERIAL` int(11) NOT NULL default '0',
PRIMARY KEY (`ID`)
) TYPE=MyISAM;


config.php
Código PHP:
<?
$host
="localhost";  // nombre del host
$usuario="dmestb";   // usuario de mysql
$password="simbol5"// password de mysql
$database="dmestb_dmestb";  // nombre de la base de datos
?>




contador.php

Código PHP:
<html>
<head>
    <title>Contador PHP</title>
</head>

<body>
<?
// la parte de la conexion a datos
require("config.php");
 
 
$db mysql_connect($host$usuario,$password);
 
mysql_select_db($database,$db);
 
$result mysql_query("SELECT * FROM pro_series ORDER BY SERIAL desc");  // esto obtiene el numero del contador
 

$row mysql_fetch_row($result);
$serialdor $row[1] + 1;
 

 
$db mysql_connect($host$usuario,$password);
 
mysql_select_db($database,$db);
 
$sql "UPDATE pro_series SET SERIAL='$serialdor'WHERE ID ='0' "// esto lo que hace es actualizarlo
  
$result mysql_query($sql$db);
 

echo 
"Esta página ha sido visitada $serialdor veces";



if (
$serialdor >= 10){

 
header("location: caduco.htm");
exit;

} else {
?>
<?

}

?>
<?
// comienso a evaluar el número de mes para decir cual es el nombre
// preparar el texto del calendario actual
// el formato es :
// aca tomo la fecha del servidor para poder cargarla en las variables


$dia_muestro date("d");
$mes date("n");
$anio_muestrodate("Y");

$meses[1]="Enero";
$meses[2]="Febrero";
$meses[3]="Marzo";
$meses[4]="Abril";
$meses[5]="Mayo";
$meses[6]="Junio";
$meses[7]="Julio";
$meses[8]="Agosto";
$meses[9]="Septiembre";
$meses[10]="Octubre";
$meses[11]="Noviembre";
$meses[12]="Diciembre";
$fecha_visual "$dia_muestro de $meses[$mes] de $anio_muestro";
// con echo $fechavisual le mostraré la fecha al usuario ///

$fecha =date("d/mY | H:i:s");

setcookie("fecha",$fecha,time()+172800);// esta cookie dura 2 dias, tiene por nombre fecha y como valor la variable $fecha



if(isset($HTTP_COOKIE_VARS["fecha"]))//si la cookie existe

{

header("Location: yaentraste.htm"); 


}

else

{

echo 
"Es la primera ves que me visitas <BR>";
echo 
"$fecha_visual";


}

?>
</body>
</html>



bueno ahora lo que pasa que al momento de subirlo a mi server me da este error

Cita:
Esta página ha sido visitada 1 veces
Warning: Cannot modify header information - headers already sent by (output started at /home/prcombar/public_html/demo/contador.php:9) in /home/prcombar/public_html/demo/contador.php on line 72
Es la primera ves que me visitas
22 de Enero de 2004

porfavor ayudarme
  #2 (permalink)  
Antiguo 22/01/2004, 15:57
 
Fecha de Ingreso: julio-2003
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
bueno otra referencia es que solamente es problema de los cookies nada mas que eso.

hechenle una miradita a la linea 72 (setcookie("fecha",$fecha,time()+172800);// esta cookie dura 2 dias, tiene por nombre fecha y como valor la variable $fecha) desde ya muchas gracias
__________________
Combarbalavirtual.cl Primer Portal Dinamico de Combarbalá :cool:
  #3 (permalink)  
Antiguo 23/01/2004, 07:21
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
EL problema que tienes es de estructura de tu script ...

Al usar header() o setcookie() .. NO puedes enviar nada de HTML por encima de esas funciones. Se entiende como "html" no sólo al HTML .. sino a un simple espacio antes de tu primer <? ..o un salto de línea ..

En tu script tienes dos "condicones" que las gestionas con tu IF() ...

Si pasa una cosa .. redireccionas (con header()) o creas una cookie (con setcookie()) .. pero si pasa otra .. muestras un mensaje al navegador:

echo "Es la primera ves que me visitas <BR>";
echo "$fecha_visual";

No sé si conoces como funciona PHP .. pero funciona así (màs o menos):

PHP se ejecuta en el servidor .. bajo tu lógica y estructuras de control "compone" el HTML/salida al cliente (navegador) que uses .. Por ende .. cuando uno programa en PHP no puede programar como si programase en "HTML" con "incrustraciones" de PHP por médio ...

Lo que me refiero es a que pienses en que MOMENTO te hace falta ese HTML de <html><head> .. etc que comopone la página que ves en el navegador con el PHP que requiera y los respectivos tag de cieere HTML como el </body></html> ..

Bien, ese "momento" es en el que haces esos echo .. por eso mismo, ahí sólo necesitas ese HTML que tienes (según la lógica de proceso de tu script) por encima de las llamadas a header() o a setcookie().

Solución:

Código PHP:
} else {

// Aquí va tu HTML de <html><head> .. etc... <body>
echo "Es la primera ves que me visitas <BR>";
echo 
"$fecha_visual";
// y aquí el cierre del HTML... </body></html>


La idea como ves es "componer" tu página HTML cuando realmente se tenga que usar .. En los procesos "PHP" como el de acceso a tu Base de datos y demás NUNCA (por lo menos en ese punto y en tu caso particular) se muestra nada al navegador .. Es más .. o crea un cookie o no .. y luego se redirecciona .. lo cual al usar header() le dices al navegador que "cambie" la página que está biendo el cliente pero no le envias nada de HTML/javascript para hacer eso sino directamente sobre cabeceras HTTP.

(espero que todo este "rollo" te sirva como cultura general .. si tienes dudas sobre "teoría" preguntalas).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #4 (permalink)  
Antiguo 23/01/2004, 10:50
 
Fecha de Ingreso: julio-2003
Mensajes: 29
Antigüedad: 14 años, 5 meses
Puntos: 0
muchas gracias maestro cluster ya lo solucione y esta andando el sistema desde ya muchas gracias
__________________
Combarbalavirtual.cl Primer Portal Dinamico de Combarbalá :cool:
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:47.