-
Total de itens
406 -
Registro em
-
Última visita
Tudo que wash postou
-
Camuflando a barra de endereço
pergunta respondeu ao Frank K Hosaka de wash em Tutoriais & Dicas - PHP
Não exponha dados sensíveis na url, use o método post https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods https://developer.mozilla.org/pt-BR/docs/Web/HTTP/Methods/POST -
Como fazer o <td align='right'> funcionar?
pergunta respondeu ao Frank K Hosaka de wash em Tutoriais & Dicas - PHP
Olá! Alinhe com CSS Mas perceba que para a última coluna o sr. usou riqht ao invés de right Segue sugestão, com possibilidade de reusar para qualquer tabela, para as colunas: 1, 3 e/ou 5 <style> table.border{ border-collapse: collapse; } table.border td, table.border th{ border:thin solid #333; padding:12px; } table.col-1-right td, table.col-3-right td, table.col-5-right td { text-align: right; } </style> <?php $qt = 10; echo "<table class='border col-1-right col-3-right col-5-right'>" . "<tr><th>Quantidade</th><th>X</th><th>Quantidade</th><th>=</th><th>Total</th></tr>" . '<tbody>' . "<tr><td>$qt</td><td></td><td>$qt</td><td></td><td>" . $qt * $qt . "</td></tr>" . "<tr><td>$qt</td><td></td><td>$qt</td><td></td><td>" . strval($qt * $qt) . '</td></tr>' . '</tbody>' . '</table>'; -
Criando um novo usuário no MySQL
pergunta respondeu ao Frank K Hosaka de wash em Tutoriais & Dicas - PHP
Olá! porque não usa o ip de cada um? Com $_SERVER['REMOTE_ADDR'] php.net/remote_addr -
Como considerar o usuário num banco de dados?
pergunta respondeu ao Frank K Hosaka de wash em Lógica de Programação
Olá! Não sei se entendi direito. Mas pensando no cenário que poderá haver mais de 1 user e mais de 1 orçamento, acredito que seria interessante criar mais tabelas sim. ex: users logs (pra salvar os logs de acesso dos users) budgets (orçamentos) products budgets_products (tabela intermediária que vai associar products a um budget) Não acredito que algum banco de dados tenha a inteligência de "se virar sozinho" Então vai ser preciso que o sr. programe o acesso de cada user. E que cada um tenha acesso somente ao seus próprios budgets. Com a possibilidade de um admin do sistema ter acesso a todos. -
Parabéns pelo aprendizado e capacidade de assimilação do conhecimento. Para uma possibilidade maior de detectar falhas na conexão/execução de queries: escreva seu arquivo de conexão assim: <?php // definição de variáveis para conexão $host = 'localhost'; // servidor $user = 'root'; // nome do utilizador $pass = 'your-secret-pw'; // senha ou password $database = 'base'; // nome da base de dados // estabelecer conexão: $sqli = new mysqli($host, $user, $pass); // verificando se conectou de boas: if ($sqli->connect_error) { // se houver alguma falha, exibe mensagem específica da falha: die('<p class="error">Falha na conexão: ' . $sqli->connect_error . '</p>'); } // definir o padrão de caracteres if (!$sqli->set_charset('utf8')) { // se não conseguir definir o padrão de caracteres, exibe o padrão disponível die("<p class='error'>Seu charset não é utf8, chefe!<br>$sqli->character_set_name()</p>"); } // selecionar/abrir o banco de dados para trabalhar if (!$sqli->select_db($database)) { // se o banco de dados não for encontrado die("<p class='error'>Banco de dados não encontrado, chefe!</p>"); } E nos arquivos onde precisar da conexão, execute queries de busca assim: <?php require 'connection.php'; // define a query de busca $query = 'SELECT * FROM gruposusuarios'; // executa a query e guarda o resultado em $result $result = $sqli->query($query); // se houver alguma falha if ($sqli->error) { // exibe mensagem específica da falha na busca: die('<p class="error">Falha na consulta: ' . $sqli->error . '</p>'); } else if ($result->num_rows) { // se não houve erro e há algum resultado, fetch data $data = $result->fetch_all(MYSQLI_ASSOC); echo '<pre>Total de resultados : '; print_r($result->num_rows); echo '</pre>'; echo '<pre>Resultados: '; var_dump($data); echo '</pre>'; die(__FILE__ . ' at line: ' . __LINE__); } else { // se nenhum resultado foi encontrado echo '<p>Nenhum resultado encontrado, chefe!</p>'; } Só lembrando que é apenas minha sugestão. Também pode ser feito de outras maneiras.
-
Rapaz... Qual foi a mensagem de erro que apareceu? A mensagem acusa em qual arquivo/linha está o erro? Tem erro demais aí, viu? Sugiro ler as mensagens de erro que vão aparecendo e ir corrigindo uma a uma. Pra começar, php é sensitive case (ele diferencia letras maísuculas e minúsculas). Assim sendo A é diferente de a a) não existe session_star() é session_start(), tem uma letra t no final de start b) você tenta receber $_POST['nome'] Mas o form envia Nome, com N maiúsculo c) você tenta receber $_POST['email'] Mas o form envia Email, com E maiúsculo d) você tenta receber $_POST['ddd'] Mas o form envia DDD, tudo maiúsculo e) você tenta receber $_POST['dddCel'] Mas o form envia dddc, tudo minúsculo f) não existe $_POST['MelhorHorario'] g) não existe $_POST['Data'] h) não existe $_POST['Origem'] i) você tenta receber $_POST['Tel'] Mas essa variável não existe j) você recebe $_POST['celular'] Mas não é usado k) você recebe $_POST['Fone'] Mas não é usado ... Crie um padrão para os nomes de variáveis e use em todas, pra evitar de se perder em qual começa com maiúscula, qual é toda minúscula, etc... Vá observando as mensagens de erro e corrigindo cada situação até que seu script esteja funcional.
-
O switch case avalia apenas um único valor. No caso específico que você enviou, será analisado o resultado da conta, que é um bool É bem mais complicado ficar fazendo operações aritméticas dentro de um switch. É muita gambiarra. Há formas melhores do que switch. Já ouvi muita gente dizendo que trabalhou em sistemas enormes a vida inteira e nunca usaram switch. Sugestão de solução: <?php $digitado = 0; $result = ''; switch($digitado) { case ($digitado > 0 ? $digitado : -1): $result = 'Valor Positivo'; break; case ($digitado < 0 ? $digitado : 1); $result = 'Valor Negativo'; break; default: $result = 'Igual a Zero'; } echo $result;
-
Olá! Não retorna mensagem de erro alguma? acrescente or die, depois de fechar parenthesis: ...ario) or die(mysqli_error($conn)); execute novamente e veja se aparece alguma mensagem de erro
-
ABRIR POP-UP EM UM SUBMIT PHP
pergunta respondeu ao Guilherme Alves de wash em Repositório de Scripts - Ajax, JS, XML, DOM
Entendi. É porque você faz a matemática no php Nem precisava. Pode ser resolvido somente com js. mas segue sugestão: arquivo .php <?php $trab = 0; $apost = 0; $prova = 0; $trilha1 = 0; $trilha2 = 0; $med = 0; $showModal = false; if (isset($_POST['acao'])) { $trab = $_POST['trab'] * 8; $apost = $_POST['apost'] * 2; $prova = $_POST['prova'] * 6; $trilha1 = $_POST['trilha1'] * 1; $trilha2 = $_POST['trilha2'] * 1; $peso1 = (($trilha1 + $trilha2) / 2) * 1; $peso3 = (($trab + $apost) / 10) * 3; $peso6 = $prova; $med = ($peso1 + $peso3 + $peso6) / 10; $rec = (($med * 0.6) - 6) / (0.4 * (-1)); $showModal = true; } ?> <!DOCTYPE html> <html lang="pt=br"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Fundamental I e II - Cálculo de notas</title> <link rel="stylesheet" type="text/css" href="assets/css/fundamentaal.css"> </head> <body> <section id="fund_I_II"> <div class="container"> <div class="box_form"> <div class="title texto"> <h1>Média Ensino Fundamental I e II</h1> </div> <div class="form_inputs"> <form method="POST" action=""> <label>Nota de trabalho</label> <input type="number" name="trab" required autofocus min="0" max="10" step=".01"></input> <label>Nota de apostila</label> <input type="number" name="apost" required min="0" max="10" step=".01"></input> <label>Nota de prova</label> <input type="number" name="prova" required min="0" max="10" step=".01"></input> <label>Nota de trilha 1</label> <input type="number" name="trilha1" required min="0" max="10 step=" .01"></input> <label>Nota de trilha 2</label> <input type="number" name="trilha2" required min="0" max="10" step=".01"></input> <input class="enviar " type="submit" name="acao" /> </form> </div> </div> <div id="modal-notas-aprovacao" class="modal-container<?= $showModal ? ' mostrar' : '' ?>"> <div class="modal"> <button class="fechar">x</button> <div class="aprovacao"> <?php if (isset($_POST['acao']) && $med >= 6) { echo 'Sua média do bimestre é: ' . number_format($med, 2) . '<br>' . 'Você foi aprovado'; } ?> </div> <div class="reprovacao"> <?php if (isset($_POST['acao']) && $med < 6) { echo 'Sua média do bimestre é: ' . number_format($med, 2) . '<br>' . 'Você está de RECUPERAÇÃO!' . ' É necessário tirar ' . number_format($rec, 2) . ' na prova de recuperação.'; } ?> </div> </div> </div> </div> </section> <script> const modalID = 'modal-notas-aprovacao' const modal = document.getElementById(modalID); modal.addEventListener('click', (e) => { if (e.target.id == modalID || e.target.className == 'fechar') { modal.classList.remove('mostrar'); } }); </script> </body> </html> Arquivo .css *{ box-sizing: border-box; } body { margin: 0; padding: 0; font-family: Arial; background-color: #0344f7; overflow: hidden; } h1 { margin: 0; padding: 0; } .container { height: 100vh; display: flex; flex-direction: column; justify-content: center; align-items: center; } .box_form { width: 420px; background-color: #0095cf; border: 1px solid white ; border-radius: 15px; } .title { display: flex; align-items: flex-end; justify-content: center; color: #FFF; height: 80px; } .form_inputs form { display: flex; flex-direction: column; align-items: center; justify-content: center; height: 330px; } .form_inputs label { text-align: center; color: white; } .form_inputs input { text-align: center; width: 200px; margin-top: 5px; padding: 5px; border:none; border-radius: 5px; } .form_inputs .enviar { width: 100px; margin-top: 8px; border-radius: 7px; padding: 10px; color: white; font-weight: bold; font-size: 16px; border:0; background-color: green; } .aprovacao, .reprovacao { color: #000; text-align: center; } .aprovacao { padding: 10px; } .modal-container{ width: 100vw; height: 100vh; background-color: rgba(0, 0, 0, .5); position: fixed; top: 0 ; left: 0; z-index: 2000; display: none; justify-content: center; align-items: center; } .modal { background-color: white; max-width: 60%; min-width: 300px; padding: 40px; box-shadow: 5px 5px 6px 4px #000; border-radius: 10px; position: relative; } @keyframes modal { from { opacity: 0; transform: translate3d(0,-60px, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } } .mostrar .modal { animation: modal .3s; } .modal-container.mostrar { display: flex; } .fechar { position: absolute; top: 5px; left: 5px; width: 30px; height: 30px; border-radius: 50%; border: 0; background-color: white; font-size: 25px; cursor: pointer; } -
Limpar campos tipos 'checkbox'
pergunta respondeu ao Ananias Guerra de wash em Ajax, JavaScript, XML, DOM
Olá! Mostre-nos o trecho que marca os checkboxes que deveriam estar marcados e em que momento ele é executado. -
Importar arquivos CSV e salvar no banco MySql
pergunta respondeu ao Marco Antonio Firmino de wash em PHP
Olá! É bem difícil adivinhar o que aconteceu sem poder reproduzir o script. Certa vez escrevi um que funcionou muito bem. Tente adaptá-lo e veja se funciona pra você tb: <?php // carrega o arquivo.csv ignorando quebras de linha no final da linha e linhas vazias $file = file('seu-arquivo.csv', FILE_TEXT | FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); // o caracter delimitador $delimitier = ';'; // caso a primeira linha seja o cabeçalho (essa linha será removida da variável $file) $header = array_shift($file); // verifica se o delimitador existe if (!strpos($header, $delimitier)) { die('O delimitador: ( <b>' . $delimitier . '</b> ), não foi encontrado!'); } // separa cada elemento do cabeçalho $header = explode($delimitier, $header); // inicia a variável para guardar os erros(se houver algum) $errors = []; // para cada linha em $file foreach ($file as $i => $line) { $arrayLine = explode($delimitier, $line); // verifica se a quantidade de colunas é igual às do header if (sizeof($arrayLine) != sizeof($header)) { $errors[] = 'A linha: <b>' . ($i + 2) . 'não tem o mesmo número de colunas!'; continue; } // tratar os dados foreach ($arrayLine as $index => $value) { // se o valor estiver entre aspas simples, serão removidas $value = trim($value, "'"); // se for numérico if (preg_match('/^[0-9.,]+$/', $value)) { // não precisa tratar o valor $arrayLine[$index] = $value; } else { // se não for numérico, o valor será tratato com utf-8, terá caracteres escapados e será colocado entre aspas simples $arrayLine[$index] = "'" . addslashes(utf8_encode($value)) . "'"; } } // coloca cada linha entre parenthesis $file[$i] = '(' . implode(', ', $arrayLine) . ')'; } // se houver erros if (sizeof($errors)) { foreach ($errors as $error) { // mostra cada erro encontrado na tela echo '<p>' . $error . '</p>'; } } // considera o cabeçalho como sendo iguais aos nomes das colunas do database $keys = $header; // quebra as linhas em grupos de 100 linhas $inserts = array_chunk($file, 100, true); // para cada grupo de 100 linhas foreach ($inserts as $v) { // adiciona a query de inserção no array $dump $dump[] = "insert into $table(`" . implode('`, `', $keys) . "`) values\n " . implode(",\n ", $v) . "\n"; } // para cada grupo de 100 inserções por insert em $dump foreach ($dump as $query) { // mostra na tela como ficou cada query de 100 inserções por insert echo '<pre>$query: '; print_r($query); echo '</pre>'; // execute a sua query de inserção no banco de dados aqui } Ao invés de inserir cada linha uma a uma, inserir em grupos de 100 diminui em muito a quantidade de requisições ao database, aumentando em muito o desempenho. -
Incluir informações do checkbox no banco de dados
pergunta respondeu ao Samantha Moraes de wash em MySQL
Olá! Os checkboxes precisam ter o atributo name vai ser o nome da variável enviada com o valor do checkbox <input class="form-check-input" type="checkbox" id="inlineCheckbox2" value="opcao2" name="variavel1"> No exemplo acima, variavel1 = opcao2, claro, se o checkbox estiver marcado Se não estiver marcado, esta variável não será enviada. -
Olá! O intelephense está correto. Toda função em uma interface é implicitamente abstrata. Não há necessidade de usar a keyword abstract quando declarar métodos em interfaces. Veja em: https://www.w3schools.com/php/php_oop_interfaces.asp
-
Olá! A mensagem está dizendo que o sr. tem métodos com o mesmo nome da classe. Isso só funcionava em php 5- peça ao seu serviço de hospedagem para usar uma versão de php antigo, talvez 4 ou 5.0.1 mas o ideal e mais seguro, seria o sr. atualizar seu sistema, usando apenas as novidades do php 8. Q já está no 8.1. O php é uma liguagem muito viva, a comunidade mantenedora está sempre trabalhando parar torná-lo melhor e mais seguro. Acompanhe os chage logs pra saber o que ficou obsoleto e acompanhe sempre atualizando seus scripts: https://www.php.net/ChangeLog-8.php#8.1.0
-
Olá! No início do arquivo, ative a exibição de erros com: <?php error_reporting(E_ALL); Troque esse trecho: por este: $qlog = mysqli_query($bd, "SELECT * FROM 'usuarios' WHERE login_user = '$nome_user' and senha = '$password' ") or die(mysqli_error()); e veja se aparece alguma mensagem de erro. Essas aspas simples no nome da tabela são desnecessárias.
-
Descobrir versão que foi feito os arquivos PHP
pergunta respondeu ao Câmara Municipal de wash em PHP-GTK
Olá! Acredito que não há uma forma automágica de se descobrir isso. O sr. pode observar o script e ver se foram utilizados elementos específicos de php7+ como o operador null coalescing, tipagem de retorno das classes ou variáveis... Se o tipo de conexão com o database usa extensões obsoletas como mysql_*, vai ser php5- Ou pode ir testando até encontrar uma falha. Execute em php7(e suas minor versions), se não der nenhum erro, funciona. Execute em php8(e suas minor versions), em php5(e suas minor versions) -
Certifique-se de que não haja espaços em branco antes e depois da palavra, no arquivo lido
-
Olá! Pode acontecer de, no final da linha ser carregado tb o metacaracter da quebra de linha. para evitar isso use as seguintes flags com a função file: file($filePath, FILE_SKIP_EMPTY_LINES | FILE_IGNORE_NEW_LINES); onde $filePath é o caminho para o arquivo que o sr. pretente q seja lido.
-
Olá! Ao invés de ['name'] use ['tmp_name']
-
Olá! O sr. não postou a mensagem de erro que apareceu, mas presumo que seja porque ao abrir o script nada ainda foi postado. Então coloque o trecho de script selecionado dentro de: if(isset($_POST['nome'])){ // aqui } Assim o trecho php só será executado, depois que pelo menos 'nome' for postado
-
Como exibir resultados de um SELECT em uma página HTML.
pergunta respondeu ao Leandro Carvalho de wash em MySQL
experimente trocar select id por select * -
Como exibir resultados de um SELECT em uma página HTML.
pergunta respondeu ao Leandro Carvalho de wash em MySQL
Olá! Aqui tem um bom exemplo de como fazer isso, veja: php.net/mysqli_fetch_all Pra ficar bem fácil vou colar um trecho aqui: // guarda o resultado da execução da query em $result $result = $mysqli->query('select * from table'); // guarda cada linha de $result em $rows $rows = $result->fetch_all(MYSQLI_ASSOC); // inicie a tabela $displayTable = '<table><thead><tr><th>Title</th></tr></thead>'; // para cada linha em rows foreach ($rows as $row) { // monte as linhas da tabela aqui $displayTable.= '<tr><td>' .implode('<br>', $row) .'</td></tr>'; } // mostre a tabela onde precisar: echo $displayTable.'</table>' -
Olá! Qual a versão de PHP que o sr. está usando? Desde 2012(ou antes) o php recomenda fortemente a não usar mais as extensões mysql_* veja no screenshot. Se o sr. não estiver usando o php4, recomendo atualizar seu script. Pra ter certeza de que pode ser essa a questão. Ative a exibição de erros no seu php.ini ou em php mesmo com: error_reporting(E_ALL); sendo a primeira linha de script do seu arquivo .php
-
Olá! Segue sugestão: SELECT sum( statuselev ) AS total FROM (select statuslev from elevatoria1 WHERE linha LIKE '%999981697%' ORDER BY registro DESC LIMIT 2 )