selberbauer
Captain
- Registriert
- Juni 2009
- Beiträge
- 3.604
Hallo,
ich habe immernoch Probleme, wann man $this einsetzt und was man dabei zu beachten hat.
Ich wollte eine neue Klasse anlegen, welche die Login Daten von mysqli übernimmt, in einer privaten Funktion eine Tabelle ggf. anlegt und dannach mit einer öffentlichen Funktion die Möglichkeit bietet einen neuen Benutzer hinzuzufügen.
ich habe immernoch Probleme, wann man $this einsetzt und was man dabei zu beachten hat.
Ich wollte eine neue Klasse anlegen, welche die Login Daten von mysqli übernimmt, in einer privaten Funktion eine Tabelle ggf. anlegt und dannach mit einer öffentlichen Funktion die Möglichkeit bietet einen neuen Benutzer hinzuzufügen.
PHP:
class user_management extends mysqli {
public function __construct($host, $user, $password, $database) {
parent::__construct($host, $user, $password, $database);
if(mysqli_connect_errno()) {
echo 'Fehler bei Verbindung';
echo mysqli_connect_err();
return false;
} else {
return true;
}
}
var $sql_table = 'CREATE TABLE IF NOT EXISTS users (ID INT(11) AUTO_INCREMENT PRIMARY KEY,
user VARCHAR(50) NOT NULL, hash VARCHAR(512) NOT NULL, email VARCGAR(100) NOT NULL, UNIQUE(user))';
private function create_table($sql_table) {
if ($this->query($sql_table)) {
return true;
} else {
return false;
}
}
$this->create_table($this->sql_table);
public function new_user($new_user, $new_pass) {
$sql_check = 'SELECT COUNT(*) FROM users WHERE user=? AND hash=?';
if(!($this->prepare($sql_check))) {
trigger_error('Could not prepare statement!',E_USER_ERROR);
return false;
}
$hash = hash('SHA512', $new_pass);
$this->bind_param('ss', $new_user, $hash)
$this->execute();
if($this->errno) {
trigger_error('Could not prepare statement!',E_USER_ERROR);
return false;
}
$this->bind_result($matches);
$this->fetch();
$this->close();
echo $new_user . 'wurde mit' . $hash . 'angelegt';
return ($matches == 1);
}
}
$db = user_management('localhost', 'user', 'wambo', 'test');
$db->new_user('klaus', 'ente');