-
Total de itens
3978 -
Registro em
-
Última visita
-
Dias vencidos
47
Tudo que Williams Duarte postou
-
URGENTE !!! API do Facebook que puxe os grupos do perfil - Alguem sabe fazer ?
Williams Duarte respondeu ao tópico de MatheusFenix em PHP
Segue! Nestes sites você vai encontrar o que precisa, de forma Urgente! -
Hoje o maior consumo de conteúdos, seja para iniciantes ou intermediarios, se vem atráves de videos aulas. Se criar videos para youtube, e indexando ao seu conteudo, pode vir aumentar suas visitas e de cara ainda ganhar monetização dos vídeos. Leitura de textos, você concorre até mesmo com as documentações.
-
Já passei o exemplo acima! Isto já corrige para servidores distintos e de forma automática. Seja linux ou Windows.
-
De devidas permissoẽs a pasta. https://www.php.net/manual/pt_BR/function.chmod.php chmod ("/arquivo/diretorio", 755); Correto é os arquivos, ficar um nivel acima da public, desta forma você consegue criar uma rotina de backups, que faça até mesmo de seu sistema, se colocar em diretorios muitos especificos, começa a ter problemas.
-
Salvar dados de uma tabela html no banco de dados mysql
Williams Duarte respondeu ao tópico de emmanuelsiqueira30 em PHP
Depende! É difícil dizer qual seria a maneira mais simples com essas informações, Eu provavelmente pegaria o novo evento de linha, obtendo os dados e fazendo uma solicitação POST com ajax em uma API toda vez que uma nova linha é adicionada. Tente adicionar alguns trechos de códigos, quem sabe a comunidade, ao invés de tentar adivinhar oque está fazendo, mostre uma solução melhor, baseado no que você já fez. Porém, particularmente faria isto com vue.js, ja que é reativo. -
Utilize dirname com a constante mágica __DIR__ dirname ( string $path [, int $levels = 1 ] ) : string Primeiro parametro, é o diretorio, segundo é o nivel que deseja subir. De um print no condigo e vá ajustando a sua necessidade. Depois declare em uma variavel e use na função. echo dirname(__DIR__, 4);
-
Aconselho a usar Imagick, bem mais simples. Exemplo para criar as thumbs <?php $image = new Imagick(); $image->thumbnailImage(200, 300); $image->readImage('image.jpg'); $image->setImageFormat('jpeg'); $image->setImageCompressionQuality(85); $image->stripImage(); $image->writeImage('nova_imagem.jpg'); ?> So mova a imagem antes para o servidor $tmp_name = $_FILES["arquivo"]["tmp_name"]; $name = $_FILES["arquivo"]["name"]; move_uploaded_file($tmp_name, "fotos/$name"); Valide o mime type da imagem "Tem inumeros exemplos na net", e senão tiver erros, faça o upload. Segue uma lógica. Obs.: Não copie e cole, entenda a lógica e adapte a sua necessidade. $directory = "fotos"; if ($_FILES["pictures"]["error"] == UPLOAD_ERR_OK) { $tmp_name = $_FILES["arquivo"]["tmp_name"]; $name = $_FILES["arquivo"]["name"]; move_uploaded_file($tmp_name, "$directory/$name"); } $image = new Imagick(); $image->thumbnailImage(200, 300); $image->readImage("$directory/$name"); $image->setImageFormat('jpeg'); $image->setImageCompressionQuality(85); $image->stripImage(); $thumbnail = "thumb_".$name; $image->writeImage("$directory/$thumbnail");
-
Disponha! Que bom que deu certo!
-
Use querySelector document.querySelector("#distancia").value = calcDistance(p1, p2); <input type="text" id="distancia"> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=geometry"></script> <script> var p1 = new google.maps.LatLng(-20.783562, -51.747614); var p2 = new google.maps.LatLng(-20.775710, -51.685601); //calculates distance between two points in km's function calcDistance(p1, p2) { return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) / 1000).toFixed(2); } document.querySelector("#distancia").value = calcDistance(p1, p2); </script>
-
<?php $result = $sqli->query("SELECT foto FROM clientes WHERE id_clientes =". intval($id_clientes)); $obj = $result->fetch_object(); $path = 'fotos/'. $obj->foto; // atualiza os dados no banco $sql = $sqli->query("UPDATE clientes SET foto = '{$nome_imagem}' WHERE id_cliente =". intval($id_clientes)); // Se os dados forem inseridos com sucesso if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { if (file_exists($path)) { unlink($path); } // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); } A função die() interrompe o script para ver se esta trazendo o nome da foto. Mas cuidado com abrir e fechar das chaves { } e da tag <?php ?>, faça corretamente ou gerara erros.
-
Esqueci do FROM, corrigido! $result = $sqli->query("SELECT foto FROM clientes WHERE id_cliente =". intval($id_cliente)); $obj = $result->fetch_object(); die($obj->foto);
-
Você tem que selecionar o path da foto antes de efetuar o update. $result = $sqli->query("select foto clientes where id_cliente = $id_cliente"); $obj = $result->fetch_object(); $path = './fotos/'. $obj->foto; $sql = $sqli->query("update clientes set foto = '$nome_imagem' where id_cliente = $id_cliente"); .... if ($sqli->error) { echo "<p>Erro ao atualizar.</p>" . $sqli->error; } else { if (file_exists($path)) { unlink($path); } // vai forçar o recarregamento da imagem nova $fotoNova = '?' . microtime(true); }
-
Como criar subdomínios automáticos a partir de um formulário
Williams Duarte respondeu ao tópico de dutopfave em PHP
Em desenvolvimento ou em um Droplet "nuvem", você pode alterar o VirtualHost, colocando no ServerAlias, um * "coringa" como subdominio. ServerAlias example.com *.example.com <VirtualHost *:80> ServerName domain.com ServerAlias *.domain.com VirtualDocumentRoot /var/www/public </VirtualHost> http://httpd.apache.org/docs/2.4/vhosts/name-based.html Se for usar em hospedagens com CPanel ou outro, você pode criar um subdomínio * apontando para a pasta necessária (você precisará especificar o caminho no campo Raiz do documento ) outro detalhe é especificar o DNS Obs.: No ambiente de desenvolvimento, especifique os hosts no arquivo local, no linux é em /etc/hosts, no Windows C: » Windows » System32 » Drivers » etc PS.: O subdominio que você cadastrou no banco de dados, é só para encontrar o workspace daquele usuario, o restante ficará no automatico.- 5 respostas
-
- subdominios
- subdomínios
-
(e mais 2 )
Tags:
-
Como criar subdomínios automáticos a partir de um formulário
Williams Duarte respondeu ao tópico de dutopfave em PHP
Apache ou Nginx?- 5 respostas
-
- subdominios
- subdomínios
-
(e mais 2 )
Tags:
-
Entenda o contexto do que eu disse! Nem aqui no Fórum Imasters e, nem no StackOverflow em portugues entenderia, ja que você citou o StackOverflow. Seu problema não é a biblioteca como já disse, mas sim entender Padrões de Projeto. Comece estudando Facade Vai deixar seu codigo mais limpo e esconde a complexidade $facade = new EmailFacade(); $facade->email(getPost('email')) ->attach('...') ->send(); getPost() Com a função, __call, __callStatic() você abstrai todos os metodos de um Serviço "que usa o PHPMailer", mas se parou de funcionar, atualize o biblioteca que envia o email, ou mude para outra. Exemplo com __call e __callStatic <?php class MethodTest { public function __call($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling object method '$name' " . implode(', ', $arguments). "\n"; } /** As of PHP 5.3.0 */ public static function __callStatic($name, $arguments) { // Note: value of $name is case sensitive. echo "Calling static method '$name' " . implode(', ', $arguments). "\n"; } } $obj = new MethodTest; $obj->runTest('in object context'); MethodTest::runTest('in static context'); // As of PHP 5.3.0 ?> Se não forem cobertos por testes, fica dificil mesmo. Praticamente todos os metodos de uso do PHPMailer já foram cobertos por testes, sendo assim, faça uso de testes para cobrir os seus. Mais em: https://phpunit.de/ Senão entender sobre, vai sempre depender de videos aulas, como esta acima, que ao meu ver, vale como aprendizagem, mas tenha em mente que tem um alto acoplamento e baixa coesão. Tornando seu código de dificil manutenção. Para uso de dados sensiveis, um padrão ja bastante difundido e o "environment" .env Existe um pacote para isto https://github.com/vlucas/phpdotenv
-
O problema acredito não ser no PhpMailer! Pois não sabemos oque este código acima faz. Se você abstraiu as funções do PHPMailer para outra layer. Só Deus e você sabe oque fez, nem aqui e nem no SoPT entenderá. Lá no Stack ja iria ser fechada ou negativada, por nao ser clara e fora do escopo do PHPMailer.
-
Vocẽ pode também pode utilizar Closures, vai deixar seu código mais organizado. <?php function createSelect($name) { return function ($data) use ($name) { $html ='<select name="'. $name .'" size="3" required>'; foreach ($data as $value) { $html .='<option>' . $value . '</option>'; } $html .= '</select>'; return $html; }; } $create = createSelect('cores'); $data = $create(array("verde" , "amarelo" , "azul")); print( $data ); $create = createSelect('carros'); $data = $create(array("gol" , "fiat" , "palio")); print( $data ); Bons estudos @Biel.
-
Há quatro possibilidades de deixar ativado automaticamente. 1 - Se tem acesso ao banco, ja deixa ativado como default 2 - Verique o codigo onde recebe os dados e seta para ativo. 3 - Passe um campo no formulário do tipo hidden com o valor true 4 - Passe um campo do tipo ckeckbox/select, com o valor true Independente de qual forma passar, vai ter que descobrir como esta o nome no banco.
-
Crie uma função fábrica e da um include nas paginas que necessita! Porque o que vejo é repitação de códigos e nada mais, existe outros paradigmas de programação, além do procedural, funcional é uma delas! <?php function createSelect($data, $name) { $html ='<select name="'. $name .'" size="3" required>'; foreach ($data as $key => $value) { $html .='<option>' . $value . '</option>'; } $html .= '</select>'; return $html; } $dados = array("verde" , "amarelo" , "azul" ); print(createSelect($dados, 'cores')); $dados = array("gol" , "fiat" , "palio" ); print(createSelect($dados, 'carros')) output <select name="cores" size="3" required> <option>verde</option> <option>amarelo</option> <option>azul</option> </select> <select name="carros" size="3" required> <option>gol</option> <option>fiat</option> <option>palio</option> </select> Você pode controlar inumeras coisas, passando uma queryString pela url. Ou seja nada é impossivel.
-
Como filtrar a superglobal $_SERVER['REQUEST_METHOD'] da melhor forma ao enviar id de formulário ?
Williams Duarte respondeu ao tópico de unset em PHP
Melhor ler a própria documentação para entender sobre os Linters, especificamente no Netbeans, particularmente prefiro o xDebug. E linteres, só uso Eslint para javascript, e xDebug no PhpStorm, porque além de depurar o código corrige com as melhores práticas. Não fica só apontando tipo o VsCode com o Typescript. Tempos atrás era deste jeito, aponta os erros e você tem que se virar pra descobrir os types que a comunidade já tinha criado. Não sei agora com a evolução da linguagem. Abaixo uma forma de resolver seu problema com o Netbeans. https://stackoverflow.com/questions/19767894/warning-do-not-access-superglobal-post-array-directly-on-netbeans-7-4-for-ph -
Como filtrar a superglobal $_SERVER['REQUEST_METHOD'] da melhor forma ao enviar id de formulário ?
Williams Duarte respondeu ao tópico de unset em PHP
Se seu aplicativo precisar reagir a pedido do tipo post, use o seguinte: if(strtoupper($_SERVER['REQUEST_METHOD']) === 'POST') { // if form submitted with post method // validate request, // manage post request differently, // log or don't log request, // redirect to avoid resubmition on F5 etc } -
Melhor fazer isto com javascript, utilizando socket Aqui tem um exemplo muito bom com php
-
https://github.com/dompdf/dompdf
-
Crie um novo arquivo info.php, com as informações abaixo : info.php <?php // Mostra todas as informações, usa o padrão INFO_ALL phpinfo(); // Mostra apenas informações dos módulos. // phpinfo(8) mostra um resultado identico. phpinfo(INFO_MODULES); ?> e rode diretamente pela url http://localhost:8080/info.php Se imprimir na tela as configurações do php, versão etc, não tem erro em seu php Sobre isto aqui Você espera duas variaveis no mesmo ternario, "fat e val" isset($_GET["fat"])?$_GET["val"]:1 Correto $fat = $f = isset($_GET["fat"]) ? $_GET["fat"] : 1; O ternario testa se a var $_GET['fat'] foi iniciada, e retorna o valor, senao retorna false ou seja true === true retorna true else false. Se que testar mais de uma variavel, faça outro ternario. Coloque nos seus codigos php, para reportar erros: <?php ini_set('display_errors', true); error_reporting(E_ALL);
-
$query = "SELECT * FROM users WHERE user_name='$user_name' AND user_pass='$user_pass'"; $results = mysqli_query($db_sys, $query); faz um debug nesta variavel $results print_r($results); exit(); e poste aqui o que retorna!