Jump to content

TheNight

Members
  • Content count

    63
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by TheNight

  1. TheNight

    File size com move_uploaded_file

    Olá pessoal, estou com dúvida quanto a adicionar verificação de file size nesta class, alguém poderia como me dar uma ajuda? Fiz esta classe mas acabei que ficar sem lógica ou não me programei antes de começar a montar a classe: <?php class Upload { private $_supportedFormats = ['image/jpg', 'image/jpeg', 'image/png']; private function encryption($str) { return md5($str); } private function verify_file($file) { if (is_array($file)) { return true; } else { return false; } } private function verify_format($file) { if ($this->verify_file($file)) { if (in_array($file['type'], $this->_supportedFormats)) { return true; } } else { return false; } } public function upload_file($file) { if ($this->verify_format($file)) { move_uploaded_file($file['tmp_name'], FOLDER_UPLOADS . '/' . $this->encryption($file['name']) . '.' . pathinfo($file['name'],PATHINFO_EXTENSION)); return true; } else { return false; } } }
  2. TheNight

    File size com move_uploaded_file

    Ok, eu já sabia só estava sem lógica, então criei um método para verificar o size, vou tentar adapta-lo para printar uma mensagem quando o tamanho for excedido: <?php class Upload { private $_supportedFormats = ['image/jpg', 'image/jpeg', 'image/png']; private function encryption($str) { return md5($str); } private function verify_file($file) { if (is_array($file)) { return true; } else { return false; } } private function verify_format($file) { if ($this->verify_file($file)) { if (in_array($file['type'], $this->_supportedFormats)) { return true; } } else { return false; } } private function verify_size($file) { $file_size = $file['size']; if ($file_size > 2097152) { return false; } else { return true; } } public function upload_file($file) { if ($this->verify_format($file)) { if ($this->verify_size($file)) { move_uploaded_file($file['tmp_name'], FOLDER_UPLOADS . '/' . $this->encryption($file['name']) . '.' . pathinfo($file['name'],PATHINFO_EXTENSION)); } else { return false; } return true; } else { return false; } } }
  3. Olá iMasters, eu estava parado com programação mas agora eu estou aprendendo(ainda) sobre MVC Design Patterns, não quero fazer uso de Frameworks já que é para aprendizagem e entendimento. Gostaria de adicionar um controlador de erro caso o controller ou a action(método) não exista, mas estou a duas horas quebrando a cabeça com este código. Alguém poderia me ajudar? <?phpclass Start{ private $_controller; private $_action; private $_params = array(); public function __construct() { $this->parse(); $path = './app/controllers/' . ucfirst($this->_controller) . '.php'; if (file_exists($path)) { require_once $path; $this->_controller = new $this->_controller(); if ($this->_params[2]) { $this->_controller->{$this->_action}($this->_params[0], $this->_params[1], $this->_params[2]); } elseif ($this->_params[1]) { $this->_controller->{$this->_action}($this->_params[0], $this->_params[1]); } elseif ($this->_params[0]) { $this->_controller->{$this->_action}($this->_params[0]); } else { //aqui seria o controller de erro, mas não da certo $this->error(); } } else { //acho que aqui também viria o controller de erro, mas também não da certo. $this->error(); } } private function parse() { $url = (isset($_GET['url'])) ? $_GET['url'] : null; $url = array_filter(explode('/', $url, FILTER_SANITIZE_URL)); $this->_controller = (isset($url[0])) ? $url[0] : null; $this->_action = (isset($url[1])) ? $url[1] : null; $this->_params[0] = (isset($url[2])) ? $url[2] : null; $this->_params[1] = (isset($url[3])) ? $url[3] : null; $this->_params[2] = (isset($url[4])) ? $url[4] : null; // var_dump($this->_controller); // var_dump($this->_action); // var_dump($this->_params); } private function error() { require_once './app/controllers/Error.php'; $error = new Error(); $error->index(); }} Alguém ?
  4. TheNight

    Confirmação de Formulario

    tente usar isso no seu button: <button type="submit" onclick="return confirm('Deseja mesmo enviar o formulário?');">Enviar</button> Troque a mensagem pela qual quiseres.
  5. Olá comunidade iMasters, estou com um sério problema, o pessoal do Stack Over Flow não soube me responder, então estou recorrendo a este fórum... Preciso do seguinte, ao executar este código abaixo, só está funcionando com o dropdown, os links normais não funcionam, como posso proceder para resolver ? Obs: Como retornar um erro 404 por javascript? Aguardo respostas. Veja: $(function() { $("#loading").hide(); $("ul ul a").click(function() { page = "template/pages/"+$(this).attr('href') $("#loading").ajaxStart(function() { $(this).show(); }); $("#loading").ajaxStop(function() { $(this).hide(); }); $("#main").load(page) return false; }); }); Está aqui o meu html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Título</title> <link href="template/assets/css/bootstrap.min.css" rel="stylesheet"> <link href="template/assets/css/custom.css" rel="stylesheet"> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <nav class="navbar navbar-inverse navbar-fixed-top"> <div class="container"> <div class="navbar-header"> <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse-1" aria-expanded="false"> <span class="sr-only">Toggle navigation</span> <span class="icon-bar"></span> <span class="icon-bar"></span> <span class="icon-bar"></span> </button> <a class="navbar-brand" href="#">Título</a> </div> <div class="collapse navbar-collapse" id="navbar-collapse-1"> <ul class="nav navbar-nav navbar-right"> <li> <a href="meus-tickets.php">sadfasdf</a> </li> <li class="dropdown"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false"> <i class="glyphicon glyphicon-user"></i> <span class="caret"></span> </a> <ul class="dropdown-menu"> <li><a href="#"><i class="glyphicon glyphicon-edit"></i> Editar perfil</a></li> <li><a href="novo-ticket.php"><i class="glyphicon glyphicon-open"></i> Submeter um ticket</a></li> <li role="separator" class="divider"></li> <li><a href="#"><i class="glyphicon glyphicon-log-out"></i> Sair</a></li> </ul> </li> </ul> </div> </div> </nav> <section id="main" class="section-main"> <img src="template/assets/images/icons/load.gif" id="loading"> <?php include("./template/pages/meus-tickets.php"); ?> </section> <footer class="footer"> <div class="container"> <p class="text-muted">Título © 2016</p> </div> </footer> <script src="template/assets/js/jquery.min.js"></script> <script src="template/assets/js/bootstrap.min.js"></script> <script src="template/assets/js/ajax.js"></script> </body> </html>
  6. TheNight

    Pegar foto por usuário.

    Estou a desenvolver um sistema de postagem, e preciso listar todos os membros com suas respectivas fotos, como posso fazer isso utilizando PDO ? Da ultima vez, eu consegui exibir a imagem que estava em uma pasta com o mesmo nome armazenado no banco de dados, porém todas as contas estavam usando a mesma foto, exemplo: Estava pegando a foto do usuário que estava logado na $_SESSION, e jogando para todos os perfis. Eu desmanchei todo meu código e estou a desenvolver novamente, mas antes preciso me informar como. Preciso de ajuda...
  7. TheNight

    Form de login com MVC, Correto?

    Resolvido, mas se alguém ainda quiser responder ^^
  8. TheNight

    Form de login com MVC, Correto?

    Salve rapaze!!! Seguinte, agora que **Entendi + ou - o conceito do MVC, parti para um formulário de login** Estou com uma dúvida, preciso que quem for responder esclareça o máximo o possível, pois ainda sou um bebezão com MVC :( Vamos lá, vou colocar código por código e explicar o que cada um faz.... loginController.php Este apenas chama o meu controller e a minha action (enter) veja o código pra entender melhor: minha url fica assim: http://localhost/mvc/login, Obs: é chamada apenas se o formulário for válidado class Login extends Controller { public function __construct() { parent::__construct(); } public function index() { $this->view->title = 'Nome da Web - login'; $this->view->render('login/inc/header'); $this->view->render('login/index'); $this->view->render('login/inc/footer'); } public function enter() { $this->model->run(); } } login_model.php é o metodo chamado dentro do método enter no controlador Tem como objetivo válidar o formulário gravando erros em uma sessão, veja que meu método session_get_error() é acionado apenas se houver campos vazio. class Login_Model extends Model { public function __construct() { parent::__construct(); } public function run() { if (empty($_POST['log_Username'])) { $this->session_get_error('Nome não pode ficar vazio'); } elseif (empty($_POST['log_Password'])) { $this->session_get_error('Senha não pode ficar vazio'); } else { echo 'logado com sucesso'; } } private function session_get_error($msg) { session_start(); $_SESSION['error'] = $msg; header("Location: ../login"); } } index.php (minha view) <?php session_start(); ?> <form action="login/enter" method="POST"> <label>Username:</label> <input type="text" name="log_Username" class="form-input"> <br> <br> <label>Password:</label> <input type="password" name="log_Password" class="form-input"><br> <br> <button type="submit">Logar</button> </form> <?php if (isset($_SESSION['error'])) { echo $_SESSION['error']; } Como viram, estou gravando meus erros em uma session, isto é correto ou teria outra forma de válidar formulários com MVC no PHP ? Revirei tópicos aqui e nada sobre... quem puder me ajudar sou grato...
  9. TheNight

    Mvc

    Boa noite pessoal, estou com um grande problema com Models, Views e Controllers (MVC), não entra de jeito nenhum na minha cabeça, eu não quero usar Framework eu quero criar o meu próprio pelo menos pra eu entender... Alguém teria um tutorial (SIMPLES) onde eu possa, fazer um básico sistema de login? pode ser simples de tudo mesmo... Pra quem acha que eu não pesquisei, tá aqui todos os links, acessados por mim. http://www.sourcecodester.com/php/simple-php-application-demonstrates-use-mvc-pattern.html https://graeson.wordpress.com/2011/01/20/simple-blog-example-4-model-view-controller-mvc/ http://www.codeproject.com/Tips/401121/MVC-in-PHP http://php-html.net/tutorials/model-view-controller-in-php/ http://sourceforge.net/projects/mvc-php/ E muitos outros, agora os videos https://www.youtube.com/watch?v=Aw28-krO7ZM kkkk da até vergonha, ter montado um framework em PHP, ter acessados vários links e não ter entendido (desculpe a palavra mais ...) MERDA nenhuma.. Quem puder me ajudar, inclusive eu ví um daqui mesmo do i masters, porém ele usa smarty e por enquanto não quero, quero apenas entender... Grato. :lol:
  10. TheNight

    Mvc

    Bom, vamos lá, eu ainda estou estudando, ontem finalmente consegui desenvolver e entender o MVC, grato por esta imagem Então tenho o meu model, o meu view, e o meu controller, agora estou estudando como validar formulários, exemplo, login Problema agora...
  11. TheNight

    Mvc

    Algum cidadão ?
  12. isso funciona que é uma beleza! toma ! <?php function __autoload($ClassName) { if (file_exists(dirname(__DIR__) . DIRECTORY_SEPARATOR . 'modules/class' . DIRECTORY_SEPARATOR . $ClassName . '.class.php')) { require_once (dirname(__DIR__) . DIRECTORY_SEPARATOR . 'modules/class' . DIRECTORY_SEPARATOR . $ClassName . '.class.php'); } else { die('Erro ao incluir a classe <strong>' . $ClassName.'.class.php </strong>'); } } Obs: leia o código e altere os diretórios!
  13. TheNight

    My SQL Error na session e na query

    Tenho uma classe onde eu uso pra poder pegar o nome de usuário, e dentro dela tenho o método: public function getfName() { $Session = $_SESSION[$this->Prefix . 'username']; $sql = "SELECT * FROM " . DB_DBPREFIX . "$this->Table WHERE name = $Session"; try { $stmt = Conn::dbPrepare($sql); $stmt->execute(); while ($row = $stmt->fetch(PDO::FETCH_NUM, PDO::FETCH_ORI_NEXT)) { $data = $row[1]; print $data; } } catch (PDOException $e) { echo $e->getMessage(); } } Só que quando coloco a variável $Session na minha query obtenho esse erro: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'TheNight' in 'where clause'
  14. TheNight

    My SQL Error na session e na query

    kkkkk cara, por favor, não me zoe sou aprendiz, só por que vc falou isso vou jogar no lixo meu projeto e vou começar outro pq a dias estou seguindo este site http://br.phptherightway.com/ mas só agora vou por em prática, meu pai quer um site de consultoria vou faze-lo e dessa vez vou precisar de poucas ajudas pq tudo que aprendi fui anotando e agora já tenho tudo em mãos valeu! Eu consegui arrumar Com está query: $sql = "SELECT * FROM " . DB_DBPREFIX . "$this->Table WHERE username = '$Session'";
  15. TheNight

    My SQL Error na session e na query

    POG? eu achando que tava padrão tentei fazer o mais simples possível :( Isso ai é pra mim instanciar os métodos que estão no meu Conn.class.php Isso ai vem daqui : public static function dbPrepare($sql) { return self::getIntance()->prepare($sql); }
  16. TheNight

    My SQL Error na session e na query

    Williams Duarte, eu e um amigo estamos tentando, já tentando usar query e agora estamos usando prepare, os dois métodos nos retorna o mesmo erro... quando coloco assim na minha query: $sql = "SELECT * FROM " . DB_DBPREFIX . "$this->Table WHERE name = '$Session'"; Com aspas simples o erro some, porém não imprime o que eu quero na tela... PHP realmente de vez em quando é um bicho de 7 cabeças kkk, (pra quem iniciou e já foi de cara no OOP)
  17. TheNight

    Sistema de templates PHP

    Olha e aqui de novo :assobiando: Vocês vão cansar de me ver aqui pedindo ajuda HEUHUEHE. Estou tendo uma certa dificuldade com meu sistema de Templates. (Créditos do Érick Master, peguei como base o sistema dele). Bom este é meu código: <?php class Template { private $TPL_File = NULL; private $Read_File = NULL; private $Tags = array(); private $Tags_Count = 0; private static $_instance; public static function getInstance() { if (!isset($_instance)) { self::$_instance = new self(); } return self::$_instance; } public function Load($TPL_File) { $this->TPL_File = @fopen($TPL_File, "r"); if ($this->TPL_File == FALSE) { exit("<span style=\"border:1px dashed #c00; color:#c00; padding:6px; background-color:#ffebe8;\">Error: Arquivo <strong>" . $TPL_File . "</strong> não Encontrado.</span>"); } $this->Read_File = @fread($this->TPL_File, @filesize($TPL_File)); if ($this->Read_File == FALSE) { exit("<span style=\"border:1px dashed #c00; color:#c00; padding:6px; background-color:#ffebe8;\">Error: Erro na leitura do Arquivo <strong>" . $TPL_File . "</strong></span>"); } } public function Set($Tag, $Value) { $this->Tags[$this->Tags_Count++] = array( "Name" => $Tag, "Value" => $Value ); } public function Show() { global $version; foreach ($this->Tags as $TPL_Tags) { $this->Read_File = str_replace("{" . $TPL_Tags["Name"] . "}", $TPL_Tags["Value"], $this->Read_File); } eval("?>" . $this->Read_File . "<?"); } public function TPL_Modules() { if (isset($_COOKIE["Web_Template"]) == FALSE) { $Template = constant("THEME_DEFAULT"); } elseif (file_exists("themes/" . pack("H*", $_COOKIE["Web_Template"]) . "/index.tpl.php") == FALSE) { setcookie("Web_Template", NULL); $Template = constant("THEME_DEFAULT"); echo("<script>window.alert('Template Invalido, aguarde...'); window.location='?';</script>"); } else { $Template = pack("H*", $_COOKIE["Web_Template"]); } $this->Set("Template_Dir", $Template); $this->Load("themes/" . $Template . "/index.tpl.php"); if (filter_input(INPUT_GET, "tpl") == TRUE) { $Set_Template = pack("H*", $_GET["tpl"]); if ($Set_Template == "TPL_Default") { setcookie("Web_Template", NULL); echo("<script>window.location='?';</script>"); } elseif (file_exists("templates/" . $Set_Template . "/index.tpl.php") == FALSE) { setcookie("Web_Template", NULL); echo("<script>window.alert('Template Invalido, aguarde...'); window.location='?';</script>"); } else { setcookie("Web_Template", bin2hex($Set_Template), time() + (1 * 24 * 60 * 60)); exit("<script>window.location='?';</script>"); } } } public function Open() { if (isset($_COOKIE["Web_Template"]) == FALSE) { return constant("THEME_DEFAULT"); } else { return pack("H*", $_COOKIE["Web_Template"]); } } } Ele está funcionando perfeitamente, meu template é aberto como eu quero, porém estou com dificuldade de abrir as páginas com esse sistema, fiz uma outra classe General.class.php : <?php class General { public function __construct() { global $Template; $Template->Set('%title_web%', WEB_TITLE); $Template->Set('%main_content%', $this->getPages()); var_dump($Template); } public function getPages() { global $Template; switch (filter_input(INPUT_GET, 'pages')) { case 'home': $Template->Load("themes/" . $Template->Open() . "/pages/home.page.php"); break; default : $Template->Load("themes/" . $Template->Open() . "/pages/home.page.php"); break; } } } Só que não está abrindo, quando dou um var_dump na minha variável de objeto $Template recebo isso:
  18. TheNight

    Sistema de templates PHP

    Sim é que não tive lógica (não sabia por onde começar) pra montar o sistema de template, e fiz uma cópia cabulosa, mas depois eu fui me ajeitando, e retirei o uso do global, porém ainda não consegui resolver...
  19. TheNight

    Está é uma boa técnica de conexão?

    Opa, Williams Duarte, muito obrigado, acho que você consegui responder todas minhas dúvidas até este ponto, vou marcar sua resposta como resolvido, da próxima dúvida abro outro tópico, grato...
  20. TheNight

    Está é uma boa técnica de conexão?

    Bom guys, eu tinha feito uma conexão com MySQLi e então resolvi mudar. Obs: não me venham falar de PDO, pq até agora não me familiarizei com PDO ainda... class Connect extends mysqli { public $db_connection, $db_hostname, $db_username, $db_password, $db_database; public function __construct() { $this->db_hostname = DB_HOSTNAME; $this->db_username = DB_USERNAME; $this->db_password = DB_PASSWORD; $this->db_database = DB_DATABASE; $this->connectMe(); } private function connectMe() { $this->db_connection = @$this->connect($this->db_hostname, $this->db_username, $this->db_password, $this->db_database); if($this->connect_error) { die("Falha na tentativa de se conectar com o servidor: " . $this->connect_error); } } }
  21. TheNight

    Está é uma boa técnica de conexão?

    Bom, dei uma estudada mais profunda neste assunto, e cheguei a seguinte conclusão: Não preciso fazer o que eu fiz sendo que uma única class faria o mesmo ou até melhor!!! assim: class Connect { // MySQLi object instance public $mysqli = null; // Class constructor override public function __construct() { $this->mysqli = @new mysqli(DB_HOSTNAME, DB_USERNAME, DB_PASSWORD, DB_DATABASE); if ($this->mysqli->connect_error) { echo "Error MySQLi: " . $this->mysqli->connect_error; exit(); } } } Gabriel, Williams, eu estou impaciente, estou tentando escolher entre MySQLi e PDO, porém não consigo me familiarizar de jeito maneira... Vale lembrar que sou iniciante, e qualquer fonte sobre o assunto é bem vinda, sendo que eu li e relei o que vocês mandaram e eu entendi muito pouco :( Haa! e também gostaria de saber como tratar estes erro, ouvi falar que se colocar um "@" resolve igual eu fiz ali mas o sistema fica vulnerável a invasões...
  22. TheNight

    Está é uma boa técnica de conexão?

    como por exemplo ? : public static function getInstance() { if(!isset($_instance)) { self::$_instance = new self(); } return self::$_instance; } ??? ou passar private static $db_connection; etc... ?
  23. Estou com um grande problema com a função de deslogar do painel, fiz uma public function Logout() Arquivo Login.class.php: public function Logout(){ if($this->isLogged()) { unset($_SESSION[$this->prefix.['email']]); unset($_SESSION[$this->prefix.['password']]); session_destroy(); return true; } else { return false; } } E no meu arquivo panel.php está assim: session_start(); $Logins = new Logins(); if (!$Logins->isLogged()) { header("Location: ?pag=login"); } else {} if(isset($_GET['action']) == 'logout') { if($Logins->Logout()) { header("Location: ?pag=login"); } } Agora que estou tendo problemas, estou a exatamente 8 horas empacado nisso, quando clico em Logout ele volta para home.php mas a session não destrói, não acontece absolutamente nada. O que estou fazendo de errado? Obs: Meu link estás assim: <a href="?action=logout">Logout</a>
  24. TheNight

    Função de logout usando PHP PDO Orientado a objetos

    Eu estava até hoje tentando arrumar, por que eu sou assim, enquanto eu não arrumo tal coisa eu não sossego, e consegui, no meu .htaccess estava assim: RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 apenas troquei para RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !-d RewriteCond %{SCRIPT_FILENAME} !-f RewriteRule ^(.*)$ index.php?url=$1 [QSA] <- repare no QSA agora consigo passar query string com url amigável.
  25. TheNight

    Função de logout usando PHP PDO Orientado a objetos

    Troquei minha função antiga de autoload pra essa que você me passou, mas como o tópico que vc postou é antigo, nao posso restaura-lo, eu nao entendi aquele tópico!
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.