Comunidad PHPeros
Lenguajes => PHP => (POO) Programación Orientada a Objetos => Mensaje iniciado por: Pc-Admin en 17 de Enero de 2012, 21:48:08 pm
-
Buenas,
tengo un problema con lo que acabo de crear, un formulario crearusuario.php i un usuario.php por Clases.
Ya tengo la base de datos creada y el conector.php.
Os pongo el codigo a ver si podeis ayudarme.
usuario.php
<?php
include("conectar.php");
class usuario {
private $user;
private $pass;
private $fechaNacimiento;
private $pass2;
public $email;
function _construc($user, $pass, $fechaNacimiento) {
$this->user = $user;
$this->pass = $pass;
$this->fechaNacimiento = $fechaNacimiento;
$this->email = $email;
}
public function crearUsuario($user, $pass, $email, $fechaNacimiento) {
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values ($user, $pass, $email, $fechaNacimiento)";
if(mysql_query($query)) {
echo "Se ha registrado el usuario ".$user." con exito!";
} else {
echo "No se ha podido registrar el usuario.";
}
}
?>
}
crearusuario.php
<?php
include ("conectar.php");
require_once("usuario.php");
?>
<form action="crearUsuario">
Usuario: <input type="text" name="user"><br>
Contraseña: <input type="text" name="pass"><br>
E-mail: <input type="text" name="email"><br>
Data naixement: <input type="text" name="fechaNacimiento"><br>
<input type="submit" name="enviar" value="Enviar">
</form>
<?php
$consulta = new usuario();
$consulta->crearUsuario("nombre", "pass", "email", "fechaNacimiento");
?>
Gracias!
-
Hola,
La función de construcción si no me equivoco es
function _construct
Se te ha olvidado la t del final.
De todas formas se te ha olvidado mencionar cual es el problema!
Un saludo
-
Cierto, me ha problema a la hora de hacer la inserción, creo que el problema esta en la función crear usuario, que no están bien ligados.
Gracias
-
Alguna ayudita?
-
Creo que el problemas es que en el query pusistes asi:
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values ($user, $pass, $email, $fechaNacimiento)";
Y yo creo que es asi intenta aver:
]
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values ('$user','$pass','$emai','$fechaNacimiento')";
Salu2
-
Creo que el problemas es que en el query pusistes asi:
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values ($user, $pass, $email, $fechaNacimiento)";
Y yo creo que es asi intenta aver:
]
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values ('$user','$pass','$emai','$fechaNacimiento')";
Salu2
El código que acabas de proporcionar está mal, el bueno es el siguiente:
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values (".$user.",".$pass.",".$email.",2,".$fechaNacimiento.")";
-
Hola,
La función de construcción si no me equivoco es
function _construct
Se te ha olvidado la t del final.
De todas formas se te ha olvidado mencionar cual es el problema!
Un saludo
Es function __construct(). Con dos underscore (_).
-
Es function __construct(). Con dos underscore (_).
Cierto, no me había fijado.
Por cierto, la query correcta si no me equivoco es la que propuso Humano,
Un saludo
-
El código que acabas de proporcionar está mal, el bueno es el siguiente:
$query = "INSERT INTO usuarios (user, pass, email, fechaNacimiento) values (".$user.",".$pass.",".$email.",2,".$fechaNacimiento.")";
De hecho, está mal este que colocas. Recuerda que con comillas dobles no es necesario hacer ese tipo de concatenación y te faltan las comilas dobles en lso campos user, pass, email y fechaNacimiento porque son cadenas de texto.
Como dijo Carlos, el de Humano está correcto. Solo que le faltó la letra L en la variable $email :P
PD: Y ese 2 de dónde salió xdd
De igual forma, tengo unas observaciones para Pc-Admin:
- En el constructor, además de faltarte la letra t y el otro underscore (function __construct(), también te falta mandarle otro parámetro que es el $email. Así: function __construct($user, $pass, $fechaNacimiento, $email) {.
- Si vas a usar una clase cuyos atributos son los datos del usuario, y que a la vez los lees con el constructor... ¿Para qué los vuelves a mandar en el método crearUsuario() si ya los tienes en la clase? :P
-
Chicos, he creado un nuevo archivo que se llama procesa.php
De tal manera que mi "registro" queda asi:
Crearusuario.php //formulario -> procesa.php //crea una nueva clase e ingresa los datos en la BDD -> usuario.php //contiene la clase usuario
Que os parece?
-
tendrás que recojer los valores introducidos en los campos de alguna manera con la variable $_POST o $_GET, no sé ..