
Frank K Hosaka
Membros-
Total de itens
1.623 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
<body style="width:50%;margin:0 auto"><div style=height:5%></div> <form> <select name=cabelo> <option value="">Selecione a cor do cabelo</option> <option>Morena</option> <option>Loira</option> </select> <input type=submit> </form> <?php if(isset($_GET['cabelo'])){ $cabelo=$_GET['cabelo']; if(empty($cabelo)){echo "Selet * from mocas";} else { echo "Select * from mocas where cabelo='$cabelo'";} }
-
Como criar um sistema de login com adminitradores, vendedores e pedidos
pergunta respondeu ao ggv.nando de Frank K Hosaka em PHP
Tente fazer um código em PHP para imprimir "olá mundo!" Tente criar uma tabela no MySQL com o nome de tbadministrador, com um campo como chave primária (de preferência 'id'), nome. Invente um nome qualquer tipo "João". Tente conectar o PHP no MySQL, e tente imprimir o nome do administrador cinco vezes. Tente mudar o nome do João para Maria, pelo PHP. Se você conseguir fazer tudo isso em menos de 30 dias, é possível que você consiga montar um sistema em menos de um ano. -
PHP Parse error: syntax error, unexpected end of file in... Usando Fetch API
pergunta respondeu ao Moisés B Almeida de Frank K Hosaka em PHP
Eu fiz o teste aqui, e o VS Code reclamou que tem um braço "}" sobrando, eu tirei, e o VS Code parou de reclamar. Eu procurei no código PHP uma chamada para a função java cadastrarAdm, mas não achei nenhuma conexão. Logo, a mensagem de erro do JavaScript veio de um outro código e não desse que você publicou. A única coisa estranha que eu achei no código PHP foi $cliente->setCpf(trim(intval($_POST['cpf']))); eu mudei para $cliente->setCpf(trim('123.456.789-00')); (eu tirei a função intval, ele não faz sentido nesse contexto). Para achar esses erros, usei o banco de dados MySQL com essa tabela CREATE TABLE `clientes` ( `id` int NOT NULL AUTO_INCREMENT, `clt_cpf` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, `clt_senha` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci e esse código que eu chamei de astudy.php <?php class Pessoa { public $cpf; public function setCPF($cpf){$this->cpf=$cpf;} public function getSenha(){return "1234";} public function getCPF(){return $this->cpf;}} $pdo=new PDO("mysql:host=localhost;dbname=astudy","root",""); $cliente = new Pessoa; $cliente->setCpf(trim('123.456.789-00')); $senha = $cliente->getSenha(); $hash = password_hash($senha, PASSWORD_DEFAULT); try {$sql='INSERT INTO clientes (clt_cpf,clt_senha) VALUES (:cpf,:senha)'; $query = $pdo->prepare($sql); $query->execute(['cpf' => $cliente->getCpf(),'senha' => $hash]);} catch (PDOException $th) {echo $th->getMessage();die();} echo "Cliente com cpf ". $cliente->getCPF()." cadastrado com sucesso."; A parte da rotina do email eu não testei porque não tenho servidor de email aqui. -
Laravel - Exibir mensagem ao usuário e voltar à Index se o registro não for encontrado
pergunta respondeu ao marsuga de Frank K Hosaka em PHP
O Laravel é dividido em várias partes, os mais importantes são os routes, os controllers e os blades. Para fazer o usuário voltar no blade index se digitar errado, o controller é que vai verificar o que o usuário digitou no blade, caso ele tenha acertado, aí ele vai para o blade show. Em seguida, um código exemplo: astudy>laravel>routes>web.php <?php use Illuminate\Support\Facades\Route; use App\Http\Controllers\ControllerTeste; Route::get('/',[ControllerTeste::class,'index']); astudy>laravel>app>Http>Controllers>ControllerTeste.php <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class ControllerTeste extends Controller { function index(request $request){ $mensagem=""; if($request->input('teste')=="1234"){ return view('show');} else { if($request->input('teste')!==null){ $mensagem="Você errou, tente de novo";}} return view('index',['mensagem'=>$mensagem]);} } astudy>laravel>resources>views>index.blade.php <h1>{{$mensagem}}</h1> <form> Digite o código: <input name=teste><br> <input type=submit> </form> astudy>laravel>resources>views>show.blade.php <body style="width:50%;margin:0 auto"><div style=height:5%></div> <h1>Parabéns, você acertou!</h1> -
arrays O que significa preencher array?
pergunta respondeu ao Vinicius0X100 de Frank K Hosaka em PHP
Olhando o seu perfil, encontrei o item mas a resposta que você mencionou não estava lá. Para eu poder dar uma resposta melhor, você tem o link para a resposta do colaborador? -
Como fazer a ativação/desativação dos estatutos em PHP!
pergunta respondeu ao Quencyjones de Frank K Hosaka em PHP
Aqui só vou mudar o status dos clientes. Dos outros colaboradores, deixo para você. StatusCliente.php <body style="width:50%;margin:0 auto"><div style=height:5%></div> <?php $mysqli=new mysqli("localhost","root","","astudy"); if(isset($_GET['mudar'])){ $id_cliente=$_GET['mudar']; if($_GET['status']==0){$novoStatus=1;} else {$novoStatus=0;} $query=$mysqli->query("update cliente set estado_cliente = $novoStatus where id_cliente=$id_cliente"); header("location:statuscliente.php"); } $query=$mysqli->query("select * from cliente order by nome_cliente"); $total=$query->num_rows; echo "<h1>Alterar o status dos utilizadores</h1>"; echo "<h4>Total de Clientes no sistema: $total</h4>"; echo "<table>"; while($row=$query->fetch_assoc()){ foreach($row as $key=>$value){ if($key=="estado_cliente"){ if($value==0){$status="(inativo)";}else{$status="(ativo)";} echo "<tr style=color:red><td>$key<td>=> $value"; echo "<a href=?mudar=".$row['id_cliente']."&status=$value> $status mudar status</a>"; } else { echo "<tr><td>$key<td>=> $value"; } } echo "<tr style=height:15px><td>"; } -
Manter item selecionado no select em outras páginas
pergunta respondeu ao Mayck May de Frank K Hosaka em PHP
Como eu não sei nada de JavaScript, a minha única saída é usar o método submit do formulário, assim: astudy.php <body style='width:50%;margin:0 auto'><div style=height:5%></div> <input type=submit value="Ir para próxima página" onclick="location.replace('astudy2.php')"><p> <?php session_start(); if(isset($_GET['uf'])){$_SESSION['estado']=$_GET['uf'];} if(isset($_SESSION['estado'])){ $estado=$_SESSION['estado'];} else { $estado="Selecione um estado";} echo " <form> <select name=uf required onchange=submit()> <option>$estado</option> <option>AL</option> <option>BA</option> <option>DF</option> <option>GO</option> <option>MG</option> <option>RS</option> <option>SE</option> </select></form><p>"; ?> ---------------- astudy2.php <body style='width:50%;margin:0 auto'><div style=height:5%></div> <?php session_start(); if(isset($_SESSION['estado'])){echo "o estado que você escolheu foi ".$_SESSION['estado'];} ?> <p><input type=submit value=Voltar onclick="location.replace('astudy.php')"> -
Notice: Undefined variable: array e Warning: Invalid argument supplied for foreach()
pergunta respondeu ao Uahaho de Frank K Hosaka em PHP
O programa tinha que ser dividido em dois blocos, mas acabou ficando com 3 blocos, o terceiro bloco tinha que estar no segundo bloco. Eu prefiro parar a execução no primeiro bloco. Outro erro que encontrei foi nessa linha: foreach($array as key)(echo $nome[$key] etc... o correto é $key['nome']. Mas o código é bom, eu aprendi a usar <input pattern> bem como ordenar um array. Aqui está o código, modificado: <body style="width:50%;margin:0 auto"><div style=height:5%></div> <form method="get"> <table><th>Informe Nome e<th>Idade <tr><td><input name=nome[] required> <td><input name=idade[] required pattern=[0-9]+$ size=1> <tr><td><input name=nome[] required> <td><input name=idade[] required pattern=[0-9]+$ size=1> <tr><td><input name=nome[] required> <td><input name=idade[] required pattern=[0-9]+$ size=1> <tr><td><input type=submit></table> </form> <?php if(!isset($_GET['nome'])){exit;} $array[0] = array('nome' => $_GET['nome'][0], 'idade' => $_GET['idade'][0]); $array[1] = array('nome' => $_GET['nome'][1], 'idade' => $_GET['idade'][1]); $array[2] = array('nome' => $_GET['nome'][2], 'idade' => $_GET['idade'][2]); var_dump($array); foreach ($array as $key => $value) { $nome[$key] = $value['nome']; $idade[$key] = $value['idade'];} array_multisort($nome, SORT_DESC, $idade, SORT_ASC, $array); echo "<table border=1px>"; foreach($array as $key) { echo "<tr><th>".$key['nome']; echo "<td>".$key['idade'];} echo "</table>"; -
Eu vi o que houve. Quando entrei com informação fictícia, a classe não atualizou o objeto pdo, e quando entrei com o cadastro, a classe cadastrou sem restrição. Na segunda vez, ele não deixou cadastrar, pois a classe impôs uma regra para não cadastrar para quem já tem. Fiz uma nova bateria de teste, e parece que tudo está em ordem. MySQL CREATE TABLE `usuarios` ( `id_usuario` int NOT NULL AUTO_INCREMENT, `email` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, `nome` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, `senha` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id_usuario`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci astudy.php <?php class Usuario { public $pdo; public $msgErro; public function conectar($dbnome, $host, $usuario, $senha){ try {$this->pdo = new PDO("mysql:dbname=".$dbnome.";host=".$host,$usuario,$senha); return $this->pdo;} catch (PDOException $e) {$this->msgErro = $e->getMessage(); return $this->msgErro;}} public function cadastrar($nome, $email, $senha){ //verificar se já exista o email cadastrado $sql = $this->pdo->prepare("SELECT id_usuario FROM usuarios where email = :e"); $sql->bindvalue(":e",$email); $sql->execute(); if ($sql->rowCount() > 0) {return false;}else{ $sql=$this->pdo->prepare("INSERT INTO usuarios (nome, email, senha) VALUES (:n, :e, :s)"); $sql->bindvalue(":n",$nome); $sql->bindvalue(":e",$email); $sql->bindvalue(":s",md5($senha)); $sql->execute(); return true;} /*caso não tenha*/ } public function logar($email, $senha){ //verificar se o email e senha estão cadastrados $sql = $this->pdo->prepare("SELECT id_usuario FROM usuarios WHERE email = :e AND senha = :s"); $sql->bindvalue(":e",$email); $sql->bindvalue(":s",md5($senha)); $sql->execute(); if($sql->rowCount() > 0){ $dado = $sql->fetch(); session_start(); $_SESSION ['id_usuario'] =$dado['id_usuario']; return true; /*a pessoa esta logado*/ } else { return false; /*n foi possivel logar*/}} } $usuario=new usuario; var_dump($usuario); var_dump($usuario->conectar("astudy","localhost","root","")); var_dump($usuario->cadastrar("frank","frankhosaka@gmail.com","1234")); var_dump($usuario->logar("frankhosaka@gmail.com","1234")); var_dump($usuario); Resultado: C:\wamp64\www\astudy\astudy.php:37: object(Usuario)[1] public 'pdo' => null public 'msgErro' => null C:\wamp64\www\astudy\astudy.php:38: object(PDO)[2] C:\wamp64\www\astudy\astudy.php:39:boolean true C:\wamp64\www\astudy\astudy.php:40:boolean true C:\wamp64\www\astudy\astudy.php:41: object(Usuario)[1] public 'pdo' => object(PDO)[2] public 'msgErro' => null
-
O erro no método logar está na variavel $nome, o correto deveria ser $sql->bindvalue(":e",$email); Praticamente só ontem é que eu comecei a estudar o objeto classe, eu não tinha a menor ideia de como estudar a classe. Até onde eu sei, a classe tem propriedades e métodos. Usei o seguinte código para estudar o seu projeto: astudy.php class Usuario { seu codigo } $usuario=new usuario; var_dump($usuario); // $pdo=null;msgErro="" var_dump($usuario->conectar("astudy","localhost","root","")); // object PDO var_dump($usuario->conectar("mosca","mosca","mosca","mosca")); // null var_dump($usuario); // $pdo=null;msgErro="" var_dump($usuario->cadastrar("frank","frank@gmail","1234")); // true var_dump($usuario->conectar("astudy","localhost","root","")); // object PDO var_dump($usuario->cadastrar("frank","frank@gmail","1234")); // false Eu usei um banco de dados fictício, mesmo assim consegui cadastrar o usuário, mas na hora que usei um banco de dados verdadeiro, a classe recusou de fazer o serviço. Isso eu não entendo. Mesmo assim, se eu conseguir melhorar o código, eu volto aqui.
-
Eu tentei fazer o código funcionar aqui, mas eu não consegui. Na listagem parcial tem a palavra "$this->", isso significa que o código faz parte de uma classe. O que mais me intrigou foi $this->tec->formatNumber($row->quantity) - passei o dia todo consultando o Google, não sei como fazer essa proeza, o máximo que eu consegui foi $this->tec->formatNumber=$row->quantity A mensagem que eu recebi é que eu não consegui criar um método formatNumber para um objeto stdClass. Logo, a listagem que não foi publicado deve ser para lá de federal. Em seguida, o rascunho do que eu consegui para adaptar ao código parcial que foi publicado: <?php function product_name($texto){return $texto;} class cupom { private $tec; public function __construct(\stdClass $tec){$this->tec=$tec;} public function formatNumber($value){$this->tec->{$value};} public function formatMoney($value){$this->tec->{$value};} public function formatDecimal($value){$this->tec->{$value};} public function teste(){ $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbvendas,tbprodutos where cupom=666 and tbvendas.id_produto=tbprodutos.id"); $jrows=$query->fetch_all(MYSQLI_ASSOC); $rows=json_decode(json_encode($jrows)); if(!$rows){echo "problema";} $tax_summary = array(); echo "<table><th>Descricao<th>Qtd<th>Preço<th>Subtotal"; foreach ($rows as $row) { echo '<tr><td class="text-left">' . product_name($row->product_name) . '</td>'; echo '<td class="text-center">' . $this->tec->formatNumber=$row->quantity . '</td>'; echo '<td class="text-right">'; if ($row->total_discount != 0) { $price_with_discount = $this->tec->formatMoney=$row->net_unit_price + $this->tec->formatDecimal=$row->item_discount / $row->quantity; $pr_tax = $row->tax_method ? ($this->tec->formatDecimal=$price_with_discount * $row->tax / 100) : ($this->tec->formatDecimal=$price_with_discount * $row->tax / (100 + $row->tax)); echo '<del>' . $this->tec->formatMoney=$price_with_discount+$pr_tax . '</del> ';} echo $this->tec->formatMoney=$row->net_unit_price + $row->item_tax / $row->quantity .'</td><td class="text-right">' . $this->tec->formatMoney=$row->subtotal . '</td></tr>';}}} $cupom=new cupom(new stdClass); echo $cupom->teste();
-
php Retorno de Dados dentro de um Lightbox
pergunta respondeu ao Elisame Araújo de Frank K Hosaka em PHP
Eu também fico desesperado quando o código não funciona. Só tem duas alternativas: ou pula da ponte, ou começa do zero: <body style="width:50%;margin:0 auto"><div style=height:5%></div> <style>td,th{border:1px solid blue}</style> <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from membros, afinclasse where membros.id=afinclasse.id"); if(!$query){die("problema");} echo "Assaltos dos membros ativos<p>"; echo "<table style='border:1px solid'><tr><th>Membro<th>Id<th>UF<th>Assaltos"; while($row=$query->fetch_assoc()){ echo "<tr><td>".$row['nick']."<td>".$row['id']."<td>".$row['estado']; echo "<td>".$row['assalto'];} -
Função Array_Search não está retornando número da chave.
pergunta respondeu ao Lucas Gustavo Stefaniak de Frank K Hosaka em PHP
Pelo que eu entendi, você está recebendo assim array (size=6) 0 => string '1' (length=1) 1 => string 'Cem Porcento Musical Ind e Com Ltda' (length=35) 2 => string '03301914/0001-80' (length=16) Mas você queria mais descritivo, assim array (size=6) 'codp' => string '1' (length=1) 'pessoa' => string 'Cem Porcento Musical Ind e Com Ltda' (length=35) 'cnpj' => string '03301914/0001-80' (length=16) Eu acredito que não seja possível pedir para cURL receber no formato descritivo, mesmo assim, é possível usar a função de busca no array, assim $chave = array_search('03301914/0001-80',$array); Se fosse descritivo, $chave retornaria 'cnpj', em se tratando de número, ele vai retornar '2'. Mas se você tem o número da chave e quer o valor dela, a gramática é outra: $cnpj=$array[2]; -
Gerar PDF a partir de dados preenchidos (PHP)
pergunta respondeu ao elizsposito de Frank K Hosaka em PHP
Ao invés de usar o PHP, eu acho que é bem mais fácil usar o navegador. Depois que o PHP montar o cartão de visita, eu iria pedir para o navegador imprimir no formato PDF (você precisa tomar o cuidado de desmarcar a opção de colocar o cabeçalho e o rodapé na impressão). -
Outra forma que eu vi para fazer auditoria é isolando a função num código a parte, assim: <?php class teste { public static $url = null; public static function getURLList(){ global $_SERVER; $startUrl = strlen( $_SERVER["DOCUMENT_ROOT"] ) -1; $excludeUrl = substr( $_SERVER["SCRIPT_FILENAME"], $startUrl, -10 ); $request = $_SERVER['REQUEST_URI']; $request = substr( $request, strlen( $excludeUrl ) ); $urlTmp = explode("?", $request); $request = $urlTmp[ 0 ]; $urlExplodida = explode("/", $request); $retorna = array(); for($a = 0; $a <= count($urlExplodida); $a ++){ if(isset($urlExplodida[$a]) AND $urlExplodida[$a] != ""){ array_push($retorna, $urlExplodida[$a]);}} self::$url = $retorna;} } var_dump(teste::getURLList()); // null Dessa vez deu null, quando o meu primeiro teste deu 'study.php'. Claro que o meu teste não é válido, pois não sei como emular a função "self::$url" fora do contexto de uma classe. Por outro lado, se você respirar fundo, e lembrar do curso de programação, onde o professor ensinou que toda função retorna um valor, você notará que a função getURLList não segue a orientação do professor. Eu acrescentei nesse código uma instrução assim "return self::$url;" e assim consegui chegar no mesmo valor que eu apurei na unha. E assim hoje eu aprendi um pouco de classe, basta lembrar do curso de função.
-
Desde 1990 que venho fugindo do tópico classe, mas em 2022 decidi estudar o Laravel para ver se eu aprendo um pouco de classe. Por enquanto, ainda nada. O seu tópico é interessante, pois o núcleo do seu trabalho envolve uma classe chamada url. Assim, eu decidi estudá-la, mas o resultado foi desastre. Primeiro chamei de public tudo o que é private. A seguir fui ver o valor de url::getURLList, e obtive null. Então, desmontei a função getURLList para ver se eu chegava no mesmo resultado, mas não consegui: astudy.php <?php include('url.php'); var_dump(url::getURL(0)); // study.php var_dump(url::getBase()); // /astudy/a var_dump(url::getURLList()); // null var_dump(strlen( $_SERVER["DOCUMENT_ROOT"] )-1); // 12 $startUrl = strlen( $_SERVER["DOCUMENT_ROOT"] ) -1; var_dump($_SERVER['DOCUMENT_ROOT']); // C:/wamp64/www var_dump($_SERVER['REQUEST_URI']); // /astudy/astudy.php $request = $_SERVER['REQUEST_URI']; var_dump($_SERVER['SCRIPT_FILENAME']); // C:/wamp64/www/astudy/astudy.php $excludeUrl = substr( $_SERVER["SCRIPT_FILENAME"], $startUrl, -10 ); $request= substr($request,strlen($excludeUrl)); var_dump($request); // study.php $urlTmp = explode("?", $request); var_dump($urlTmp); // array 0 => study.php $request = $urlTmp[ 0 ]; var_dump($request); // study.php $urlExplodida = explode("/", $request); var_dump($urlExplodida); // array 0 => study.php $retorna = array(); var_dump($retorna); // array empty for($a = 0; $a <= count($urlExplodida); $a ++){ if(isset($urlExplodida[$a]) AND $urlExplodida[$a] != ""){ array_push($retorna, $urlExplodida[$a]);}} var_dump($retorna); // array 0 => study.php url::$url = $retorna; var_dump(url::$url); // array 0 => study.php Esse é um trabalho bem difícil. Para mim, a classe é ainda um mistério. Não sei ainda como depurar uma classe.
-
esconder url apenas esconder a url nomedosite.com.br na impressao
pergunta respondeu ao vilcek de Frank K Hosaka em PHP
Na hora de imprimir, desmarque a opção Cabeçalhos e Rodapés.- 1 resposta
-
- esconder
- esconder nome
- (e %d mais)
-
Eu daria um jeito de pegar as informações numa variável e depois salvar o conteúdo da variável num arquivo do tipo webp ou jpg, assim: <?php $teste=file_get_contents("teste.webp"); file_put_contents("teste2.webp",$teste);
-
Meu formulário php após salvar fica tentando abrir meu arquivo processa.php no browser.
pergunta respondeu ao Fsbarbosa de Frank K Hosaka em PHP
Tentei simular o problema nesses dois códigos: index.php <?php header('location:processa.php'); ------------------------------ processa.php <form> <input type=submit name=teste value=teste> </form> <?php if(isset($_GET['teste'])){ echo "tudo foi salvo"; echo "<p><input type=submit onclick=location.replace('index.php')>";} Mas, eu não consegui obter a mensagem de erro. Tem jeito de divulgar o seu código? Eu fiquei bem curioso. -
Eu criei um pequeno código para diminuir e renovar o crédito. O crédito eu coloquei na tabela usuários no MySQL, assim: CREATE TABLE `usuarios` ( `id` int NOT NULL AUTO_INCREMENT, `credito` int DEFAULT NULL, `usuario` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci astudy.php <script> function atualizartela(){location.replace("astudy.php")} </script> <?php $id_usuario = 1; $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from usuarios where id=$id_usuario") or die('Erro de conexão usuarios!'); $rows=$query->fetch_assoc(); $usuario=$rows['usuario']; $id_usuario=$rows['id']; $credito=$rows['credito']; echo " <body style='width:50%;margin:0 auto'><div style=height:5%></div> <form method=post> <p>Usuário: <input value=$usuario> <p>Crédito: <input name=credito value=$credito> <p><input type=hidden name=id_usuario value=$id_usuario> <p><input type=submit name=agendar value=agendar> <p><input type=submit name=renovar value='Renovar Crédito'> </form> <p><input type=submit value='Atualizar Tela' onclick=atualizartela()>"; if (isset($_POST['agendar'])){ $saldo=$_POST['credito']; $id_usuario=$_POST['id_usuario']; if($saldo==0){echo "você está sem crédito";exit;} $saldo--; $query=$mysqli->query("update usuarios set credito=$saldo where id=$id_usuario"); if(mysqli_affected_rows($mysqli)){ echo "<p>você foi agendado";exit;} else {echo "<p>não deu!";exit;}} if(isset($_POST['renovar'])){ $id_usuario=$_POST['id_usuario']; $query=$mysqli->query("update usuarios set credito=5 where id=$id_usuario"); if(mysqli_affected_rows($mysqli)){ echo "<p>crédito renovado";} else {echo "<p>não deu!";}}
-
Free Online OCR - convert PDF to Word, Images to text, JPEG to Word
-
Ao invés de fazer um arquivo para cada rotina, eu coloquei a rotina de atualização e confirmação no código principal. astudy.php <style> body {color:#00a;width:90%;margin:0 auto} input {display:block;height: 22px;border: 1px solid #ccc; border-radius: 4px;padding: 4px 10px;} </style> <script> const handlePhone = (event) => {let input = event.target; input.value = phoneMask(input.value)} const phoneMask = (value) => {if (!value) return "" value = value.replace(/\D/g,'') value = value.replace(/(\d{2})(\d)/,"($1) $2") value = value.replace(/(\d)(\d{4})$/,"$1-$2") return value} function alerta(){alert("rotina em andamento")} </script> <div style=height:5%></div> <?php $mysqli=new mysqli("localhost","root","","astudy"); if(isset($_GET['mat'])){ $matricula = filter_input(INPUT_GET,"mat"); $query=$mysqli->query("select * from tbcadastro where id=$matricula"); $row=$query->fetch_assoc(); echo " <h3 style=color:#F60>Atualizar Cadastro</h3> <form> <table> <tr><td>Matricula:<td><input size=10 value=".$row['id']." disabled> <input type=hidden name=matricula value=".$row['id']."> <tr><td>Nome:<td><input name=nome size=45 value='".$row['nome']."'> <tr><td>Email:<td><input type=email name=email size=45 value=".$row['email']."> <tr><td>Data De Nascimento:<td><input type=date name= nascimento value=".$row['nascimento']."> <tr><td>Telefone:<td> <input type=tel maxlength=15 onkeyup=handlePhone(event) name=telefone value='".$row['telefone']."'> <tr><td>Curso:<td><select name=curso><option>".$row['curso']."</option> <option>Desenvolvimento De Sistemas</option> <option>Administração</option> <option>Nutrição</option> <option>Recursos Humanos</option> <option>Química</option> </select> <tr><td><input type=submit> <tr><td> </table></form> <button onclick=location.replace('astudy.php')>Voltar</button>"; exit;} if(isset($_GET['matricula'])){ $matricula = filter_input(INPUT_GET, "matricula"); $nome = filter_input(INPUT_GET, "nome"); $email = filter_input(INPUT_GET, "email"); $nascimento = filter_input(INPUT_GET, "nascimento"); $telefone = filter_input(INPUT_GET, "telefone"); $curso = filter_input(INPUT_GET, "curso"); $query = $mysqli->query("update tbcadastro set nome='$nome', email='$email', nascimento='$nascimento', telefone='$telefone', curso='$curso' where id='$matricula'"); echo "update tbcadastro set nome='$nome', email='$email', nascimento='$nascimento', telefone='$telefone', curso='$curso' where id='$matricula'<br>"; if(mysqli_affected_rows($mysqli)){header('location:astudy.php');}else{ echo "problema: não deu <br>"; echo "<input type=submit value=voltar onclick=location.replace('astudy.php')>"; exit;} } ?> <table><tr style=color:#F60><th>Matrícula<th>Nome<th>Email<th>Nascimento <th>Telefone<th>Curso<th><th><button onclick=alerta()>Voltar</button> <?php $query=$mysqli->query("select * from tbcadastro"); while ($row=$query->fetch_assoc()) { $matricula=$row['id']; $nascimento=date('d/m/Y',strtotime($row['nascimento'])); echo "<tr><td>$matricula<td>".$row['nome']."<td>".$row['email']."<td>$nascimento"; echo "<td>".$row['telefone']."<td>".$row['curso']; echo "<td><button onclick=alerta()>Deletar</button>"; echo "<td><button onclick=location.replace('?mat=$matricula')>Atualizar</button>"; } echo "</table>"; A estrutura da tabela no MySQL é essa: CREATE TABLE `tbcadastro` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(45) COLLATE utf8mb4_general_ci NOT NULL, `email` varchar(42) COLLATE utf8mb4_general_ci DEFAULT NULL, `nascimento` date DEFAULT NULL, `telefone` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, `curso` varchar(45) COLLATE utf8mb4_general_ci DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci
- 1 resposta
-
- html
- javascript
-
(e %d mais)
Tags:
-
Depois de três anos, eu consegui fazer o modal do Bootstrap funcionar. Ele é muito legal, quando funciona: <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script> <body style="width:50%;margin:0 auto"><div style=height:10%></div> <button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#modalEditar"> Cadastrar Novo Usuário </button> <?php if(isset($_POST['nome'])){ echo "<div style=height:10%></div>"; echo "<p>Fazer rotina para cadastrar novo usuário"; echo "<p>Nome: ".$_POST['nome']; echo "<p>Email: ".$_POST['email']; echo "<p>Senha: ".$_POST['senha']."<p>";} ?> <div class="modal fade" id="modalEditar" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel" aria-hidden="true"> <div class="modal-dialog" role="document"> <div class="modal-content"> <div class="modal-header"> <h5 class="modal-title" id="exampleModalLabel">Cadastro de Usuários</h5> <button type="button" class="btn-close" aria-label="Close" data-bs-toggle="modal" data-bs-target="#modalEditar"></button> </div> <div class="modal-body"> <form method=post> <div class="form-group"> Nome <input class="form-control" id="" placeholder="Insira o Nome" name="nome"> </div> <div class="form-group"> Email <input type="email" class="form-control" id="" name="email" placeholder="Insira o Email"> </div> <div class="form-group"> Senha <input class="form-control" id="" placeholder="Insira a Senha" name="senha"> </div></div> <div class="modal-footer"> <button type="button" class="btn btn-secondary" data-dismiss="modal" data-bs-toggle="modal" data-bs-target="#modalEditar">Cancelar</button> <button type="submit" name="btn-salvar" class="btn btn-primary">Salvar</button> </form> </div></div></div></div>
-
Ontem eu estava escrevendo um código num arquivo blade.php no Laravel, e tentei escrever $vetor->Amaral e eu recebi a mensagem de erro. Então, mudei para $vetor['Amaral'] e também recebi mensagem de erro. Para saber o que eu estava fazendo de errado, eu usei o comando dd($vetor); e o Laravel exibiu um enorme painel cheio de informação chamado Collections. O PHP, até eu onde eu sei, não tem esse recurso chamado Collections. O máximo que ele tem é um json, e montei esse código para saber a diferença entre um vetor e um objeto: <?php $vetor=[0=>["Amaral"=>"Ellen"]]; var_dump($vetor); // array 0=> array 'Amaral' => string 'Ellen' $subvetor=$vetor[0]; echo $subvetor['Amaral']; // Ellen $json=json_decode(json_encode($vetor)); var_dump($json); // array 0=> object(stdClass) public 'Amaral' => string 'Ellen' $subjson=$json[0]; echo $subjson->Amaral; // Ellen Através desse código, é fácil perceber que não dá para obter o valor da chave Amaral com o comando $vetor['Amaral'] ou $vetor->Amaral, isso porque o Amaral não é a chave do $vetor. O Amaral é a chave de um outro vetor que está dentro de outro vetor. E só dá para usar a gramática $chave->valor se você estiver trabalhando com um objeto e não com um vetor. Para saber quem é vetor e quem é objeto, só o comando var_dump é capaz de mostrar a diferença, ele diz em que parte o objeto é um vetor (array) ou objeto. Estudar Laravel é muito bom. Eu ainda não sei o que é um "framework", mas a cada dia aprendo a gostar cada vez mais do PHP.
-
Como gerar um array dinamicamente através do PHP
pergunta respondeu ao flaviokowalske de Frank K Hosaka em PHP
Consegui montar o gerenciador de arquivos do PHP, mas só consigo ordenar os arquivos pela data se usar o formato Y-m-d. <?php $dir = new DirectoryIterator("C:\wamp64\www"); foreach($dir as $file) { if ($file->isFile()) { $unix_timestamp=$file->getMTime(); $datetime=new DateTime("@$unix_timestamp"); $data=$datetime->format('Y/m/d H:i:s'); $tipo = pathinfo($file,PATHINFO_EXTENSION); $nome = $file->getFilename(); $tamanho = $file->getSize()." bytes"; $files[] = Array($data,$nome,$tipo,$tamanho);}}; sort($files); echo "<pre>";print_r($files);echo "</pre>";