Foros del Web » Programando para Internet » PHP »

problema con clases y funciones

Estas en el tema de problema con clases y funciones en el foro de PHP en Foros del Web. Hola a todos, veran tengo una clase que supuestamente te genera los logs del usuario y los logs de los errores, esta hecho por mi. ...
  #1 (permalink)  
Antiguo 13/02/2012, 21:28
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Pregunta problema con clases y funciones

Hola a todos, veran tengo una clase que supuestamente te genera los logs del usuario y los logs de los errores, esta hecho por mi.

pero no me funciona me funciona sin clase y sin funcion.

me gustaria saber que es lo que estoy haciendo mal y si me podriais ayudar.
Gracias.

Código PHP:
<?php
/*
    UserCake Version: 1.4
    http://usercake.com
    
    Developed by: Adam Davis
*/
class NotifyLogs {
    
    
//UserCake check host, port and url access
    
function takeURL(){
    
$url="http://".$_SERVER["HTTP_HOST"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
    return 
$url;
    }

    
//UserCake check debug mode and maintenance is true or false
    
function LogError() {
    if (
$debug_mode === true) {
        
$sendfinaldate base64_encode($finaldate);
        if((
strpos($_SERVER['REMOTE_ADDR'], $adminIP) === 0)) {    } 
        else { if(
is_file("maintenance.php")) { header("Location: maintenance.php?FinalDate=$sendfinaldate"); die(); } }
        
error_reporting(-1);
        
ini_set("display_errors","On");
        
ini_set("error_log",$logfiles_dir."error-$today.log");
        
$myFile $logfiles_dir."usercake-$today.log";
        
$fh fopen($myFile"a");
        
$configa "config"
        
$pageuser takeURL();
        
$ipuser $_SERVER["REMOTE_ADDR"];
        
$datelog date("D M j G:i:s T Y");
        
$stringData "userCake Notice: [ $ipuser ] --> [ Anonymous ] -->  [$datelog] -->  [ $pageuser ] \n";
            
fwrite($fh$stringData);
            
fclose($fh);
        }
    
//UserCake check debug mode and maintenance is true or false
    
if ($debug_mode === false) { 
        
error_reporting(0);
        
$myFile $logfiles_dir."usercake-$today.log";
        
$fh fopen($myFile"a");
        
$configa "config"
        
$pageuser takeURL();
        
$ipuser $_SERVER["REMOTE_ADDR"];
        
$datelog date("D M j G:i:s T Y");
        
$stringData "userCake Notice: [ $ipuser ] --> [ Anonymous ] -->  [$datelog] -->  [ $pageuser ] \n";
            
fwrite($fh$stringData);
            
fclose($fh); 
        }    
    }
}
?>
y al llamarlo

Código PHP:
    $createlog = new NotifyLogs();
    
$createlog->LogError();
    
NotifyLogs::LogError(); 
Porfavor una ayuda, gracias de antemano
  #2 (permalink)  
Antiguo 13/02/2012, 22:05
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con clases y funciones

Los métodos de una clase no se ejecutan de la misma forma que las funciones.

Si te das cuenta, dentro de tu método LogError() estás llamando al método takeURL() como si fuera una función fuera de la clase y no como un método de la clase.

Ese es el error, te sugiero leer una manual para comprender las diferencias.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 13/02/2012, 22:19
Avatar de ahaugas  
Fecha de Ingreso: agosto-2011
Ubicación: Madrid
Mensajes: 249
Antigüedad: 12 años, 8 meses
Puntos: 21
Respuesta: problema con clases y funciones

ok pero como haria una funcion de esto?:

Código PHP:
Ver original
  1. //UserCake check debug mode and maintenance is true or false
  2.     if ($debug_mode === false) {  
  3.         error_reporting(0);
  4.         $myFile = $logfiles_dir."usercake-$today.log";
  5.         $fh = fopen($myFile, "a");
  6.         $configa = "config";  
  7.         $pageuser = takeURL();
  8.         $ipuser = $_SERVER["REMOTE_ADDR"];
  9.         $datelog = date("D M j G:i:s T Y");
  10.         $stringData = "userCake Notice: [ $ipuser ] --> [ Anonymous ] -->  [$datelog] -->  [ $pageuser ] \n";
  11.             fwrite($fh, $stringData);
  12.             fclose($fh);  
  13.         }
  #4 (permalink)  
Antiguo 13/02/2012, 22:26
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: problema con clases y funciones

Mira, yo no voy a corregir tu código, te sugiero consultar un manual.

Las funciones se llaman tal cual, sin embargo los métodos no, y se pueden llamar de varias formas dependiendo que como estén declarados.

Código PHP:
$foo = new Bar;
$foo->fandy();

Other::method(); 
Si no sabes lo que hace tu clase es mejor que estudies, de verdad, vale la pena.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: clases, funciones, 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 10:30.