PHP - Cannot redeclare class Conexion in /home/

   
Vista:

Cannot redeclare class Conexion in /home/

Publicado por Fran de Venezuela franjrc@hotmail.com (3 intervenciones) el 17/10/2015 20:08:26
Buenas,

Que tal amigos,

Un formulario php, en el que instancio dos clases me arroja un error:
PHP Fatal error: Cannot redeclare class Conexion in /home/rivas/public_html/pepe/Conexion.php on line 4

Explico: LAs dos clases a las que instancio llaman a una principal, que es la Conexiones.php

Tengo:

Capa de Datos a:
-Conexion.php

Capa de NEgocio a:
-Motivo.php
-Paciente.php

Capa de Presentación a:
-FrmMovimiento.php


OK. la Clase de Conexion.php contiene el siguiente codigo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<!--Capa de Datos-->
<!--Clase Conexion-->
<?php
class Conexion{
  protected $pservidor;
  protected $pusuario;
  protected $pclave;
  protected $pbasededatos;
  protected $pconexion;
 
  public function __construct()
  {
    $this->pservidor="localhost";
    $this->pusuario="rivas_sa";
  	$this->pclave="rivas123456789";
    $this->pbasededatos="rivas_pepe";
    $this->pconexion=mysql_connect($this->pservidor,$this->pusuario,$this->pclave) or  die("Problemas en la conexion");
	mysql_select_db($this->pbasededatos,$this->pconexion) or  die("Problemas en la selecci�n de la base de datos");
  }
 
  	public function EjecutarSentencia($str)
  {
	  $registros=mysql_query($str,$this->pconexion) or  die("Problemas en el select:".mysql_error());
	  return $registros;
 
 }
   	public function EjecutarSentenciaRegistro($str)
  {
	  $registros=mysql_query($str,$this->pconexion) or  die("Problemas en el select:".mysql_error());
	  $reg=mysql_fetch_array($registros);
	  return $reg;
  }
     public function __destruct()
  {
		//mysql_close();//cuidado con esto al usarla en las clases de negocio, ok
  }
}
?>

OK. la Clase de Paciente.php y Motivo Contienen el siguiente codigo resumido:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
<!--Capa de Negocio-->
<!--Clase Motivo-->
<?php
require("Conexion.php");
class Motivo{
  protected $pcodmotivo;
  protected $pdescripcion;
  protected $pstatus;
 
  public function SetCodmotivo($variable)
  {
    $this->pcodmotivo = $variable;
  }
 
  public function GetCodmotivo(){
    return $this->pcodmotivo;
  }.............................
.........................................
.........................................
<!--Capa de Negocio-->
<!--Clase Paciente-->
<?php
require("Conexion.php");
class Paciente{
  protected $pcodpaciente;
  protected $pnombre;
 
 
  public function SetCodpaciente($variable)
  {
    $this->pcodpaciente = $variable;
  }
 
  public function GetCodpaciente(){
    return $this->pcodpaciente;
  }
.....................
................
.....................

OK, y este es el codigo del frm en la capa de presentacion, Movimiento(resumido) donde me arroja el error:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
session_start();
$usu=($_SESSION['usuario']);
$cla=($_SESSION['clave']);
if ($_SESSION['usuario']=="")
{
header ("Location: MensajeDesconectado.php");
exit;
}
 
require("Motivo.php");
require("Paciente.php");
?>
<?
if ($_GET["met"]=="aceptar" && $_GET["opc"]=="1" )
{
 $mae=new Motivo();
 $mae->SetCodmotivo($_GET["pcodmotivo"]);
 $mae->SetDescripcion($_GET["pdescripcion"]);
 $mae->SetEstatus($_GET["pestatus"]);
$mae->Agregar();
 
}
?>

Como pueden ver donde llamo a Motivo y a Paciente, ellas me lllaman a su a Conexion, por eso el error:
PHP Fatal error: Cannot redeclare class Conexion in /home/rivassis/public_html/pepe/Conexion.php on line 4

¿Cómo podria trabajar con dos clases, que a su vez llaman a otra en común?

Saludos,
Francisco Rivas
www.rivassistemas.com
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Cannot redeclare class Conexion in /home/

Publicado por Fran de Venezuela (3 intervenciones) el 17/10/2015 20:44:03
Creo que la solución es esta: require_once, si ya esrtá cargado Conexión por una clase, no lo volverá a cargar.

Francisco Rivas
www.rivassistemas.com
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar