Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Estas en el tema de Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found en el foro de PHP en Foros del Web. Estoy haciendo un proyecto en PHP y lo estoy realizando con WampServer, el problema es que cuando voy a guardar un item en la BD ...
  #1 (permalink)  
Antiguo 04/07/2013, 08:22
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Estoy haciendo un proyecto en PHP y lo estoy realizando con WampServer, el problema es que cuando voy a guardar un item en la BD me sale el siguiente error

Fatal error: Class 'ctrlConexion' not found in C:\wamp\www\PlanillaCargue\Control\ctrlProducto.ph p on line 27
Call Stack
# Time Memory Function Location
1 0.0011 383920 {main}( ) ..\VistaProducto.php:0
2 0.0036 409648 ctrlProducto->Guardar( ) ..\VistaProducto.php:45

El asunto es que también tengo el MoWeS, y si lo ejecuto por este si me funciona y me guarda el registro, quisiera saber si saben el porque de este error.
  #2 (permalink)  
Antiguo 04/07/2013, 08:26
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 20 años, 4 meses
Puntos: 56
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Holas, pefeli, y bienvenid@.

El error significa que dentro del script "ctrlProducto.php" estás tratando de invocar a la clase ctrlConexion, pero no las has incluído antes de invocarla. Rastrea el código del archivo ctrlProducto, a partir de la línea 27 hacia atrás, para ver en qué momento no ha sido declarada o cargada la clase ctrlConexion.

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #3 (permalink)  
Antiguo 04/07/2013, 09:29
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Cita:
Iniciado por quinqui Ver Mensaje
Holas, pefeli, y bienvenid@.

El error significa que dentro del script "ctrlProducto.php" estás tratando de invocar a la clase ctrlConexion, pero no las has incluído antes de invocarla. Rastrea el código del archivo ctrlProducto, a partir de la línea 27 hacia atrás, para ver en qué momento no ha sido declarada o cargada la clase ctrlConexion.

Saludos!
Hola, de hecho eso fue lo primero que realice, pero aun sigue igual, la duda es porque con el MoWeS si me funciona y con el Wamp no
  #4 (permalink)  
Antiguo 04/07/2013, 09:36
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 20 años, 4 meses
Puntos: 56
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Estas clases, ¿las has creado tú? ¿venían con alguna plataforma de trabajo? No sólo debes revisar el archivo ctrlProducto, sino todos los que hayan sido incluídos previamente a él, y si el ctrlProducto está incluido a su vez en otro, revisar dentro de ese otro, todos los includes previos a incluir el ctrlProducto, de modo de hacer el rastreo completo, lo hicisite así?

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #5 (permalink)  
Antiguo 04/07/2013, 09:37
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

mostranos la linea donde incluis el archivo ctrlProducto.php y desde donde,

antes que nada deberias tener un archivo o clase de configuracion donde declaras alguna constanta o metodo para definir los paths y que te sirvan para el resto del sitio sin importar desde donde se invoquen:

define("DOCUMENT_ROOT", "/wamp/www/proyecto/public_html/");

desde cualquier parte del proyecto:

require_once(DOCUMENT_ROOT."clases/ctrlProducto.php");

suponiendo que ctrlProducto.php esta en una carpeta llamada clases
  #6 (permalink)  
Antiguo 04/07/2013, 09:45
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Fueron creados por mi, acá los voy a listar

ctrlConexion:

<?
class ctrlConexion
{

var $Enlace;

function Conectar()
{
$Servidor = 'localhost';
$Usuario = 'root';
$Password = '';
$BD = 'carguemicrosoft';

$Enlace = mysqli_connect($Servidor, $Usuario, $Password, $BD);

if (!$Enlace)
{
die('Error de Conexión (' . mysqli_connect_errno() . ') ' . mysqli_connect_error());
}

return $Enlace;
}

function EjecutarSQL($Enlace, $Consulta)
{
$RecordSet = mysqli_query($Enlace, $Consulta);

return $RecordSet;
}

function Cerrar($Enlace)
{
mysqli_close($Enlace);
}
}
?>

-----------------------------------------------------------------------------------

Producto:

<?php
class Producto
{
//Defino Variables
var $intCodigo;
var $strNombre;
var $dblPrecio;
var $strError;

//Constructor
function Producto($Codigo, $Nombre, $Precio, $Error)
{
$this -> intCodigo = $Codigo;
$this -> strNombre = $Nombre;
$this -> dblPrecio = $Precio;
$this -> strError = $Error;
}

//Asigno Variables de ENTRADA y SALIDA
function getCodigo()
{
return $this -> intCodigo;
}

function setCodigo($Codigo)
{
$this -> intCodigo = $Codigo;
}

//--\\

function getNombre()
{
return $this -> strNombre;
}

function setNombre($Nombre)
{
$this -> strNombre = $Nombre;
}

//--\\

function getPrecio()
{
return $this -> dblPrecio;
}

function setPrecio($Precio)
{
$this -> dblPrecio = $Precio;
}

//--\\

function getError()
{
$this -> strError;
}

function setError($Error)
{
$this -> strError = $Error;
}

}
?>

----------------------------------------------------------------------------

ctrlProducto:

<?php
//Inclusión de Archivos Necesarios
include_once 'ctrlConexion.php';

class ctrlProducto
{
//Defino Variables
var $objProducto;
var $RecordSet;
var $Error;

//Constructor
function ctrlProducto($objProducto)
{
$this -> objProducto = $objProducto;
}

//Funciones Operativas
function Guardar()
{
$intCodigo = $this -> objProducto -> getCodigo();
$strNombre = $this -> objProducto -> getNombre();
$dblPrecio = $this -> objProducto -> getPrecio();
$strError = $this -> objProducto -> getError();

//Nos Conectamos a la Base de Datos
$objConexion = new ctrlConexion();
$Enlace = $objConexion -> Conectar();

//Se Ejecuta el Comando SQL
$Consulta = "INSERT INTO tblPROducto VALUES('".$intCodigo."','".$strNombre."','".$dblPr ecio."')";
$RecordSet = $objConexion -> EjecutarSQL($Enlace, $Consulta);
$objConexion -> Cerrar($Enlace);

//Verificamos el Resultado de la Consulta
if (!$RecordSet)
{
$strError = "Error en la Consulta: \n".mysqli_error($Enlace);
}
else
{
$this -> RecordSet = $RecordSet;
$strError = "";
}
}

}
?>

-------------------------------------------------------------------------------------

VistaProducto:

<?php
/*session_start();
if ($_SESSION["Rgtro"] != "Si")
{
header("Location:Index.php");
}
$strUsuario = $_SESSION["User"];*/

//Inclusión de Archivos Necesarios
include_once ("../Modelo/Producto.php");
include_once ("../Control/ctrlProducto.php");
//include_once ("../Control/ctrlConexion.php");


//Definición de Variables
$intCodigo;
$strNombre;
$dblPrecio;
$strError;
$btnBoton;

try
{
//Capturo la Información Enviada
$intCodigo = isset($_POST['txtCodigo']) ? $_POST['txtCodigo'] : null;
$strNombre = isset($_POST['txtNombre']) ? $_POST['txtNombre'] : null;
$dblPrecio = isset($_POST['txtPrecio']) ? $_POST['txtPrecio'] : null;
$btnBoton = isset($_POST['Boton']) ? $_POST['Boton'] : null;

switch ($btnBoton)
{
case "Guardar":
if ((is_null($intCodigo) || empty($intCodigo)) || (is_null($strNombre) || empty($strNombre)) ||
(is_null($dblPrecio) || empty($dblPrecio)))
{
echo "
<script languaje=\"JavaScript\" type=\"text/javascript\">
alert(\"Ingrese todos los Datos para Continuar.\")
</script>";
break;
}

$objProducto = new Producto($intCodigo, $strNombre, $dblPrecio, "");
$objctrlProducto = new ctrlProducto($objProducto);
$objctrlProducto -> Guardar();

$intCodigo = $objProducto -> getCodigo();
$strNombre = $objProducto -> getNombre();
$dblPrecio = $objProducto -> getPrecio();
$strError = $objProducto -> getError();

echo "
<script languaje=\"JavaScript\" type=\"text/javascript\">
alert(\"Producto Guardado con Éxito.\")
</script>";
break;
}
}
catch (Exception $e)
{
$strError = "Error: ".$e -> getMessage();
}

?>

<html>
<head>
<title>Producto</title>
</head>
<body>
<form action="VistaProducto.php" method="post" name="frmProducto">
<table>
<tr>
<td colspan="2" style= "text-align: center"><h2>Producto</h2>
</tr>
<tr>
<td><br></td>
</tr>
<tr>
<td style= "text-align: right">Código:</td>
<td style= "text-align: left"><input name="txtCodigo" value=<?php $intCodigo ?>></td>
</tr>
<tr>
<td style= "text-align: right">Nombre:</td>
<td style= "text-align: left"><input name="txtNombre" value=<?php $strNombre ?>></td>
</tr>
<tr>
<td style= "text-align: right">Precio:</td>
<td style= "text-align: left"><input name="txtPrecio" value=<?php $dblPrecio ?>></td>
</tr>
</table>
<br>
<table>
<tr>
<td align="center"><input name="Boton" value="Guardar" type="submit"></td>
<td align="center"><input name="Boton" value="Consultar" type="submit"></td>
<td align="center"><input name="Boton" value="Modificar" type="submit"></td>
<td align="center"><input name="Boton" value="Borrar" type="submit"></td>
<td align="center"><input name="Boton" value="Listar" type="submit"></td>
<td align="center"><input type="reset"></td>
</tr>
</table>

</form>
</body>
</html>
  #7 (permalink)  
Antiguo 04/07/2013, 09:49
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 10 meses
Puntos: 288
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

ok, trata de poner todo el codigo resaltando con el HIGHTLIGHT, nos alegraria la vida
despues cuando pones codigo tan extenso te aseguro que nadie lo lee, excepto que sea un aporte y alguien lo necesite, ni asi, por que lo va a copiar y pegar

intenta hacer la constante que te dije y usala asi
  #8 (permalink)  
Antiguo 04/07/2013, 09:52
Avatar de quinqui  
Fecha de Ingreso: agosto-2004
Ubicación: Chile!
Mensajes: 776
Antigüedad: 20 años, 4 meses
Puntos: 56
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Uy, sabes lo único extraño que encontré en tu código es esto, en tu archivo ctrlConexion.php:

Tienes así el inicio:
Código PHP:
<?
class ctrlConexion
{
 ...
Prueba cambiándolo por esto:
Código PHP:
<?php
class ctrlConexion
{
 ...
Si dices que un servidor funciona y con el otro no, es porque seguramente tienen configurado distinto el tema de considerar la tag <? como válida al inicio de código php. Te sugiero siempre usar la tag <?php que es más universal para los intérpretes de php.

Otra cosa, y nada que ver con el tema, para tus próximas consultas en el foro, aprovecha las herramientas para destacar el código fuente, como [ php ] [ /php ], etc., ya que es difícil leer tu código fuente así, como texto común.

Saludos!
__________________
pipus.... vieeeeeji plomius!!!
*quinqui site*
  #9 (permalink)  
Antiguo 04/07/2013, 10:00
 
Fecha de Ingreso: marzo-2013
Mensajes: 4
Antigüedad: 11 años, 9 meses
Puntos: 0
Respuesta: Como soluciono esto? Fatal Error: Class 'ctrlConexion' not found

Cita:
Iniciado por quinqui Ver Mensaje
Uy, sabes lo único extraño que encontré en tu código es esto, en tu archivo ctrlConexion.php:

Tienes así el inicio:
Código PHP:
<?
class ctrlConexion
{
 ...
Prueba cambiándolo por esto:
Código PHP:
<?php
class ctrlConexion
{
 ...
Si dices que un servidor funciona y con el otro no, es porque seguramente tienen configurado distinto el tema de considerar la tag <? como válida al inicio de código php. Te sugiero siempre usar la tag <?php que es más universal para los intérpretes de php.

Otra cosa, y nada que ver con el tema, para tus próximas consultas en el foro, aprovecha las herramientas para destacar el código fuente, como [ php ] [ /php ], etc., ya que es difícil leer tu código fuente así, como texto común.

Saludos!
Muuuuuuuuuuuchisimas gracias!!!!, nunca lo hubiera encontrado ese "detalle" ya me funciona.

Gracias por las recomendaciones sobre como escribir en el foro, es la primera vez que abro un tema.

Etiquetas: class, fatal, found, registro
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 11:07.