Sky.NET (05.03.2015)
Thema: MVC in Php richtig so?
-
05.03.2015, 01:51 #1
MVC in Php richtig so?
Hey,
weiss nicht ob ich hier richtig bin probiere es einfach mal. Ich habe von MVC gehört um Ordnung in Php-Seiten bringen zu können. Um das an einem kleinen Beispiel zu üben habe ich versucht Model und Controller für eine einfache Anmeldung zu machen. Man soll sich anmelden und seine Daten ändern können. Ich suche einen guten Programmierer der mir sagen kann, ob ich das richtig verstanden habe oder ob etwas falsch ist!
Controller:
PHP-Code:class registration_controller{
function index(){//Registrationsform
$index = new template('index.html');
echo $index->html();
}
function update(){
$update = new template('update.html');
echo $update->html();
}
function register_user(){
$user = new user_model($_GET["username"], $_GET["password"], $_GET["mail"]);
if($user->pre_save()){
$user->save();
show_status("Konto wurde angelegt!");
}else{
show_status("Fehler beim anlegen des Kontos:" . $user->get_error());
}
}
function update_user(){
$user = new user_model($_GET["username"], $_GET["password"], $_GET["mail"]);
if($user->pre_save()){
$user->save();
show_status("Konto wurde aktualisiert!");
}else{
show_status("Fehler beim aktualisieren:" . $user->get_error());
}
}
function show_status($text){
$status = new template('status.html');
$status->set('text', $text);
die($status->html());
}
}
PHP-Code:class user_model{
private $db = new mysqli_db('localhost', 'test', 'user', 'testuser', '123456');
private $username;
private $password;
private $mail;
public function __construct($_username = "", $_password = "", $_mail = ""){
$this->username = $_username;
$this->password = $_password;
$this->mail = $_mail;
}
public function get_username(){
return $this->db->esc($this->username);
}
public function get_password(){
return $this->db->esc($this->password);
}
public function get_mail(){
return $this->db->esc($this->mail);
}
public function set_username($new_username){
$this->username = $new_username;
}
public function set_password($new_password){
$this->password = $new_password;
}
public function set_mail($new_mail){
$this->mail = $new_mail;
}
public function pre_save(){
$error = $this->get_error();
if($error != true){
return false;
}else{
return true;
}
}
public function get_error(){
if($this->username = ""){
return "Kein Benutzername eingegeben!";
}else if($this->password = ""){
return "Kein Passwort eingegeben!";
}else if(strlen($this->password) < 6){
return "Passwort muss mind die Länge 6 haben!";
}else if($this->mail = ""){
return "Keine E-Mail eingegeben!";
}else {
return true;
}
}
public function save(){
$sql = "INSERT INTO user(username, password, mail) VALUES('" . $this->get_username() . "', '" . $this->get_password() . "', '" . $this->get_mail() . "')";
$sql = " ON DUPLICATE KEY UPDATE password='" . $this->get_password() . "', mail='" . $this->get_mail() . "'";
return $this->db->do_query($sql);
}
}
Geändert von ThunderStorm (05.03.2015 um 01:59 Uhr)
Zitat von helpster.de
-
05.03.2015, 03:58 #2
- Registriert seit
- 28.10.2011
- Beiträge
- 625
Thanked 279 Times in 168 PostsAW: MVC in Php richtig so?
$this->db->esc(); würde ich nicht in den Getter-Methoden verwenden. Nutze bei save(); lieber PreparedStatements, dann ersparst du dir ein "escapen".
Theoretisch ist das ganze schon soweit in Ordnung bis auf das Model:
Ein Model ist nur der Datenhalter - Dort werden normalerweise keine DB-Operationen getätigt. Auch ist hier das initialisieren von der DB fehl am platze.
Warum erstellst du nicht direkt ein Model-Binding was die Datenbank nutzt (Siehe http://php.net/manual/de/mysqli-resu...h-object.php)?
-
The Following User Says Thank You to Bubble Gum For This Useful Post:
Ähnliche Themen
-
Wie schreibe ich das richtig?
Von ElkosMED im Forum RealLifeAntworten: 3Letzter Beitrag: 06.07.2013, 15:19 -
Win8 Mein Pc ist Richtig langsam
Von Kosi im Forum WindowsAntworten: 7Letzter Beitrag: 15.06.2013, 16:47 -
(S) richtig geile Goa Lieder
Von Rabbit im Forum Musik ♫Antworten: 9Letzter Beitrag: 26.05.2012, 13:18 -
Pc startet nicht richtig
Von flieyiger im Forum HardwareAntworten: 8Letzter Beitrag: 31.03.2012, 17:04 -
Wie man richtig Einkauft ;)
Von marvijjn im Forum Filme, Serien und TVAntworten: 9Letzter Beitrag: 20.12.2011, 16:17
Diese Seite nutzt Cookies, um das Nutzererlebnis zu verbessern. Klicken Sie hier, um das Cookie-Tracking zu deaktivieren.