Jump to content

Rodrigo5468

Members
  • Content count

    162
  • Joined

  • Last visited

Community Reputation

0 Comum

1 Follower

About Rodrigo5468

Recent Profile Visitors

784 profile views
  1. Rodrigo5468

    Youtube e MP4

    Eu tentei usar esse código, mas eu não consigo fazer ele funcionar. Você pode me ajudar com isso? Os códigos são: CÓDIGO 01 - EXEMPLO <?php //Qual URL do YouTube foi fornecida para nós? $url = (string) @$_GET['url']; /** * Defina uma função para extrair um ID de vídeo do YouTube de um URL. * * @param string $url Uma URL de vídeo do YouTube * @return mixed Se for bem-sucedido, retornará uma string. Se falhar, retornará NULL **/ function getYouTubeVideoIdFromUrl($url) { preg_match( "/^(?:http(?:s)?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?v(?:i)?=|(?:embed|v|vi|user)\/))([^\?&\"'>]+)/", $url, $matches ); //Se esta correspondência existe. if(sizeof($matches) >= 2 && strlen($matches[1])) { return $matches[1]; } //Não encontramos nada, ops... return NULL; } /** * Define a function to extract a YouTube encoded stream URL. * * @param array $streams Uma série de streams fornecida a nós na página "get_video_info" do YouTube. * @return mixed Se for bem-sucedido, retornará o URL do stream MP4. Se falhar, retornará NULL */ function getMP4FromEncodedStream($streams) { foreach($streams as $stream) { //Decodifique os dados deste fluxo. parse_str($stream, $data); //Se encontrarmos nossa fonte de stream MP4. if(stripos($data['type'], 'video/mp4') === 0) { return $data['url']; } } //Não encontramos nada, ops... return NULL; } //Iremos tentar validar o seu pedido. try { //Se uma URL do YouTube fornecida for inválida. if(($videoId = getYouTubeVideoIdFromUrl($url)) === NULL) { throw new Exception('Uma URL de vídeo do YouTube inválido foi fornecido.'); } //Recupere todas as informações pertencentes a este vídeo; mais especificamente, estamos procurando os streams de vídeo codificados. parse_str(file_get_contents('http://youtube.com/get_video_info?video_id=' . $videoId), $videoData); //Se houver um problema ao extrair informações. if(@$videoData['status'] == 'fail') { throw new Exception( $videoData['reason'] ); } //Fomos capazes de localizar um stream codificado no formato MP4? if(($streamUrl = getMP4FromEncodedStream(explode(',', $videoData['url_encoded_fmt_stream_map']))) === NULL) { throw new Exception('Nenhuma fonte de vídeo MP4 foi localizada.'); } //Onde estaremos salvando este vídeo? $saveAs = dirname(__FILE__) . '/' . $videoId . '.mp4'; //Tente abrir o URL do stream de vídeo codificado. if($read = @fopen($streamUrl, 'r')) { //Abra o arquivo no qual deseja salvar. $write = @fopen($saveAs, 'w'); //Grave o fluxo em seu arquivo. $streamReturn = stream_copy_to_stream($read, $write); //Feche nossos arquivos. @fclose($read); @fclose($write); //Se não foi possível copiar do stream. if($streamReturn === false) { throw new Exception('Não foi possível copiar isso do stream.'); } } //Se nosso novo arquivo não existir, temos um problema. if(!@file_exists($saveAs)) { throw new Exception('Encontramos um problema ao salvar este vídeo.'); } //Tudo salvo corretamente, informaremos que podem ver o arquivo. print 'Seu vídeo <strong>' . $videoId . '</strong> foi salvo em <strong>' . $saveAs . '</strong>'; } //Se algo desse errado. catch(Exception $e) { print '<strong>Ops, parece que ocorreu um erro:</strong> ' . $e->getMessage(); } CÓDIGO 02 - EXEMPLO <?php $_GET['vid'] = 'VIDEOID'; $vid = $_GET['vid'];//O ID DO VÍDEO DO YOUTUBE parse_str(file_get_contents("http://youtube.com/get_video_info?video_id=" . $vid), $info);//Decodificar os dados $videoData = json_decode($info['player_response'], true); $videoDetails = $videoData['videoDetails']; $streamingData = $videoData['streamingData']; $streamingDataFormats = $streamingData['formats']; //Definir o título do vídeo $video_title = $videoDetails["title"]; print_r($streamingDataFormats[1]['url']); $video = $streamingDataFormats[1]['url']; file_put_contents("video-title-name.mp4", fopen($video, 'r')); echo 'Download do vídeo do Youtube concluído! Agora verifique o arquivo.'; Nenhum desses código funcionam.
  2. Rodrigo5468

    Youtube e MP4

    Olá, boa tarde! Eu estava procurando na internet, mas não obtive nenhum resultado significativo. Eu preciso de um script em php que converte os links do youtube para o formato .mp4. Como que eu posso fazer isso? Alguma dica? Quero que quando o usuário informa o link do youtube no input e clica no botão de converter baixe o vídeo e faz a conversão para .mp4 e fornece para o usuário o link convertido para .mp4. Obrigado desde já.
  3. Rodrigo5468

    Site totalmente branco

    Olá, tudo bem? Espero que sim. Eu seguir esse tutorial e essa atualização para conseguir o código final. Mas o meu site fica totalmente, não exibe absolutamente nada. Eu venho aqui recorrer a vocês, pois lá não irei ter nenhum tipo de suporte. Por favor, quem for me auxiliar com esse pequeno problema, leia o tópico do tutorial. Mas o Fruition é um script para personalizar o domínio utilizando o Notion. /* CONFIGURATION STARTS HERE */ /* Step 1: enter your domain name like fruitionsite.com */ const MY_DOMAIN = 'DOMINIO'; /* * Step 2: enter your URL slug to page ID mapping * The key on the left is the slug (without the slash) * The value on the right is the Notion page ID */ const SLUG_TO_PAGE = { '': 'CODIGO_DA_PÁGINA_PÚBLICA_DO_NOTION' }; /* Step 3: enter your page title and description for SEO purposes */ const PAGE_TITLE = ''; const PAGE_DESCRIPTION = ''; /* Step 4: enter a Google Font name, you can choose from https://fonts.google.com */ const GOOGLE_FONT = ''; /* Step 5: enter any custom scripts you'd like */ const CUSTOM_SCRIPT = ``; /* CONFIGURATION ENDS HERE */ const PAGE_TO_SLUG = {}; const slugs = []; const pages = []; Object.keys(SLUG_TO_PAGE).forEach(slug => { const page = SLUG_TO_PAGE[slug]; slugs.push(slug); pages.push(page); PAGE_TO_SLUG[page] = slug; }); addEventListener("fetch", event => { event.respondWith(fetchAndApply(event.request)); }); function generateSitemap() { let sitemap = '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">'; slugs.forEach( (slug) => (sitemap += "<url><loc>https://" + MY_DOMAIN + "/" + slug + "</loc></url>") ); sitemap += "</urlset>"; return sitemap; } const corsHeaders = { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, HEAD, POST, PUT, OPTIONS", "Access-Control-Allow-Headers": "Content-Type" }; function handleOptions(request) { if ( request.headers.get("Origin") !== null && request.headers.get("Access-Control-Request-Method") !== null && request.headers.get("Access-Control-Request-Headers") !== null ) { // Handle CORS pre-flight request. return new Response(null, { headers: corsHeaders }); } else { // Handle standard OPTIONS request. return new Response(null, { headers: { Allow: "GET, HEAD, POST, PUT, OPTIONS" } }); } } async function fetchAndApply(request) { if (request.method === "OPTIONS") { return handleOptions(request); } let url = new URL(request.url); url.hostname = 'www.notion.so'; if (url.pathname === "/robots.txt") { return new Response("Sitemap: https://" + MY_DOMAIN + "/sitemap.xml"); } if (url.pathname === "/sitemap.xml") { let response = new Response(generateSitemap()); response.headers.set("content-type", "application/xml"); return response; } let response; if (url.pathname.startsWith("/app") && url.pathname.endsWith("js")) { response = await fetch(url.toString()); let body = await response.text(); response = new Response( body .replace(/www.notion.so/g, MY_DOMAIN) .replace(/notion.so/g, MY_DOMAIN), response ); response.headers.set("Content-Type", "application/x-javascript"); return response; } else if (url.pathname.startsWith("/api")) { // Forward API response = await fetch(url.toString(), { body: request.body, headers: { "content-type": "application/json;charset=UTF-8", "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.163 Safari/537.36" }, method: "POST" }); response = new Response(response.body, response); response.headers.set("Access-Control-Allow-Origin", "*"); return response; } else if (slugs.indexOf(url.pathname.slice(1)) > -1) { const pageId = SLUG_TO_PAGE[url.pathname.slice(1)]; return Response.redirect("https://" + MY_DOMAIN + "/" + pageId, 301); } else { response = await fetch(url.toString(), { body: request.body, headers: request.headers, method: request.method }); response = new Response(response.body, response); response.headers.delete("Content-Security-Policy"); response.headers.delete("X-Content-Security-Policy"); } return appendJavascript(response, SLUG_TO_PAGE); } class MetaRewriter { element(element) { if (PAGE_TITLE !== "") { if ( element.getAttribute("property") === "og:title" || element.getAttribute("name") === "twitter:title" ) { element.setAttribute("content", PAGE_TITLE); } if (element.tagName === "title") { element.setInnerContent(PAGE_TITLE); } } if (PAGE_DESCRIPTION !== "") { if ( element.getAttribute("name") === "description" || element.getAttribute("property") === "og:description" || element.getAttribute("name") === "twitter:description" ) { element.setAttribute("content", PAGE_DESCRIPTION); } } if ( element.getAttribute("property") === "og:url" || element.getAttribute("name") === "twitter:url" ) { element.setAttribute("content", MY_DOMAIN); } if (element.getAttribute("name") === "apple-itunes-app") { element.remove(); } } } class HeadRewriter { element(element) { if (GOOGLE_FONT !== "") { element.append( `<link href='https://fonts.googleapis.com/css?family=${GOOGLE_FONT.replace(' ', '+')}:Regular,Bold,Italic&display=swap' rel='stylesheet'> <style>* { font-family: "${GOOGLE_FONT}" !important; }</style>`, { html: true } ); } element.append( `<style> div.notion-topbar > div > div:nth-child(3) { display: none !important; } div.notion-topbar > div > div:nth-child(4) { display: none !important; } div.notion-topbar > div > div:nth-child(5) { display: none !important; } div.notion-topbar > div > div:nth-child(6) { display: none !important; } div.notion-topbar-mobile > div:nth-child(3) { display: none !important; } div.notion-topbar-mobile > div:nth-child(4) { display: none !important; } div.notion-topbar > div > div:nth-child(1n).toggle-mode { display: block !important; } div.notion-topbar-mobile > div:nth-child(1n).toggle-mode { display: block !important; } </style>`, { html: true } ); } } class BodyRewriter { constructor(SLUG_TO_PAGE) { this.SLUG_TO_PAGE = SLUG_TO_PAGE; } element(element) { element.append( `<script> const SLUG_TO_PAGE = ${JSON.stringify(this.SLUG_TO_PAGE)}; const PAGE_TO_SLUG = {}; const slugs = []; const pages = []; const el = document.createElement('div'); let redirected = false; Object.keys(SLUG_TO_PAGE).forEach(slug => { const page = SLUG_TO_PAGE[slug]; slugs.push(slug); pages.push(page); PAGE_TO_SLUG[page] = slug; }); function getPage() { return location.pathname.slice(-32); } function getSlug() { return location.pathname.slice(1); } function updateSlug() { const slug = PAGE_TO_SLUG[getPage()]; if (slug != null) { history.replaceState(history.state, '', '/' + slug); } } function onDark() { el.innerHTML = '<div title="Change to Light Mode" style="margin-left: auto; margin-right: 14px; min-width: 0px;"><div role="button" tabindex="0" style="user-select: none; transition: background 120ms ease-in 0s; cursor: pointer; border-radius: 44px;"><div style="display: flex; flex-shrink: 0; height: 14px; width: 26px; border-radius: 44px; padding: 2px; box-sizing: content-box; background: rgb(46, 170, 220); transition: background 200ms ease 0s, box-shadow 200ms ease 0s;"><div style="width: 14px; height: 14px; border-radius: 44px; background: white; transition: transform 200ms ease-out 0s, background 200ms ease-out 0s; transform: translateX(12px) translateY(0px);"></div></div></div></div>'; document.body.classList.add('dark'); __console.environment.ThemeStore.setState({ mode: 'dark' }); }; function onLight() { el.innerHTML = '<div title="Change to Dark Mode" style="margin-left: auto; margin-right: 14px; min-width: 0px;"><div role="button" tabindex="0" style="user-select: none; transition: background 120ms ease-in 0s; cursor: pointer; border-radius: 44px;"><div style="display: flex; flex-shrink: 0; height: 14px; width: 26px; border-radius: 44px; padding: 2px; box-sizing: content-box; background: rgba(135, 131, 120, 0.3); transition: background 200ms ease 0s, box-shadow 200ms ease 0s;"><div style="width: 14px; height: 14px; border-radius: 44px; background: white; transition: transform 200ms ease-out 0s, background 200ms ease-out 0s; transform: translateX(0px) translateY(0px);"></div></div></div></div>'; document.body.classList.remove('dark'); __console.environment.ThemeStore.setState({ mode: 'light' }); } function toggle() { if (document.body.classList.contains('dark')) { onLight(); } else { onDark(); } } function addDarkModeButton(device) { const nav = device === 'web' ? document.querySelector('.notion-topbar').firstChild : document.querySelector('.notion-topbar-mobile'); el.className = 'toggle-mode'; el.addEventListener('click', toggle); nav.appendChild(el); onLight(); } const observer = new MutationObserver(function() { if (redirected) return; const nav = document.querySelector('.notion-topbar'); const mobileNav = document.querySelector('.notion-topbar-mobile'); if (nav && nav.firstChild && nav.firstChild.firstChild || mobileNav && mobileNav.firstChild) { redirected = true; updateSlug(); addDarkModeButton(nav ? 'web' : 'mobile'); const onpopstate = window.onpopstate; window.onpopstate = function() { if (slugs.includes(getSlug())) { const page = SLUG_TO_PAGE[getSlug()]; if (page) { history.replaceState(history.state, 'bypass', '/' + page); } } onpopstate.apply(this, [].slice.call(arguments)); updateSlug(); }; } }); observer.observe(document.querySelector('#notion-app'), { childList: true, subtree: true, }); const replaceState = window.history.replaceState; window.history.replaceState = function(state) { if (arguments[1] !== 'bypass' && slugs.includes(getSlug())) return; return replaceState.apply(window.history, arguments); }; const pushState = window.history.pushState; window.history.pushState = function(state) { const dest = new URL(location.protocol + location.host + arguments[2]); const id = dest.pathname.slice(-32); if (pages.includes(id)) { arguments[2] = '/' + PAGE_TO_SLUG[id]; } return pushState.apply(window.history, arguments); }; const open = window.XMLHttpRequest.prototype.open; window.XMLHttpRequest.prototype.open = function() { arguments[1] = arguments[1].replace('${MY_DOMAIN}', 'www.notion.so'); return open.apply(this, [].slice.call(arguments)); }; </script>${CUSTOM_SCRIPT}`, { html: true } ); } } async function appendJavascript(res, SLUG_TO_PAGE) { return new HTMLRewriter() .on("title", new MetaRewriter()) .on("meta", new MetaRewriter()) .on("head", new HeadRewriter()) .on("body", new BodyRewriter(SLUG_TO_PAGE)) .transform(res); } Tem alguma coisa de errado?
  4. Rodrigo5468

    Notion para Web

    Olá, boa noite à todos! Estava procurando algum fremework de wiki e pude encontrar algo bem interessante em minhas pesquisas pelo Google. Eu encontrei o Notion, mas eu não pude compreender muito bem sobre ele. Eu sei que é possível eu deixar o Notion acessível para todos em minha hospedagem, como por exemplo: wiki.meudomínio.com — utilizando o Notion. Mas eu não sei como que eu posso fazer isso, então resolvi pedi ajuda de vocês. Se alguém puder me ajudar com isso, ficarei imensamente grato.
  5. Rodrigo5468

    Mostrar Resultados sem Repetir Dados

    Olá, bom dia. Obrigado a todos por responderem, mas será que poderiam me dá mais um auxilio? Eu li todo o tópico que o nosso amigo 'Williams Duarte' me informou e tentei utiliza-lo de inúmeras maneiras, mas sem sucesso. Adicionei o GROUP BY SUM(c.houseMoney) antes do ORDER BY, mas sem sucesso. Será que poderia me dá um exemplo, utilizando a minha Query? Muito obrigado a todos!
  6. Rodrigo5468

    Mostrar Resultados sem Repetir Dados

    Olá a todos(as), boa tarde! Tenho uma Query e um pequeno código em PHP para mostrar os resultados em uma tabela, mas estão repetindo os resultados da Query. Gostaria de uma solução, ou uma gambiarra para isso. Query SELECT DISTINCT b.ID AS "ID", b.Character AS "Personagem", b.Money AS "DinMao", b.BankMoney AS "DinBanco", b.Savings2 AS "DinPoupa", c.houseOwner AS "IDono", SUM(c.houseMoney) AS "DinCasa" FROM characters b INNER JOIN houses c ON (b.ID = c.houseOwner) ORDER BY ((b.Money+b.BankMoney+b.Savings2+c.houseMoney)) DESC LIMIT 0, 1000 PHP if(mysqli_num_rows($q) > 0) { while($r = $q->fetch_assoc()) { //Código da Tabela } } Observação: Quando eu removo a seguinte parte da minha Query que é: SUM(c.houseMoney) AS "DinCasa" e deixo assim: c.houseMoney AS "DinCasa" Os dados da minha tabela repetem, não sei o motivo e/ou a circunstância disso. Mas peço a ajuda de vocês para solucionar. Vale ressaltar que (ID e houseOwner) tem os mesmos valores, só o valor da casa que recebe o valor do ID, e ele pode ter quantas casa ele quiser, e se ele tiver cinco casas, mostrará o resultado cinco resultados na minha tabela, como posso resolver isso? Meu muito obrigado desde já.
  7. Rodrigo5468

    Validação em PDO OOP

    Olá! Fiz algumas alterações no código, e decidir remover o validaCadastro.php, não sei se agir de maneira correta, mas vamos lá. Register.php <?php require_once (__DIR__."\Crud.php"); final class Registers extends Crud { protected $table = "accounts"; private $erros; private $username; private $email; private $password; public function erros() { return $this->erros; } /*MÉTODOS SET*/ public function setUsername($username) { if(!isset($username)) { $this->erros[] = "Ops! não temos a string para prosseguir."; return true; }elseif(empty($username)) { $this->erros[] = "O campo usuário não pode ser vázio."; return true; }elseif(strlen($username) < 3) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; return true; }elseif(strlen($username) > 15) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; return true; }elseif(!preg_match('/^([a-zA-Z0-9]+)$/i', $username)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; return true; }else { $this->username = $username; } } public function setEmail($email) { $this->email = $email; } public function setPassword($password) { if(!empty($password)) { $options = [ "cost" => 11, ]; $this->password = password_hash($password, PASSWORD_BCRYPT, $options); if(password_verify($password, $this->password)) { return true; } } return false; } /*FUNÇÕES*/ public function insert() { $sql = "INSERT INTO $this->table (username, email, password) VALUES (:username, :email, :password)"; $stmt = Database::prepare($sql); $stmt->bindParam(":username", $this->username); $stmt->bindParam(":email", $this->email); $stmt->bindParam(":password", $this->password); return $stmt->execute(); } public function update($id) { $sql = "UPDATE $this->table SET username = :username, email = :email, password = :password WHERE id = :id"; $stmt = Database::prepare($sql); $stmt->bindParam(":username", $this->username); $stmt->bindParam(":email", $this->email); $stmt->bindParam(":password", $this->password); $stmt->bindParam(":id", $id); return $stmt->execute(); } } index.php <?php $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; if($register->setUsername(isset($username) ? $username : null)) { echo $register->erros(); }else { $var_dump = var_dump($username); echo $var_dump; } $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } ?> Só que o código não está funcionando como deveria, poderia me dizer, o quê tem de errado?
  8. Rodrigo5468

    Validação em PDO OOP

    Opa, mano tá dando certo, mas peço que tenha mais um pouco de paciência comigo. <?php class ValidaCadastro { private $dados; private $erros = []; public function __construct(array $dados) { $this->validaUsername($dados['username']); } public function erros() { return $this->erros; } public function validaUsername() { if(empty($username)) { $this->erros[] = "O campo usuário não pode ser vázio."; }elseif(ctype_space($username)) { $this->erros[] = "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($username) < 3) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($username) > 15) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $username == 0)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($username !== 0) { $this->erros[] = "O nome de usuário já está cadastrado em nossos bancos de dados."; } } } Fiz as alterações, mas está dando erro, já tentei alterar para $this->dados = $username; Entre diversas outras maneiras, mas não foi. Obrigado por tudo!
  9. Rodrigo5468

    Validação em PDO OOP

    Olá! Fiz o quê você me pediu, aliás, tentei fazer, mas acho que não deu muito certo. ValidaCadastro.php <?php require_once (__DIR__."\Registers.php"); class ValidaCadastro extends Registers { private $dados; private $erros = []; public function __construct($dados) { $this->validaUsername($this->username); } public function erros() { return $this->erros; } public function validaUsername() { if(empty($_POST["username"])) { $this->erros[] = "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { $this->erros[] = "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { $this->erros[] = "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { $this->erros[] = "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { $this->erros[] = "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { $this->erros[] = "O nome de usuário já está cadastrado em nossos bancos de dados."; } } } E no index.php <?php $validaCadastro = new ValidaCadastro($_POST["cadastrar"]); if($erros = $validaCadastro->erros()) { foreach ($erros as $erro) { echo $erro; } return; } $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } ?> O quê eu tenho que fazer exatamente, poderia me dá mais detalhes por favor. OBRIGADOOO!!!
  10. Rodrigo5468

    Validação em PDO OOP

    Boa tarde a todos. Estou desenvolvendo um sistema de registro para fins de estudos, mas tenho algumas dúvidas e dificuldades até. Estou usando "programação orientada a objetos", e quero validar alguns campos do meu registro, se puderem me auxiliar, será de grande ajuda. Meu Diretório: Projeto1/ ├── backend/ │ ├── classes/ │ │ ├── Register.php ├── index.php Em Register.php tenho o seguinte código para fazer a validação, mas acredito que estou fazendo algo de errado. public function setUsername($username) { $sql = "SELECT * FROM $this->table WHERE username = :username"; $stmt = Database::prepare($sql); $stmt->execute(array('username' => $_POST["username"])); if(empty($_POST["username"])) { return "O campo usuário não pode ser vázio."; }elseif(ctype_space($_POST["username"])) { return "Não pode usar apenas espaços no campo de usuário."; }elseif(strlen($_POST["username"] < 3)) { return "É necessário no mínimo 3 (três) caracteres no usuário."; }elseif(strlen($_POST["username"] > 15)) { return "O máximo é de 15 (quinze) caracteres no usuário."; }elseif(preg_match("/^[a-zA-Z0-9]*$/", $_POST["username"] == 0)) { return "O nome de usuário só pode conter letras e números. (sem espaços e sem caracteres epeciais)"; }elseif($stmt->num_rows !== 0) { return "O nome de usuário já está cadastrado em nossos bancos de dados."; }else { $this->username = $username; } } E no index.php tenho o seguinte código, acredito que está certo, mas eu gostaria de mostrar as mensagens de erros que estão no Register.php, como que posso fazer isso? $register = new Registers(); if(isset($_POST["cadastrar"])) { $username = $_POST["username"]; $email = $_POST["email"]; $password = $_POST["password"]; $register->setUsername($username); $register->setEmail($email); $register->setPassword($password); if($register->insert()) { return "Usuário cadastrado com sucesso."; } } Obrigado pela atenção!
  11. Rodrigo5468

    Canvas com PHP

    Melhor dizendo, eu quero fazer assim: Ao abrir tal página irá aparecer a imagem do mapa, e quando autenticar como administrador ele poderá marcar pontos no mapa "polygon". Inserindo alguns dados, como, nome da empresa, logotipo, descrição, cor, etc, queria puder definir isso. E quando clicar em salvar, salvar no banco de dados ou gerar um .json. Espero suas ajudas.
  12. Rodrigo5468

    Canvas com PHP

    Gostaria de saber como eu posso fazer um script, quero que o script funcione mais ou menos assim. Vou colocar a imagem salva do google maps, após autenticar no sistema o administrador poderá criar pontos naquela imagem, criando uma área sob o mapa. Como que eu posso fazer isso e guardar os dados?
  13. Rodrigo5468

    Fechar e Abrir Compra

    Boa tarde. Tá, vamos lá, deixe-me ver se eu entendi. Devo criar uma tabela no meu banco dados ou uma coluna em uma tabela já existe, para verificar se o valor é fechado ou aberto? Outra dúvida que surgiu no meio do caminho. Quando duas ou mais pessoas acessem a página de compra com 499 pedidos sendo enviados, eles conseguem comprar, suponhamos que apenas duas pessoas acessem essa página com 499 pedidos e, eles resolvem comprar um produto. Teremos então 501 pedidos. Como posso consertar isso? Meu muito obrigado fica desde já.
  14. Rodrigo5468

    Fechar e Abrir Compra

    Não entendo muito disso, e aparentemente é meio complexo. Não tem uma maneira mais fácil não? Estou estudando o semáforo. Mas se existir outras maneiras, por favor, me informe.
  15. Rodrigo5468

    Fechar e Abrir Compra

    Boa tarde a todos. $q = SQLQuery("SELECT count(*) as total FROM apps2 WHERE Status='1'"); $pedidos = SQLQuery("SELECT count(*) as total FROM pedidos2 WHERE Status='2'"); $mostrar = $pedidos->fetch_assoc()["total"]; Eu quero fazer uma aplicação com PHP assim. Quando tiver 500 pedidos ninguém mais poderá comprar enquanto os pedidos não forem zerados. Eu fiz assim: <?php if($mostrar >= 500) { echo $erro; }else { //CODE } Então, teoricamente quando um pedido for enviado e a lista de pedidos2 forem para 499 alguém poderá comprar outro produto até chegar em 500. Mas eu não quero isso, eu quero que quando o pedidos2 chegar em 500 fecha a compra e, só libera quando todos os pedidos forem enviados. Como posso fazer isso? Obrigado!
×

Important Information

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