<?php class User { private $uid; private $fields; public function __construct() { $this->uid = null; 'username' => '', 'password' => '', 'position' => '', 'gadugadu' => '', 'pseudo' => '', 'email' => '', 'banned' => ''); } public function __get($field) { if ($field == 'userId') { return $this->uid; } else { return $this->fields[$field]; } } public function __set($field, $value) { { $this->fields[$field] = $value; } } { } { return filter_var($email, FILTER_VALIDATE_EMAIL); } { $u = new User(); { $u->exist = true; $u->username = $row['username']; $u->gadugadu = $row['gadugadu']; $u->password = $row['password']; $u->position = $row['position']; $u->email = $row['email']; $u->banned = $row['banned']; $u->pseudo = $row['pseudo']; $u->uid = $uid; } return $u; }
ciąg dalszy klasy:
{ $u = new User(); $query = "SELECT * FROM ".DB_TBL_PREFIX."users WHERE username = '".mysql_real_escape_string($username, $GLOBALS['DB'])."'"; { $u->exists = TRUE; $u->username = $username; $u->password = $row['password']; $u->position = $row['position']; $u->gg = $row['gadugadu']; $u->email = $row['email']; $u->banned = $row['banned']; $u->uid = $row['user_id']; } return $u; } { if ($this->uid) { $query = sprintf('UPDATE %susers SET password = "%s", gadugadu = "%s", email = "%s", pseudo = "%s" WHERE user_id = %d', DB_TBL_PREFIX, mysql_real_escape_string($this->password, $GLOBALS['DB']), mysql_real_escape_string($this->gadugadu, $GLOBALS['DB']), mysql_real_escape_string($this->email, $GLOBALS['DB']), mysql_real_escape_string($this->pseudo, $GLOBALS['DB']), $uid); } else { $query = "INSERT INTO ".DB_TBL_PREFIX."users SET username = '".mysql_real_escape_string($this->username, $GLOBALS['DB'])."', password = '".mysql_real_escape_string($this->password, $GLOBALS['DB'])."', position = '".mysql_real_escape_string($this->position, $GLOBALS['DB'])."', gadugadu = '".mysql_real_escape_string($this->gadugadu, $GLOBALS['DB'])."', email = '".mysql_real_escape_string($this->email, $GLOBALS['DB'])."', } } { $u = new User(); $query = "SELECT autopilot, pozdrowienia, utwor, ramowka, lista, erds FROM ".DB_TBL_PREFIX."user_access WHERE user_id = '".$uid."'"; { $u->autopilot = $row['autopilot']; $u->pozdrowienia = $row['pozdrowienia']; $u->utwor = $row['utwor']; $u->ramowka = $row['ramowka']; $u->erds = $row['erds']; } return $u; } { $u = new User(); $query = "INSERT INTO ".DB_TBL_PREFIX."logs SET tresc = '".$text."', data = '".$data."', godzina = '".$czas."', kategoria = '".$kategoria."'"; if (!$result) { $u->wynik = 'ok'; } return $u; } } ?>
otóż mam problem z modyfikacją danych.
funkcja za to odpowiedzialna wygląda tak:
{ if ($this->uid) { $query = sprintf('UPDATE %susers SET password = "%s", gadugadu = "%s", email = "%s", pseudo = "%s" WHERE user_id = %d', DB_TBL_PREFIX, mysql_real_escape_string($this->password, $GLOBALS['DB']), mysql_real_escape_string($this->gadugadu, $GLOBALS['DB']), mysql_real_escape_string($this->email, $GLOBALS['DB']), mysql_real_escape_string($this->pseudo, $GLOBALS['DB']), $uid); } else { $query = "INSERT INTO ".DB_TBL_PREFIX."users SET username = '".mysql_real_escape_string($this->username, $GLOBALS['DB'])."', password = '".mysql_real_escape_string($this->password, $GLOBALS['DB'])."', position = '".mysql_real_escape_string($this->position, $GLOBALS['DB'])."', gadugadu = '".mysql_real_escape_string($this->gadugadu, $GLOBALS['DB'])."', email = '".mysql_real_escape_string($this->email, $GLOBALS['DB'])."', } }
podczas próby modyfikacji otrzymuje błąd:
Kod
Fatal error: Using $this when not in object context in C:\xampp\htdocs\panel\lib\user.php on line 99
dodam jeszcze że skrypt wywołuje tak: