Foros del Web » Programando para Internet » PHP » Frameworks y PHP orientado a objetos »

Problema en el uso de clases

Estas en el tema de Problema en el uso de clases en el foro de Frameworks y PHP orientado a objetos en Foros del Web. Buenas tengo un error al utilizar clases en php y no se porque puede ser. Os pongo el código y os comento: Tengo una página ...
  #1 (permalink)  
Antiguo 15/01/2010, 04:25
 
Fecha de Ingreso: enero-2008
Mensajes: 49
Antigüedad: 16 años, 3 meses
Puntos: 0
Problema en el uso de clases

Buenas tengo un error al utilizar clases en php y no se porque puede ser. Os pongo el código y os comento:

Tengo una página para que los usuarios se den de alta en ella, pudiendo ser 2 tipos de usuarios: apostantes o propietarios.
La página de alta es esta:
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Compra y Venta de Coches</title>
</head>
<body>
<div id="principal">
  <div id="titulo">Darse de alta.</div>
  <div id="cuerpo">

  <form id="login" name="login" method="post" action="validar_usuario.php">
    <label>Nombre
    <input type="text" name="nombre" id="nombre" />
    <br />
    <br />
    Telefono
    <input type="text" name="telefono" id="telefono" />
    <br />
    <br />
    DNI
    <input type="text" name="DNI" id="DNI" />
    </label>
      <p>
        <label>Password
        <input type="password" name="password" id="password" />
        </label>
      </p>
      <p>
        <label>
        <input type="radio" name="tipo_usuario" value="1" id="tipo_usuario_0" />
Propietario</label>
        <br />
        <label>
        <input type="radio" name="tipo_usuario" value="2" id="tipo_usuario_1" />
Apostante</label>
      </p>
      <p>
         <label> 
         <input type="submit" name="enviar" id="enviar" value="Submit" />
         </label>
        <br />
      </p>
  </form>
  </div>
  </div>
</body>
</html> 
El formulario que utilizo en ella llama a validar_usuarios.php que contiene esto:
Código PHP:
<?php
include_once ("propietario.php");
include_once (
"apostantes.php");


    
//Recogemos los valores del formulario de alta
    
$usuario $_POST["nombre"];
    
$tlf $_POST["telefono"];
    
$dni $_POST["DNI"];
    
$password $_POST["password"];
    
$tipo_usu $_POST["tipo_usuario"];
    
$est "Alta";
    
//Comprobamos que tipo de usuario es
    
if($tipo_usu == '1'){//Propietario
    
        
prop = new Propietario;
        
$conexion mysql_connect("localhost","****","****") or die("No se ha podico conectar con la bbdd");
        
prop->AltaPropietario($usuario,$tlf,$dni,$password,$conexion);
        
    }
    else{
//Apostante
        
if($tipo_usu == '2'){
            
apos = new Apostante;
            
$conexion =  mysql_connect("localhost","***","*****") or die("No se ha podico conectar con la bbdd");
            
apos->AltaApostante($usuario,$tlf,$dni,$password,$conexion);
        }
        else{
            print(
"No ha selecionado el tipo de usuario"."<br>");    
        }
    }

?>
En el hago uso de las clases apostantes y propietario que las defino en el los archivos propietario.php
Código PHP:
<?php
include_once "vehiculo.php"
    
class Propietario{
    
//Parte Privada
        
$private nombre;
        
$private telefono;
        
$private dni;
        
$private pass:
        
$private estado;
    
    
//Parte Publica    
    
        
function Propietario($dni,$conexion){// Una vez logueado  nos vale para crear el usuario con el nombre y el pass
            
$consulta "Select dni,pass from Propietario";
            
$resultado mysql_db_query("Rest_75154953S",$consulta,$conexion);
            if(
mysql_num_rows($resultado)>0){
                
band '0';
                while(
$item mysql_fetch_array($resultado) && band='0'){
                    if(
$item.dni == dni){//Posibles fallos al coger la informacion de la consulta
                        
$consulta2 "Select * from Propietario where `dni`='".dni."'";
                        
$resultado2 mysql_db_query("Rest_75154953S",$consulta2,$conexion);
                        
$this->nombre $resultado2["nombre"];
                        
$this->telefono $resultado2["telefono"];
                        
$this->dni $dni;
                        
$this->pass $resultado2["pass"];
                        
$this->estado $resultado2["estado"];
                        
band '1';
                    }
                }
            }
            else
                print(
"Fallo internto"."<br>");
        }
        
        function 
AltaPropietario($usuario,$telefono,$dni,$password,$conexion){
            
            
ComprobarPropietario($dni,$password,$valor,$conexion); //Funcion que comprueba que el usuario no este dado ya de alta
            
if($valor '0'){//Usuario inexistente en la bbdd
                
$consulta "Insert into Propietario (nombre,telefono,dni,pass,estado) Values ('".$usuario."','".$telefono."','".$dni."','".$pass."', 'alta');
                $resultado = mysql_db_query("
Rest_75154953S",$consulta);
                if(mysql_num_rows($resultado)>0){
                    print("
Se ha registrado correctamente"."<br>");
                    print("
Se le redireccionara a la pagina principal"."<br>");
                    header("
Refresh1URL=index.html");
                }
                else{
                    print("
Error Internopor favor intentelo mas tarde"."<br>");
                    header("
Refresh1URL=index.html");
                }
                
            }
        }
        
        function ComprobarPropietario($dni,$passw,&$valor,$conexion){
            if($conexion){
                $consulta = "
Select From Propietario where dni '".$dni."'"; //Realizamos la consulta
                $resultado = mysql_db_query("
Rest_75154953S",$consulta); //Conectamos con la bbdd
                if($resultado.dni == $dni){
                    if($resultado.password == $pass)
                        $valor = '1';//Existe Propietario
                    else
                        $valor = '2' //Existe Propietario pero el pass es erroneo
                }
                else
                    $valor = '0';//No existe Apostante
            }
        }
        
        function ListadoCoches($conexion){
            $consulta = "
Select From Vehiculo where dni ='".$this->dni."' ";
            $resultado = mysql_db_query("
Rest_75154953S",$consulta,$conexion);
            if(mysql_num_rows($resultado) > 0){ //Hay algun coche
                while($item = mysql_fetch_array($resultado)){
                    //Muestras el coche    
                }
            }
            else
                //Error en la consula
        }
        
        

        
    }
?>
y apostantes.php
Código PHP:
<?php
include_once "vehiculo.php";
    
    class 
Apostante{
    
//Parte Privada
    
        
private $nombre;
        private 
$telefono;
        private 
$dni;
        private 
$pass;
    
    
//Parte Publica
        
        
function Apostante(){}
        function 
Apostante($dni,$conexion){ // Una vez logueado  nos vale para crear el usuario con el nombre y el pass
            
$consulta "Select dni from apostantes";
            
$resultado mysql_db_query("Rest_75154953S",$consulta,$conexion);
            if(
mysql_num_rows($resultado)>0){
                
band '0';
                while(
$item mysql_fetch_array($resultado) && band='0'){
                    if(
$item.dni == $dni){//Posibles fallos al coger la informacion de resultado2
                        
$consulta2 "Select * from apostantes where dni='".dni."'";
                        
$resultado2 mysql_db_query("Rest_75154953S",$consulta2,$conexion);
                        
$this->nombre $resultado2["nombre"];
                        
$this->telefono $resultado2.["telefono"];
                        
$this->dni $dni;
                        
$this->pass $resultado["password"];
                        
$this->estado $resultado2["estado"];
                        
band '1';
                    }
                }
            }
            else
                print(
"Error internto"."<br>");
        }
        
        function 
AltaApostante($usuario,$telefono,$dni,$password,$estado,$conexion){
            

            
ComprobarApostante($dni,$valor,$conexion); //Funcion que comprueba que el usuario no este dado ya de alta
            
if($valor '0'){//Usuario inexistente en la bbdd
                
$consulta "Insert into apostante (nombre,telefono,dni,pass,estado) Values ('".$usuario."','".$telefono."','".$dni."','".$pass."', 'alta');
                $resultado = mysql_db_query("
Rest_75154953S",$consulta);
                if(mysql_num_rows($resultado)>0){
                    print("
Se ha registrado correctamente"."<br>");
                    print("
Se le redireccionara a la pagina principal"."<br>");
                    header("
Refresh1URL=index.html");
                }
                else{
                    print("
Error Internopor favor intentelo mas tarde"."<br>");
                    header("
Refresh1URL=index.html");
                }
                
            }
        }
        
        function ComprobarApostante($dni,&$valor,$conexion){
            if($conexion){
                $consulta = "
Select From apostante where dni '".$dni."'"; //Realizamos la consulta
                $resultado = mysql_db_query("
Rest_75154953S",$consulta); //Conectamos con la bbdd
                if($resultado.dni == $dni)
                    if($resultado.password == $pass){
                        $valor = '1';//Existe apostante
                    else
                        $valor = '2';//existe Apostante pero contraseña erronea
                }
                else
                    $valor = '0'; //El usuario no existe
            }
        }
            
        function Apuestas($conexion){
            $consulta =  "
Select from apuesta where dni'".$this->dni."'";
            $resultado = mysql_db_query("
Rest_75154953S",$consulta,$conexion);
            if(mysql_num_rows($resultado) > 0){
                while($item = mysql_fetch_array($resultado)){
                    //mostramos la lista de apuestas...    
                    
                }
            } 
            else{
                //No se ha realizado ninguna apuesta
            }
        }
        
        
        function RealizarApuesta($matricula,&$valor,$conexion,$correcto){
            if(conexion){
                coche = new Vehiculo($matricula,$conexion,$correcto);
                if($correcto == '1'){
                    coche->PrecioMinimo($valor_minimo);
                    if($valor_minimo < $valor && $this->estado != "
baja"){//Podemos hacer la apuesta
                        $consulta = "
Insert into apuesta (dni,matricula,dinero_apuestaValues ('".$this->dni."','".$matricula."','".$valor."');
                        
$resultado mysql_db_query("Rest_75154953S",$consulta,$conexion);
                        if(
mysql_num_rows($resultado) >0){
                            print(
"Se ha realizado la apuesta"."<br>");
                            
$correcto '1';
                        }
                        else{
                            print(
"No se ha podido realizar la apuesta"."<br>");
                            
$correcto '2';
                        }
                    }
                }
                else
                    print(
"La matricula proporcionada no pertenece a ningun coche"."<br>");
                }    
            }    
        }
        
        function 
VehiculosApostables($conexion){
            
veh = new Vehiculo();
            
veh->ListarVehiculos();
            
        }
        
        function 
DarseBaja(){
            
$this->estado "baja";
        }
    } 
?>
Pues bien cuando lanzo el formulario y llega a la línea 16 del documento validar_usuarios.php me da este error:
Código:
Parse error: syntax error, unexpected '=' in /home/www/validar_usuario.php on line 16
y la línea 16 es esta:
Código PHP:
prop = new Propietario
¿Cuál puede ser el error?
  #2 (permalink)  
Antiguo 15/01/2010, 05:11
 
Fecha de Ingreso: enero-2008
Mensajes: 49
Antigüedad: 16 años, 3 meses
Puntos: 0
Respuesta: Problema en el uso de clases

Vale el fallo era bastante tonto me fallaba porque no había puesto el $, pero que ahora me ha salido otro en la definición de la clase que no se porque puede ser, el error es este:

Parse error: syntax error, unexpected T_CLASS in /home/dai/www/propietario.php on line 3

Que es donde defino la clase Propietario, osea esto:

class $Propietario{

He probado a ponerle $ y sigue devolviendo el mismo fallo, ¿Por qué puede ser?
  #3 (permalink)  
Antiguo 15/01/2010, 08:52
Avatar de maturano  
Fecha de Ingreso: enero-2010
Ubicación: /home/
Mensajes: 537
Antigüedad: 14 años, 3 meses
Puntos: 36
Respuesta: Problema en el uso de clases

Cita:
Iniciado por pasteles Ver Mensaje
Parse error: syntax error, unexpected T_CLASS in /home/dai/www/propietario.php on line 3

Que es donde defino la clase Propietario, osea esto:

class $Propietario{
No, no, ¡no!

Esos son errores de sintaxis, lo más básico de cualquier lenguaje. La definición de una clase no lleva $. Solo llevan $ las variables. No esperarás pegar tanto código y que se te revise ¡por un problema de sintaxis! Utiliza un buen IDE, algo tan básico, debería mostrarte ese tipo de errores.
  #4 (permalink)  
Antiguo 15/01/2010, 09:21
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Problema en el uso de clases

Te falta el punto y coma en la linea anterior, donde haces el include.
Código PHP:
<?php 
include_once "vehiculo.php";  
    class 
Propietario{
  #5 (permalink)  
Antiguo 15/01/2010, 11:38
Avatar de enriqueplace  
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 18 años, 11 meses
Puntos: 32
Respuesta: Problema en el uso de clases

Cita:
Iniciado por pasteles Ver Mensaje
Vale el fallo era bastante tonto me fallaba porque no había puesto el $, pero que ahora me ha salido otro en la definición de la clase que no se porque puede ser, el error es este:

Parse error: syntax error, unexpected T_CLASS in /home/dai/www/propietario.php on line 3

Que es donde defino la clase Propietario, osea esto:

class $Propietario{

He probado a ponerle $ y sigue devolviendo el mismo fallo, ¿Por qué puede ser?
Estimado, no corresponde que copies TODO TU SISTEMA para luego preguntar por un error de sintaxis menor... tienes que copiar tu error y línea de error.
__________________
Blog phpsenior.com Cursos a Distancia surforce.com
  #6 (permalink)  
Antiguo 15/01/2010, 11:42
Avatar de SergeMedina  
Fecha de Ingreso: septiembre-2007
Ubicación: Guadalajara, Jalisco
Mensajes: 459
Antigüedad: 16 años, 7 meses
Puntos: 20
Respuesta: Problema en el uso de clases

El problema es por que las variables en php comienzan con el simbolo dolar "$", por lo tanto esto no es valido:

Código PHP:
Ver original
  1. prop = new Propietario;

Esto es valido:

Código PHP:
Ver original
  1. $prop = new Propietario();
__________________
I see dead pixels

Etiquetas: clases
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 01:47.