Aide class php

Répondre
jackbocar
le 06/09/2011 à 17:27
jackbocar
Bonjour

Désolé, je n'ai jamais encore utilisé de class php, alors un coup de main sera le bienvenu, il faut aussi que vous inscriviez là où cela doit être placé les bouts de codes dans action et celui qui contrôle la class (insert) du formulaire. Cette aide me servira pour utiliser le reste de la class php.

Si je veux me servir d'une class php, et que je veux utiliser cette fonction avec un formulaire.
<?php public function insert() ?>


Que dois-je inscrire dans action ?

Où placer cette ligne de code pour que ça fonctionne avec le formulaire ?
<?php public function insert() ?>


Par avance merci pour votre aide
Jack Bocar


<?php
require_once 'config.php';

public function insert(){
try {
if($this->checkExistEmail())
{
echo "User is already existed" . "<br/>";
return false;
}
else{
if(isset($this->nom) && isset($this->prenom) && isset($this->email) && isset($this->password))
{
$query = 'INSERT INTO user SET nom=:nom, prenom=:prenom, email=:email, password=PASSWORD(:password), create_date=now()';
$sql_statement = $this->db_connect->prepare($query);
$sql_statement->bindParam(':nom',$this->nom,PDO::PARAM_STR);
$sql_statement->bindParam(':prenom',$this->prenom,PDO::PARAM_STR);
$sql_statement->bindParam(':email',$this->email,PDO::PARAM_STR);
$sql_statement->bindParam(':password',$this->password,PDO::PARAM_STR);

if(!$sql_statement->execute()) {
return false;
}
return true;
}
else {

return false;
}
}
}
?>


Comment ecrire cette fonction pour ce formulaire ?
<?php public function insert() ?>


<form method="post" action="">
Nom : <input type="text" id="nom" name="nom" size="20" maxlength="50" /><br />
Prénom : <input type="text" id="prenom" name="prenom" size="20" maxlength="50" /><br />
Email : <input type="text" id="email" name="email" size="40" maxlength="100" /><br />
Password : <input type="pasword" id="password" name="password" size="20" maxlength="50" /><br />
<input type="submit" value="Save" />
</form>
jackbocar
le 06/09/2011 à 18:29
jackbocar
<?php
require_once 'user.php';

function insert(){
}
?>

<form method="post" action="user.php">
Nom : <input type="text" id="nom" name="nom" size="20" maxlength="50" /><br />
Prénom : <input type="text" id="prenom" name="prenom" size="20" maxlength="50" /><br />
Email : <input type="text" id="email" name="email" size="50" maxlength="100" /><br />
password : <input type="text" id="password" name="password" size="20" maxlength="50" /><br />
<input type="submit" value="Save" />
</form>

J'ai essayé comme ceci, et ça fonctionne pas.
jackbocar
le 06/09/2011 à 18:50
jackbocar
user_DB.php
<?php
require_once 'config.php';
class DB {

private static $_instance;

public function &pdo_connection(){
if(!self::$_instance){
try {
self::$_instance = new PDO(DSN,USERNAME,PASSWORD);
self::$_instance->setAttribute(PDO::ATTR_PERSISTENT, true);
self::$_instance->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $est) {
die("pdo connection error! ". $est->getMessage() ."<br/>");
}
}
return self::$_instance;
}
private function __construct() {
}
private function __clone() {}
}


class user extends DB {

private $db_connect= "";
public $id, $fname, $lname, $email, $password, $admin_id, $create_date, $enable;

public function __construct() {
$this->db_connect = $this->pdo_connection();
}
public function __destruct() {
$this->db_connect = null;

}
}
?>




insert.php
<?php
require_once 'user_DB.php';

public function insert(){
try {
if($this->checkExistEmail())
{
echo "User is already existed" . "<br/>";
return false;
}
else{
if(isset($this->fname) && isset($this->lname) && isset($this->email) && isset($this->password))
{
$query = 'INSERT INTO user
SET u_fname=:fname,
u_lname=:lname,
u_email=:email,
u_password=PASSWORD(:password),
u_create_date=now()';
$sql_statement = $this->db_connect->prepare($query);
$sql_statement->bindParam(':fname',$this->fname,PDO::PARAM_STR);
$sql_statement->bindParam(':lname',$this->lname,PDO::PARAM_STR);
$sql_statement->bindParam(':email',$this->email,PDO::PARAM_STR);
$sql_statement->bindParam(':password',$this->password,PDO::PARAM_STR);

if(!$sql_statement->execute()) {
return false;
}
return true;
}
else {

return false;
}
}
}
catch(PDOException $e){
echo "error! can't insert into the user information" . $e->getMessage() . "<br/>";
return false;
}
}
?>




Formulaire
<?php
require_once 'user_DB.php';
?>


<form method="post" action="insert.php">
Nom : <input type="text" id="fname" name="fname" size="20" maxlength="50" /><br />
Prénom : <input type="text" id="lname" name="lname" size="20" maxlength="50" /><br />
Email : <input type="text" id="email" name="email" size="50" maxlength="100" /><br />
password : <input type="text" id="password" name="password" size="20" maxlength="50" /><br />
<input type="submit" value="Save" />
</form>

Parse error: syntax error, unexpected T_PUBLIC in insert.php on line 4

J'ai essayé de nouveau comme ceci et ça ne fonctionne toujours pas
LupusMic
le 13/09/2011 à 15:57
LupusMic
C'est normal, les mots-clés public, proteced et private ne sont disponible que dans le contexte de la déclaration de variables et de fonctions dans une classe :
<?php

class LeNomDeMaClasse {
public function appelleMoi() { }
}
Développeur récurrent, procédural et relationnel. Caustique soupe-au-lait.
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours