<?php class chat{ private $db; private $id = 0; private $error = 0; private $meldung; private $post = array(); const upload_folder = 'images/chat/'; const allowed_extensions = array('png', 'jpg', 'jpeg', 'gif'); const max_size = 5120*1024; const allowed_types = array(IMAGETYPE_PNG, IMAGETYPE_JPEG, IMAGETYPE_GIF); private $filename; private $extension; function __construct(){ global $datenbank; $this->db = $datenbank; } public function SettingSave($post){ $this->make_array($post); $this->save(); meldung($this->error,$this->meldung); } private function save(){ if($this->db->update(PREFIX . CHATSE, $this->post, array("id" => 1)) == true){ $this->meldung = CHAT_SETTING_SAVE_TRUE; }else{ $this->error = 1; $this->meldung = CHAT_SESSTING_SAVE_FALSE; } } private function make_array($post){ foreach($post AS $key => $value){ if($key != '' && $key != 'run' && $value != ''){ $this->post[$key] = $this->db->escape($value); } } } public function Verlauf(){ $aus = '<ul class="list-group">'; foreach($this->db->get_results("SELECT * FROM ". PREFIX . CHAT ." ORDER BY id DESC LIMIT 100") AS $res){ $aus .= ' <li class="list-group-item"> <form method="post" action=""> <input type="hidden" name="id" value="'.$res->id.'"> <div class="row"> <div class="col-md-2">'.$res->absender.'</div> <div class="col-md-9">'.$res->nachricht.'</div> <div class="col-md-1"><input type="submit" name="run[chat_nachricht_loeschen]" class="btn btn-danger" value="Löschen"></div> </div> </form> </li>'; } $aus .= '</ul>'; return $aus; } public function DeleteMessage($id){ if(is_numeric($id['id'])){ $this->id = htmlspecialchars($id['id']);} $this->delete(); meldung($this->error,$this->meldung); } private function delete(){ if($this->db->delete(PREFIX . CHAT,array("id" => $this->id)) == true){ $this->meldung = CHAT_DELETE_TRUE; }else{ $this->error = 1; $this->meldung = CHAT_DELETE_FALSE.$this->db->error(); } } private function CheckDateiendung(){ if(!in_array($this->extension, self::allowed_extensions)) { $this->error = 1; $this->meldung = PICUPLOADEXTENSENFALSE; } } private function MaxSize($files){ if($files['datei']['size'] > self::max_size) { $this->error = 1; $this->meldung = PICUPLOADMAXSIZE; } } private function ErrorFiles($files){ if(function_exists('exif_imagetype')) { $detected_type = exif_imagetype($files['datei']['tmp_name']); if(!in_array($detected_type, self::allowed_types)) { $this->error = 1; $this->meldung = PICUPLOADERRORFILES; } } } private function CheckExist(){ if($this->db->num_rows("SELECT id FROM ". PREFIX . CHATP ." WHERE kurz = '". $this->post['kurz'] ."' ") != 0){ $this->error = 1; $this->meldung = CHATSMILEYKURZEXIST; } } public function SmileyUpload($post,$files){ $this->make_array($post); $this->filename = pathinfo($files['datei']['name'], PATHINFO_FILENAME); $this->extension = strtolower(pathinfo($files['datei']['name'], PATHINFO_EXTENSION)); $this->CheckExist(); if($this->error == 0) $this->CheckDateiendung(); if($this->error == 0) $this->MaxSize($files); if($this->error == 0) $this->ErrorFiles($files); if($this->error == 0){ $new_path = $_SERVER['DOCUMENT_ROOT'].'/'.self::upload_folder . $this->filename .'.'.$this->extension; move_uploaded_file($files['datei']['tmp_name'], $new_path); $this->db->insert(PREFIX . CHATP , array("kurz" => $this->post['kurz'], "pic" => $this->filename .'.'.$this->extension)); $this->meldung = CHATSMILEYUPLOADTRUE; } meldung($this->error,$this->meldung); } public function SmileyAnsicht(){ $aus = '<div class="row" style="max-height:500px; overflow:auto">'; foreach($this->db->get_results("SELECT * FROM ". PREFIX . CHATP ." ") AS $res){ $aus .= ' <div class="col"> <form method="post" action=""> <input type="hidden" name="id" value="'. $res->id .'"> <img src="'. IMGtoBase64 ( $res->pic, 'chat' ) .'"><br> <small>'. $res->kurz .'</small><br> <input type="submit" name="run[SmileyDelete]" value="Löschen" class="btn btn-danger btn-sm"> </form> </div> '; } $aus .= '</div>'; return $aus; } public function SmileyDelete($post){ $this->make_array($post); $row = $this->db->get_row("SELECT pic FROM ". PREFIX . CHATP ." WHERE id = '". $this->post['id'] ."' "); if($this->db->delete(PREFIX . CHATP, array("id" => $this->post['id'])) == true){ $this->meldung = SMILEYDELETETRUE; unlink($_SERVER['DOCUMENT_ROOT'].'/images/chat/'. $row[0]); }else{ $this->error = 1; $this->meldung = SMILEYDELETEFALSE; } meldung($this->error,$this->meldung); } }