Foros del Web » Programando para Internet » PHP »

Hacer variables para guardar en la base de datos

Estas en el tema de Hacer variables para guardar en la base de datos en el foro de PHP en Foros del Web. Hola a todos nuevamente, les comento que tengo una duda, hace unos dias baje este script de php.net; esta funcion como veran funciona y muy ...
  #1 (permalink)  
Antiguo 09/12/2011, 06:57
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Pregunta Hacer variables para guardar en la base de datos

Hola a todos nuevamente, les comento que tengo una duda, hace unos dias baje este script de php.net; esta funcion como veran funciona y muy bien, el problema es que nose como hacer o como separar las variables para guardarlas en la db ya que solo me interesa guardar el buscador y el sistema operativo.

Espero me ayuden y gracias

Ahi va el script

Código PHP:
<?php
function getBrowser()
{
    
$u_agent     $_SERVER['HTTP_USER_AGENT'];
    
$bname         'Unknown';
    
$platform     'Unknown';
    
$version    "";

    
// En primer lugar obtener la plataforma.
    
if (preg_match('/linux/i'$u_agent)) {
        
$platform 'linux';
    }
    elseif (
preg_match('/macintosh|mac os x/i'$u_agent)) {
        
$platform 'mac';
    }
    elseif (
preg_match('/windows|win32/i'$u_agent)) {
        
$platform 'windows';
    }
   
    
// Siguiente obtener el nombre del agente de usuario por separado.
    
    
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Internet Explorer';
        
$ub "MSIE";
    }
    elseif(
preg_match('/Firefox/i',$u_agent))
    {
        
$bname 'Mozilla Firefox';
        
$ub "Firefox";
    }
    elseif(
preg_match('/Chrome/i',$u_agent))
    {
        
$bname 'Google Chrome';
        
$ub "Chrome";
    }
    elseif(
preg_match('/Safari/i',$u_agent))
    {
        
$bname 'Apple Safari';
        
$ub "Safari";
    }
    elseif(
preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Opera';
        
$ub "Opera";
    }
    elseif(
preg_match('/Netscape/i',$u_agent))
    {
        
$bname 'Netscape';
        
$ub "Netscape";
    }
   
    
// Finalmente obtener el número de versión correcto.
    
$known = array('Version'$ub'other');
    
$pattern '#(?<browser>' join('|'$known) .
    
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!
preg_match_all($pattern$u_agent$matches)) {
        
// No tenemos el número correspondiente sólo seguir
    
}
   
    
// see how many we have
    
$i count($matches['browser']);
    if (
$i != 1) {
        
//we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            
$version$matches['version'][0];
        }
        else {
            
$version$matches['version'][1];
        }
    }
    else {
        
$version$matches['version'][0];
    }
   
    
// check if we have a number
    
if ($version==null || $version=="") {$version="?";}
   
    return array(
        
'userAgent' => $u_agent,
        
'name'      => $bname,
        
'version'   => $version,
        
'platform'  => $platform,
        
'pattern'   => $pattern
    
);
}

// now try it
$ua=getBrowser();
$yourbrowser"Your browser: " $ua['name'] . " " $ua['version'] . " on " .$ua['platform'] . " <br><br>Reports: " $ua['userAgent'];
echo 
$yourbrowser;
?>
__________________
Zreep
  #2 (permalink)  
Antiguo 09/12/2011, 07:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Hacer variables para guardar en la base de datos

la función te lo devuelve todo en un array, hasta tienes un ejemplo!!!!!

¿es muy difícil interpretar por encima la estructura del código?: vamos, que está más claro que el agua
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #3 (permalink)  
Antiguo 09/12/2011, 07:47
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

Tuenes razon... me obnubile... perdon... voy a hacerlo y terminarlo y te comento como me fue... Gracias
__________________
Zreep
  #4 (permalink)  
Antiguo 10/12/2011, 23:47
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

Bien, he tratado de hacerlo pero no ingresa nigun dato al servido...

lo que tengo es lo siguiente;

contador.php

Código PHP:
require('conexion.php');
require(
'prueba_2.php');


$ip         $_SERVER['REMOTE_ADDR'];
$fecha     date("d.m.Y");
$hora     date("H:i:s");
$horau     date("H");
$diau     date("d");
$aniou     date("Y");

$sql "SELECT aniou, diau, horau, ip ";
$sql.= "FROM contador WHERE aniou LIKE '$aniou' AND diau LIKE '$diau' AND horau LIKE '$horau' AND ip LIKE '$ip' ";
$es  mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error);

if(
mysql_num_rows($es)>0){
}

    else{
        
        
$sql "INSERT INTO contador (id, ip, fecha, hora, horau, diau, aniou, explorador, os) ";
        
$sql.= "VALUES ('','$ip','$fecha','$hora','$horau','$diau','$aniou','$bname','$platform')";
        
$es  mysql_query($sql$con) or die("Error al grabar un mensaje: ".mysql_error);
    }

$sql "SELECT * ";
$sql.= "FROM contador WHERE id ";
$es  mysql_query($sql$con) or die("Error al leer base de datos: ".mysql_error);

$visitas mysql_num_rows($es); 
donde tomo las variable de prueba_2.php (que es el scritp que esta debajo), que son; $bname y $platform y no funciona...

Código PHP:

function getBrowser()
{
    
$u_agent     $_SERVER['HTTP_USER_AGENT'];
    
$bname         'Unknown';
    
$platform     'Unknown';
    
$version    "";

    
// En primer lugar obtener la plataforma.
    
if (preg_match('/linux/i'$u_agent)) {
        
$platform 'linux';
    }
    elseif (
preg_match('/macintosh|mac os x/i'$u_agent)) {
        
$platform 'mac';
    }
    elseif (
preg_match('/windows|win32/i'$u_agent)) {
        
$platform 'windows';
    }
   
    
// Siguiente obtener el nombre del agente de usuario por separado.
    
    
if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Internet Explorer';
        
$ub "MSIE";
    }
    elseif(
preg_match('/Firefox/i',$u_agent))
    {
        
$bname 'Mozilla Firefox';
        
$ub "Firefox";
    }
    elseif(
preg_match('/Chrome/i',$u_agent))
    {
        
$bname 'Google Chrome';
        
$ub "Chrome";
    }
    elseif(
preg_match('/Safari/i',$u_agent))
    {
        
$bname 'Apple Safari';
        
$ub "Safari";
    }
    elseif(
preg_match('/Opera/i',$u_agent))
    {
        
$bname 'Opera';
        
$ub "Opera";
    }
    elseif(
preg_match('/Netscape/i',$u_agent))
    {
        
$bname 'Netscape';
        
$ub "Netscape";
    }
   
    
// Finalmente obtener el número de versión correcto.
    
$known = array('Version'$ub'other');
    
$pattern '#(?<browser>' join('|'$known) .
    
')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
    if (!
preg_match_all($pattern$u_agent$matches)) {
        
// No tenemos el número correspondiente sólo seguir
    
}
   
    
// see how many we have
    
$i count($matches['browser']);
    if (
$i != 1) {
        
//we will have two since we are not using 'other' argument yet
        //see if version is before or after the name
        
if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
            
$version$matches['version'][0];
        }
        else {
            
$version$matches['version'][1];
        }
    }
    else {
        
$version$matches['version'][0];
    }
   
    
// check if we have a number
    
if ($version==null || $version=="") {$version="?";}
   
    return array(
        
'userAgent' => $u_agent,
        
'name'      => $bname,
        
'version'   => $version,
        
'platform'  => $platform,
        
'pattern'   => $pattern
    
);
}

// now try it 
/*
$ua=getBrowser();
$yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " <br><br>Reports: " . $ua['userAgent'];
echo $yourbrowser;*/ 
alguien me podria decir que hago mal.... Gracias
__________________
Zreep
  #5 (permalink)  
Antiguo 11/12/2011, 04:02
Avatar de jorgelpadronb  
Fecha de Ingreso: agosto-2011
Ubicación: Cuba
Mensajes: 281
Antigüedad: 13 años, 3 meses
Puntos: 37
Respuesta: Hacer variables para guardar en la base de datos

Saludos.

La SQL del insert está mal, por eso no te inserta nada. Esta es tu SQL:

INSERT INTO contador (id, ip, fecha, hora, horau, diau, aniou, explorador, os)

Y debería ser:

"INSERT INTO contador (id, ip, fecha, hora, horau, diau, aniou, explorador, os) VALUES ('$id', '$ip', '$fecha', '$hora', '$horau', '$diau', '$aniou', '$explorador', '$os')"

Fíjate que se agrega una clausula VALUES donde declaras los valores a insertar en el mismo orden en que enumeras los campos antes de VALUES. De esta forma INSERT establece la relación campo-valor para insertar.

Como lo tenías le pasabas los campos pero no los valores a insertar en cada campo.

Saludos.
__________________
Los hombres pequeños, nunca se sienten pequeños; los hombres grandes, nunca se sienten grandes.

No sé quien fué el que dijo eso, pero está bueno.
  #6 (permalink)  
Antiguo 11/12/2011, 13:15
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

Gracias, pero tampoco resulto...y nose que puede ser...
__________________
Zreep
  #7 (permalink)  
Antiguo 11/12/2011, 14:21
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 3 meses
Puntos: 1532
Respuesta: Hacer variables para guardar en la base de datos

si posteas los errores es mas facil saber el origen del problema, si no te salen, coloca al principio del script:

error_reporting(E_ALL);

para así forzar su salida
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...
  #8 (permalink)  
Antiguo 11/12/2011, 15:27
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

No me tira ningun error e hice varios cambios pero tampoco ingresa los datos...

A ver si entiendo...en el final del script prueba_2.php hay un array que define el valos de las variables...tengo que tomarlas de ahi o no...

Código PHP:

return array(
        
'userAgent' => $u_agent,
        
'name'      => $bname,
        
'version'   => $version,
        
'platform'  => $platform,
        
'pattern'   => $pattern
    
); 
y cuando lo llamo desde el archivo countbdd.php, pienso que tengo que definir las variables como para poder insertarlas...puede ser...
__________________
Zreep
  #9 (permalink)  
Antiguo 17/12/2011, 22:50
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

Perdon que sigo con esto, pero no puedo solucionarlo... por favor alguien me puede dar una mano
__________________
Zreep
  #10 (permalink)  
Antiguo 08/04/2012, 20:06
Avatar de zreep  
Fecha de Ingreso: octubre-2009
Ubicación: Argentina
Mensajes: 534
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Hacer variables para guardar en la base de datos

Si si... ya termine... lo volvi a ver despues de un tiempo y entendi donde estaba lo que tenia que hacer... fue claro...

Lo que hice es usar la variable $explorador y llamar la funsion y darle el valor $ua['name'];
lo que me devuelve el nombre del explorador...

Perdon por la pregunta que habia hecho pero lo pude resolver despues de un tiempo... Gracias a todos
__________________
Zreep

Etiquetas: variables, usuarios
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 21:49.