Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/06/2004, 21:21
Appletalk
 
Fecha de Ingreso: febrero-2004
Mensajes: 221
Antigüedad: 20 años, 2 meses
Puntos: 0
Problema con clases

Registracion.php
Código:
<?
require('includes/setup.inc');

$smarty = new Smarty_PcDb;
$smarty->assign('template_dir', 'templates/default');

if($_GET['action'] == "failed") {
	$smarty->display('templates/default/regist/failed.tpl');
	}
	
else if($_GET['action'] == "new") {
	$smarty->display('templates/default/regist/new.tpl');
	}
	
else if($_GET['action'] == "forget") {
	$smarty->display('templates/default/regist/forget.tpl');
	}

else if($_GET['action'] == "save") {
	if(!empty($_POST['enviarReg'])) {
		$hayEmail = $pcdb_sql->query($db, "SELECT `email` FROM $db[prefix]_users WHERE `email` = '".$_POST['regEmail']."'", 4);
		if ($hayEmail[0] == $_POST['regEmail']) {
			class errors {
			function setError($id) {
				$smarty->assign('error_titulo','2');
			}
			}		
			$errors = new errors;
			$errors->setError(0);
			$smarty->display('templates/default/error.tpl');
		}
		else {
			$smarty->display('templates/default/regist/done.tpl');
			
			$pcdb_sql->query($db, "INSERT INTO $db[prefix]_users VALUES('','".$_POST['regUser']."','".$_POST['regPass']."',
			'".$_POST['regNombre']."','".$_POST['regDireccion']."','".$_POST['regCP']."','".$_POST['regCuit']."',
			'".$_POST['regTelefono']."','".$_POST['regEmail']."','".$_POST['regEmpresa']."','2000-11-15','0')", 0);
		}
	}
	
	else {
		$smarty->display('templates/default/index.tpl');
	}
}	

else if(empty($_GET['action'])) {
	$smarty->display('templates/default/index.tpl');
	}
	

?>
Setup.inc
Código:
<?
require('db.inc');
require('Smarty/Smarty.class.php');

$pcdb_sql->connect($db);

class Smarty_PcDb extends Smarty {
function Smarty_PcDb()
      {
	    // Constructor de la clase
          $this->Smarty();
          $this->template_dir = '/www/vhosts/myscene/smarty/tpl/';
          $this->compile_dir = '/www/vhosts/myscene/smarty/tpl_c/';
          $this->config_dir = '/www/vhosts/myscene/smarty/configs/';
          $this->cache_dir = '/www/vhosts/myscene/smarty/cache/';
          $this->assign('app_name','PcDb');
	}
}

?>

Paso a explicar:
Yo utilizo el sistema de templates Smarty. El error lo obtengo al tratar de hacer una clase que cuando alguien intenta registrarse, si por ejemplo el email ya existe, me facilite algunas cosas.

Código:
	class errors {
			function setError($id) {
				$smarty->assign('error_titulo','titulo lindo');
			}
			}
La clase es más larga, pero ahi sinteticé lo que me da error.
El error que obtengo es

[Sat Jun 26 21:11:04 2004] [error] PHP Fatal error: Call to a member function on a non-object in /www/vhosts/myscene/registracion.php on line 25

Si no usaron smarty no se preocupen, aca el error es mas conceptual, algo de las clases que estoy ignorando
Muchas gracias de antemano

Última edición por Appletalk; 26/06/2004 a las 21:30