Frank K Hosaka
Membros-
Total de itens
1.678 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
Ontem eu decidi reescrever um código que eu fiz para a entrada no estoque, baseado no código do produto do fornecedor. Era do tempo que ainda não conhecia o método POST. Para usar o método POST eu criei um formulário genérico no menu.php com id=frmg e um input genérico com o id=inpg. O grande problema do POST é que não dá para mandar um vetor com um monte de variáveis, assim achei melhor trabalhar com um objeto para representar um produto. O conceito de objeto é bacana, o problema é que ele desaparece assim que você usa o método POST. Para salvar o máximo de informação dentro do objeto, eu utilizei o recurso do SESSION. <?php include("menu.php"); //o menu.php abre uma nova sessão function df($data) {$fmt = date('d/m/Y',strtotime($data)); return $fmt;} function floatvalue($val){$val = str_replace(",",".",$val); $val = preg_replace('/\.(?=.*\.)/', '', $val); return floatval($val);} $mysqli=new mysqli("localhost","root","","diario"); //criar objeto cProd se ele não existir if (!class_exists('cProd')){ class cProd { public $docto; public $codp; public $pessoa; public $dia; public $id; public $codprodf; public $codprod; public $prod; public $qt; public $custoatual; public $custototal; public $custoanterior; public function getDocto(){return this->docto;} public function getCodp(){return this->codp;} public function getPessoa(){return this->pessoa;} public function getDia(){return this->dia;} public function getId(){return this->id;} public function getCodprodf(){return this->codprodf;} public function getCodprod(){return this->codprod;} public function getProd(){return this->prod;} public function getQt(){return this->qt;} public function getCustoAtual(){return this->custoatual;} public function getCustoTotal(){return this->custototal;} public function getCustoAnterior(){return this->custoanterior;} } $cProd=new cProd(); $query=$mysqli->query("select * from tbsupervariavel"); $row=$query->fetch_assoc(); $cProd->docto=$row['docto']; $cProd->codp=$row['codp']; $cProd->pessoa=$row['pessoa']; $cProd->dia=$row['dia']; } //excluir item na tbentraprod if (isset($_POST['excluir'])){ $id=$_POST['excluir']; $query=$mysqli->query("delete from tbentraprod where id=$id"); echo "<script>window.replace('astudy.php')</script>";} //incluir novo item na tbentraprod, depois de selecionado o produto if (isset($_POST['incluir'])){ $codprod=$_POST['incluir']; $cProd=unserialize($_SESSION['cProd']); $cProd->codprod=$codprod; $query=$mysqli->query("select * from tbprod where codprod = $codprod"); $row=$query->fetch_assoc(); $cProd->prod=$row['prod']; $cProd->custoanterior=$row['custo']; $cProd->custoatual=round($cProd->custototal/$cProd->qt,2); $sql="insert into tbentraprod (codprodf,codprod,prod,dia,docto,qt,codp,custototal,custoanterior,custoatual) values ('$cProd->codprodf',$cProd->codprod,'$cProd->prod','$cProd->dia',$cProd->docto,$cProd->qt,$cProd->codp, $cProd->custototal, $cProd->custoanterior, $cProd->custoatual)"; $query=$mysqli->query($sql); echo "<script>location.replace('astudy.php')</script>";} //incluir novo item na tbentraprod if (isset($_POST['codprodf'])){ $cProd->codprodf=$_POST['codprodf']; $cProd->qt=floatvalue($_POST['qt']); $cProd->custototal=floatvalue($_POST['custototal']); $query=$mysqli->query("select * from tbprod where codforn like '%$cProd->codprodf%' order by prod"); $num_rows=mysqli_num_rows($query); if ($num_rows==1){ $row=$query->fetch_assoc(); $cProd->codprod=$row['codprod']; $cProd->prod=$row['prod']; $cProd->custoatual=round($cProd->custototal/$cProd->qt,2); $cProd->custoanterior=$row['custo']; $sql="insert into tbentraprod (codprodf,codprod,prod,dia,docto,qt,codp,custototal,custoanterior,custoatual) values ('$cProd->codprodf',$cProd->codprod,'$cProd->prod','$cProd->dia',$cProd->docto,$cProd->qt,$cProd->codp, $cProd->custototal, $cProd->custoanterior, $cProd->custoatual)"; $query=$mysqli->query($sql); echo "<script>window.replace('astudy.php')</script>";} if ($num_rows==0){ echo "<font color=red>Não há nenhum produto com o codprodf $cProd->codprodf."; echo "<input type=submit value=Continuar onclick=location.replace('astudy.php')>"; exit;} if ($num_rows>1){ $_SESSION['cProd']=serialize($cProd); echo "Há muitos produtos com codprodf $cProd->codprodf, escolha um<br><br>"; echo "<table>"; while ($row=$query->fetch_assoc()){ $codprod=$row['codprod']; $prod=$row['prod']; $lcodprod="<a onclick=inpg.value=$codprod;inpg.name='incluir';frmg.submit()>$codprod</a>"; echo "<tr><td>$lcodprod<td>$prod";} echo "</table>";exit;}} //exibe a tbentraprod $query=$mysqli->query("select * from tbentraprod"); echo "<br>Documento $cProd->docto de <a onclick=location.replace('diario.php')>".df($cProd->dia)."</a><br> Fornecedor <a onclick=location.replace('pessoa.php')>$cProd->pessoa</a> <table> <tr><th>CodProdF<th>Produto<th>Qt<th>Total<th>Unitario<th>Anterior"; while ($linha = $query->fetch_assoc()) { $id=$linha['id']; $codprodf = $linha['codprodf']; $java='inpg.value='.$id.';inpg.name="excluir";frmg.submit()'; $codprodf="<a onclick='$java'>$codprodf</a>"; $prod=$linha['prod']; $qt=dec($linha['qt']); $custototal = dec($linha['custototal']); $custoatual = $linha['custoatual']; $custoanterior = $linha['custoanterior']; if ($custoatual>$custoanterior) {$custoatual="<font color=red>".dec($linha['custoatual']);} if ($custoanterior>$custoatual) {$custoanterior="<font color=red>".dec($linha['custoanterior']);} if ($custoatual == $custoanterior) {$custoatual = dec($custoatual); $custoanterior = dec($custoanterior);} $custoatual=dec($custoatual); $lcodprodf="<a onclick=inpg.value=$id;inpg.name='excluir';frmg.submit()>$codprodf</a>"; echo "<tr><td>$lcodprodf<td align='left'>$prod<td align=right>$qt<td align=right>$custototal <td align=right>$custoatual<td align=right>$custoanterior";} //pega um novo item $query = $mysqli->query("select sum(custototal) as soma from tbentraprod"); $row = $query->fetch_assoc(); $soma = dec(floatval($row['soma'])); echo "<form id=frmincluir method=post> <tr><td><input id=codprodf name=codprodf size=5 autocomplete=off onchange=qt.focus() placeholder=codprodf> <td></td><td><input name=qt id=qt size=2 autocomplete=off onchange=custototal.focus() placeholder=qt> <td><input name=custototal id=custototal size=5 autocomplete=off onchange=frmincluir.submit() placeholder=custo></form> <script>codprodf.focus()</script> <tr><td><td><td><b>Total</b><td align=right><b>".$soma."</b><td> <form method=post><input name='encerrar' type='submit' value='encerrar'></form></table>";
-
<?php class vendedor { public $nome; public function getNome(){return this->nome;}}; $v1=new vendedor(); $v1->nome="Marcos Paulo"; var_dump($v1); //resultado object(vendedor)[1] public 'nome' => string 'Marcos Paulo' (length=12) echo $v1->nome."\n"; //resultado Marcos Paulo (com um espaço a mais) echo $v1->nome; //resultado Marcos Paulo (sem um espaço a mais) class idade extends vendedor { public $idade; public function getIdade() {return this->idade;}}; $v1->idade=32; var_dump($v1); //resultado //object(vendedor)[1] // public 'nome' => string 'Marcos Paulo' (length=12) // public 'idade' => int 32 class varios extends vendedor { public $cidade; public $email; public $telefone; public $senha; public function getCidade() {return this->cidade;} public function getEmail() {return this->email;} public function getTelefone() {return this->telefone;} public function getSenha() {return this->senha;}} $v1->cidade="São Paulo"; $v1->email="marcospp@bloggs.com"; $v1->telefone="011 00345 6000"; $v1->senha="mp?123"; foreach($v1 as $key=>$value){print "$key=>$value\n";} //resultado: //nome=>Marcos Paulo idade=>32 cidade=>São Paulo email=>marcospp@bloggs.com telefone=>011 00345 6000 senha=>mp?123
-
O código que segue vai mandar você para uma página que não existe, mas se você prestar atenção no cabeçalho do navegador, notará que o código consegue passar para a página solicitada o valor do frete e o respectivo bairro. Dá para fazer tudo em HTML, mas usei o PHP, porque o meu conhecimento em HTML é bem precário. astudy.php <?php $java="inpfrete.value=selebairro.options[selectedIndex].value;inpbairro.value=selebairro.options[selectedIndex].text;frmteste.submit()"; echo"<form id=frmteste action=notfound.php>"; echo"<select id=selebairro onchange=$java>"; echo"<option>Selecione uma opçao</option>"; echo"<option value=10>Centro</option>"; echo"<option value=20>V Mariana</option>"; echo"</select>"; echo"<input id=inpfrete type=hidden name=frete><input id=inpbairro type=hidden name=bairro>"; echo"</form>"; Esse código é apenas instrutivo, só para mostrar os atributos do value e text do elemento select.options[selectedIndex]. O código dá para ser enxugado assim: astudy.php <?php $java="inpbairro.value=selebairro.options[selectedIndex].text;frmteste.submit()"; echo"<form id=frmteste action=notfound.php>"; echo"<select id=selebairro name=frete onchange=$java>"; echo"<option>Selecione uma opçao</option>"; echo"<option value=10>Centro</option>"; echo"<option value=20>V Mariana</option>"; echo"</select>"; echo"<input id=inpbairro type=hidden name=bairro>"; echo"</form>";
-
LANÇAR DADOS VINDO DO BANCO DE DADOS DE FORMA AGRUPADO!
pergunta respondeu ao DOUGLAS HENN de Frank K Hosaka em Tutoriais & Dicas - PHP
Olá, Oliver. O problema é que eu preciso do frete por bairro, eu preciso passar os dois valores para uma outra página, usando o poderoso select. O problema do select é que só passa apenas um, ou o bairro ou o frete, mas não os dois ao mesmo tempo. Eu pensei em usar o Json, mas só tive dor de cabeça e nada de resultado prático. Eu não tenho outra escolha senão fazer uma outra bela gambiarra. O elemento select está assim <select name=selebairro><option value=frete>bairro</option></select> Do jeito que está, ele só passa o valor do frete. Com a ajuda do Google, descobri que é possível pegar o bairro, veja só: correção do código lancar_entregas.php <h2>Selecione o Bairro</h2> <?php $java="inpvalor.value=selebairro.options[selectedIndex].value;inpbairro.value=selebairro.options[selectedIndex].text"; echo "<select id=selebairro name=valor onchange='$java'>"; echo "<option>Selecione o bairro</option>"; while($rows_bairros = mysqli_fetch_assoc($resultado_bairros)){ $bairro=$rows_bairros['bairro']; $frete=$rows_bairros['valor']; echo "<option value=$frete>$bairro</option>";} echo "</select>"; echo "<br><br><input id=inpvalor value='frete'><input id=inpbairro type=hidden name=bairro>"; ?> <br><br> -
LANÇAR DADOS VINDO DO BANCO DE DADOS DE FORMA AGRUPADO!
pergunta respondeu ao DOUGLAS HENN de Frank K Hosaka em Tutoriais & Dicas - PHP
O problema está aqui: <select id="selebairro" name="bairro" value="bairro" onchange=inpvalor.value=selebairro.options[selectedIndex].value> <option>Selecione o bairro</option> <?php while($rows_bairros = mysqli_fetch_assoc($resultado_bairros)){ $bairro=$rows_bairros['bairro']; $frete=$rows_bairros['valor']; echo "<option value=$frete>$bairro</option>";} echo "</select>"; echo "<br><br><input id=inpvalor name=inpvalor value='frete'>"; O select com o nome de bairro está passando o valor do frete da opção selecionada e não o bairro. Vou ver como consertar isso. -
LANÇAR DADOS VINDO DO BANCO DE DADOS DE FORMA AGRUPADO!
pergunta respondeu ao DOUGLAS HENN de Frank K Hosaka em Tutoriais & Dicas - PHP
Em lancar_entregas.php, a seguinte linha precisa ser corrigido: echo "<br><br><input id=inpvalor value='frete'>"; para echo "<br><br><input id=inpvalor name=valor value='frete'>"; Já proc_lancar_entregas.php, eu fiz um monte de modificações que você precisa adaptar no seu código, ou pelo menos, tente só corrigir a linha de cima, e teste. A minha maior preocupação é que esse é um aplicativo de rede, e você precisa de uma assessoria melhor com alguém mais experiente. Basicamente, estou estudando a rede com o seu projeto, e eu gostei de fazer o código que puxa os valores de quem está logado, mas editar o banco de dados, isso é outra história bem diferente, e que eu não tenho como resolver. Durante os vinte útimos anos, eu criei um banco de dados para cada usuário, isso foi um inferno, eu detestei, mas também não sei como resolver esse problema. <?php session_start(); $mysqli=new mysqli("localhost","root","","astudy"); $bairro = $_POST['bairro']; $valor = $_POST['valor']; $entregador = $_POST['entregador']; $result_entregas = "INSERT INTO tbentrega (bairro, valor, entregador) VALUES ('$bairro', '$valor', '$entregador')"; $resultado_entregas = mysqli_query($mysqli, $result_entregas); if(mysqli_insert_id($mysqli)){ $_SESSION['msg'] = "<center><p style='color:green;'>Entrega lançada com Sucesso</p></center>"; header("Location: lancar_entregas.php"); }else{ $_SESSION['msg'] = "<p style='color:red;'>A entrega não foi lançada com sucesso</p>"; header("Location: lancar_entregas.php");} -
Qual seria a melhor forma de acessar a chave 'id' do array abaixo com php?
pergunta respondeu ao Cristyan Henrich de Frank K Hosaka em PHP
Bom, eu fiz mais uma tentativa, dividi o grande problema em menores, e assim ficou: <?php $array = // copiar do fórum $json=json_decode($array,true); $jsonAll0=$json[0][0]['all']; $jsonAll1=$json[1][0]['all']; $jsonCompl0=$json[0][1]['completed']; $jsonCompl1=$json[1][1]['completed']; echo "Todos os ids do grupo all número 0<br>"; foreach($jsonAll0 as $key=>$value) { foreach($value as $key2=>$value2){ if($key2=="id"){echo "$key2:$value2<br>";}}} echo "Todos os ids do grupo all número 1<br>"; foreach($jsonAll1 as $key=>$value) { foreach($value as $key2=>$value2){ if($key2=="id"){echo "$key2:$value2<br>";}}} echo "Todos os ids do grupo completed número 0<br>"; foreach($jsonCompl0 as $key=>$value) { foreach($value as $key2=>$value2){ foreach($value2 as $key3=>$value3){ if($key3=="id"){echo "$key3:$value3<br>";}}}} echo "Todos os ids do grupo completed número 1<br>"; foreach($jsonCompl1 as $key=>$value) { foreach($value as $key2=>$value2){ foreach($value2 as $key3=>$value3){ if($key3=="id"){echo "$key3:$value3<br>";}}}} -------------------------------------------------------------------------------- Resultado: Todos os ids do grupo all número 0 id:2 id:3 id:4 id:5 Todos os ids do grupo all número 1 id:7 id:8 id:9 Todos os ids do grupo completed número 0 id:15 id:16 Todos os ids do grupo completed número 1 id:3 id:4 id:13 -
Qual seria a melhor forma de acessar a chave 'id' do array abaixo com php?
pergunta respondeu ao Cristyan Henrich de Frank K Hosaka em PHP
Agora, fazendo a prova dos nove, eu percebi que o meu algoritmo está errado. Ele não pega nenhum id do grupo completed. Que coisa! -
Qual seria a melhor forma de acessar a chave 'id' do array abaixo com php?
pergunta respondeu ao Cristyan Henrich de Frank K Hosaka em PHP
Para ter apenas os valores do id, eu faria assim: <?php $array= // copiar do forum $json=json_decode($array); foreach($json as $key=>$value){ foreach($value as $key1=>$value1){ foreach($value1 as $key2=>$value2){ foreach($value2 as $key3=>$value3){ foreach($value3 as $key4=>$value4){ if ($key4=="id"){ echo "---->campo4 $key4 : $value4 <br>"; }}}}}} -------------------------------------------- resultado: ---->campo4 id : 2 ---->campo4 id : 3 ---->campo4 id : 4 ---->campo4 id : 5 ---->campo4 id : 7 ---->campo4 id : 8 ---->campo4 id : 9 -
Qual seria a melhor forma de acessar a chave 'id' do array abaixo com php?
pergunta respondeu ao Cristyan Henrich de Frank K Hosaka em PHP
Eu consegui chegar na chave id com a ajuda de vários foreach: <?php $array= // copiar do fórum $json=json_decode($array); foreach($json as $key=>$value){ echo "campo principal $key<br>"; foreach($value as $key1=>$value1){ echo "->campo1 $key1 <br>"; foreach($value1 as $key2=>$value2){ echo "-->campo2 $key2 <br>"; foreach($value2 as $key3=>$value3){ echo "--->campo3 $key3 <br>"; foreach($value3 as $key4=>$value4){ echo "---->campo4 $key4 <br>"; }}}}} ---------------------------------------------------------------------------- resultado: campo principal 0 ->campo1 0 -->campo2 all --->campo3 2 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 3 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 4 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 5 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress ->campo1 1 -->campo2 completed --->campo3 0 ---->campo4 15 --->campo3 1 ---->campo4 16 campo principal 1 ->campo1 0 -->campo2 all --->campo3 7 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 8 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress --->campo3 9 ---->campo4 id ---->campo4 course ---->campo4 completion ---->campo4 deletioninprogress ->campo1 1 -->campo2 completed --->campo3 0 ---->campo4 3 --->campo3 1 ---->campo4 4 --->campo3 2 ---->campo4 13 -
LANÇAR DADOS VINDO DO BANCO DE DADOS DE FORMA AGRUPADO!
pergunta respondeu ao DOUGLAS HENN de Frank K Hosaka em Tutoriais & Dicas - PHP
Eu não sou profissional, só sei fazer gambiarra: <h2>Selecione o Bairro</h2> <select id="selebairro" name="bairro" value="bairro" onchange=inpvalor.value=selebairro.options[selectedIndex].value> <option>Selecione o bairro</option> <?php while($rows_bairros = mysqli_fetch_assoc($resultado_bairros)){ $bairro=$rows_bairros['bairro']; $frete=$rows_bairros['valor']; echo "<option value=$frete>$bairro</option>";} echo "</select>"; echo "<br><br><input id=inpvalor value='frete'>"; ?> <br><br> -
Função genérica para atualizar chave em JSON duplicada usando o PHP
pergunta respondeu ao Jorge Kania de Frank K Hosaka em PHP
Depois de várias tentativas, eu acabei desistindo. O json não é nada fácil. Para não abandonar você, a minha sugestão é fazer uma boa gambiarra, não trabalhar com o json, e alterar o texto assim: <style>form{margin: 0}</style> <?php session_start(); function str_replace_first($from, $to, $subject){ $from = '/'.preg_quote($from, '/').'/'; return preg_replace($from, $to, $subject, 1); } if (!isset($_POST['novo'])){ $_SESSION['json']='{"CREDITOR": {"TAX": {"TAC": 0.7},"ENABLE": "true","PRODUCTION": {"email": "email@dominio.com","senha": "12457895", "BASE_URL": "https://domino.com"}, "HOMOLOGATION": {"email": "email@dominio.com","senha": "12457895","BASE_URL": "https://domino.com"}, "TARGET_VALUES": 5000000}}';} if (isset($_POST['novo'])){ $antigo=$_POST['antigo']; $novo=$_POST['novo']; $texto=$_SESSION['json']; $novotexto=str_replace_first($antigo,$novo,$texto); $_SESSION['json']=$novotexto;} echo $_SESSION['json']; echo "<table><tr height=100px><td>"; echo "<form method=post>O que você quer mudar?<td><input name=antigo>"; echo "<tr><td>Para?<td><input name=novo onchange=submit()></form></td>"; Caso você queira substituir os dois emails ao mesmo tempo, mude a função str_replace_first por str_replace. -
Função genérica para atualizar chave em JSON duplicada usando o PHP
pergunta respondeu ao Jorge Kania de Frank K Hosaka em PHP
Ok, entendi. Eu ainda não sei o que é front-back end e nem tampouco json. Eu só tenho um notebook e um celular, mas como tenho tempo de sobra, posso começar o meu projeto de modificar um json. Vou começar com {"nome":"frank"}, depois com {"nome":"frank","nome:"joão"}, depois com {"canalhas":{"nome":"frank,"nome":"joão"}}. Como não conheço nada de json, vou ter que estudar se é possível 1) o PHP identificar um json de verdade de um fajuto 2) o PHP quantificar quantos json tem um json 3) o PHP tabular a chave e o valor 4) se o valor for outro json, ele tabular novamente 5) do lado de cada valor vou colocar um input (para evitar o efeito post, vou dar um jeito do input focar outro input, quando o usuário apertar {ENTER}) 6) finalmente sincronizar todos os inputs com os respectivos valores. Boa sorte para nos dois. -
Função genérica para atualizar chave em JSON duplicada usando o PHP
pergunta respondeu ao Jorge Kania de Frank K Hosaka em PHP
Boa noite, json não é a minha praia, mesmo assim eu só achei uma chave no exemplo, fiz uma enorme modificação no exemplo, e consegui um monte de chaves. Veja só: <?php $exemplo='{"CREDITOR": {"TAX": {"TAC": 0.7},"ENABLE": "true","PRODUCTION": {"email": "email@dominio.com","senha": "12457895", "BASE_URL": "https://domino.com"}, "HOMOLOGATION": {"email": "email@dominio.com","senha": "12457895","BASE_URL": "https://domino.com"}, "TARGET_VALUES": 5000000}}'; $json=json_decode($exemplo); foreach($json as $key=>$value){var_dump($key);} // resultado: C:\wamp64\www\frank\astudy.php:6:string 'CREDITOR' (length=8) $exemplo2='{"CREDITOR": {"TAX": {"TAC": 0.7}},"ENABLE": "true","PRODUCTION": {"email": "email@dominio.com","senha": "12457895", "BASE_URL": "https://domino.com"}, "HOMOLOGATION": {"email": "email@dominio.com","senha": "12457895","BASE_URL": "https://domino.com"}, "TARGET_VALUES": 5000000}'; $json=json_decode($exemplo2); foreach($json as $key=>$value){var_dump($key);} // resultado: //C:\wamp64\www\frank\astudy.php:13:string 'CREDITOR' (length=8) //C:\wamp64\www\frank\astudy.php:13:string 'ENABLE' (length=6) //C:\wamp64\www\frank\astudy.php:13:string 'PRODUCTION' (length=10) //C:\wamp64\www\frank\astudy.php:13:string 'HOMOLOGATION' (length=12) //C:\wamp64\www\frank\astudy.php:13:string 'TARGET_VALUES' (length=13) Por outro lado, se o primeiro exemplo estiver certo, tendo somente uma chave, eu fiz essa gambiarra para conseguir as subchaves: <?php $exemplo='{"CREDITOR": {"TAX": {"TAC": 0.7},"ENABLE": "true","PRODUCTION": {"email": "email@dominio.com","senha": "12457895", "BASE_URL": "https://domino.com"}, "HOMOLOGATION": {"email": "email@dominio.com","senha": "12457895","BASE_URL": "https://domino.com"}, "TARGET_VALUES": 5000000}}'; $json=json_decode($exemplo); foreach($json as $key=>$value){var_dump($key); foreach($value as $subkey=>$subvalue){var_dump($subkey);}} //resultado: //C:\wamp64\www\frank\astudy.php:6:string 'CREDITOR' (length=8) //C:\wamp64\www\frank\astudy.php:7:string 'TAX' (length=3) //C:\wamp64\www\frank\astudy.php:7:string 'ENABLE' (length=6) //C:\wamp64\www\frank\astudy.php:7:string 'PRODUCTION' (length=10) //C:\wamp64\www\frank\astudy.php:7:string 'HOMOLOGATION' (length=12) //C:\wamp64\www\frank\astudy.php:7:string 'TARGET_VALUES' (length=13) Essa é uma gambiarra bem particular, ele só funciona para o json que tiver apenas uma chave e o valor correspondente é um json embutido com outras chaves. A minha sugestão é você adaptar o seu código somente às subchaves. -
Blog WP tem propaganda de cassino e jogos online como se livrar disso?
pergunta respondeu ao The_Overmix de Frank K Hosaka em PHP
Truque bacana. O link diz que é um endereço, mas ele acaba vindo direto para cá. Como isso é possível? -
Hoje eu encontrei um tópico interessante no Fórum Script Brasil, ele está nesse link: Eu tentei trabalhar no código dele, levei o dia todo, mas eu consegui! O código é bem simples: login.php <?php session_start(); echo "<form method=post>Nome<input name=login></form>"; if (isset($_POST['login'])){ $_SESSION['logado']=$_POST['login']; header("location:logado.php"); ---------------------- logado.php <?php session_start(); $logado=$_SESSION['logado']; echo "olá $logado!"; Eu testei o programa no notebook com o nome de Frank, e ele me devolveu o nome Frank. Eu testei o programa no celular com o nome de Rodrigo, e ele me devolveu o nome Rodrigo. Eu fiquei perplexo. Só para tirar a dúvida, eu atualizei o navegador tanto do notebook bem como do celular, e nada mudou. O PHP é bacana, não sei como ele consegue separar dois usuários diferentes, se o programa é apenas um.
-
Fiz algumas alterações no seu código para testar aqui no meu laboratório, eu só tenho um notebook e um celular, e deu certo, graças a Deus! No notebook eu entrei com o entregador "Frank" e no celular eu entrei com o entregador "Rodrigo". Olha, cara, gostei mesmo do seu código, e gostei mais ainda do $_SESSION, mas eu não tenho a menor ideia como isso funciona. login.php <?php session_start(); $mysqli=new mysqli("localhost","root","","diario"); if (isset($_POST['email']) && isset($_POST['senha'])) { $email = $mysqli->real_escape_string($_POST['email']); $senha = $mysqli->real_escape_string($_POST['senha']); $query = $mysqli->query("select * from tbusuario where email='$email' and senha='$senha'") or die("Falha na execução do código SQL: " . $mysqli->error); // tbusuario contem os campos nome, email, senha e nivel $quantidade =$query->num_rows; if ($quantidade==0){echo "usuário ou senha inválida!";} if ($quantidade==1){ $row=$query->fetch_assoc(); $nome=$row['nome']; $nivel=$row['nivel']; $_SESSION['nome']=$nome; if ($nivel == 'administrador') {header('Location: administrativo.php');} if ($nivel == 'lojista') {header('Location:lojista.php');} if ($nivel == 'entregador') {header('Location:entregador.php');} } } ?> <!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>Login</title> </head> <body> <div> <form method=post> <h1>Login</h1> <input type=email name=email placeholder=Email required> <br><br> <input type="password" name="senha" placeholder="Senha" required> <br><br><br> <button class="btn" type="submit">Entrar</button><br><br><br> </form> </div> </body> </html> ---------------------------------------------------------------------------------------------------------------------------- entregador.php <?php session_start(); if(!isset($_SESSION['nome'])) {header('Location: login.php');} $entregador=$_SESSION['nome']; $mysqli=new mysqli("localhost","root","","diario"); $entrega = $mysqli->query("SELECT * FROM tbentrega WHERE entregador='$entregador'"); // tbentrega tem os campos id, bairro, valor, entregador, data ?> <!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"> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css"> <title>Listar Entregas</title> </head> <body> <nav> <div class="img"> <img src="assets/img/LOGO_LIKEFOOD_EXPRESS_branco.png"> </div> <div class="menu-btn"> <i class="fa fa-bars fa-2x" onclick="menuShow()"></i> </div> <h2>Entregas Lançadas</h2> <ul> <li> <a href="#"> </a> </li> <li> <a href="#"> </a> </li> <li> <a href="#"> </a> </li> <li> <a href="#"> </a> </li> <li> <a href="sair.php"> Sair</a> </li> </ul> </nav> <script src="assets/js/main.js"></script> <div class="master"> <table class="tabela"> <tr class="id"> <th>ID</th> <th>Bairro</th> <th>Valor</th> <th>Entregador</th> <th>Data</th> <th>Ação</th> </tr> <tr class="coluna"> <?php while ($rows_entregas = mysqli_fetch_assoc($entrega)) { ?> <td><?php echo $rows_entregas['id']; ?></td> <td><?php echo $rows_entregas['bairro']; ?></td> <td><?php echo $rows_entregas['valor']; ?></td> <td><?php echo $rows_entregas['entregador']; ?></td> <td><?php echo date("d/m/Y", strtotime($rows_entregas['data'])); ?></td> <td><a class="link-as-btn0" href=""> <c>Detalhes</c> </a></td> </tr> <?php } ?> </table> </div> </div> </body> </html>
-
Bom dia, eu também tenho essa dor de cabeça. Eu fiz um login meio boca no meu código menu.php e o que eu vi por aí no Google é que a instrução session_start() tem que ser a primeira instrução tanto na página onde vai ser definido o $_SESSION bem como na página onde o $_SESSION vai ser usado. Se o safado do Gustavo Silva sabe que existe uma página chamada administrativo.php, o que impede dele entrar nessa página? Nesse caso, eu faria algo assim no admnistrativo.php: <?php start_session( ); if ($_SESSION['nivel']!="administrativo"){echo "sinto muito, você não está autorizado a ver essa página";exit;} Ou seja, você tem que repensar o seu código, fazendo o start_session( ); ser a primeira instrução, e não no meio do código.
-
Encontrei erro na linha que menciona a inclusão de $pessoas, você esqueceu de fechar as aspas. Encontrei erro no formulário, para trabalhar com o GET, o formulário tem que usar o método PUT, que você pode omitir por ser o padrão. Outro erro é que o formulário é desnecessário, o elemento <a> já faz a solicitação. O switch é confuso e desnecessário. Você não incluiu o estilo do botão01, assim eu improvisei um estilo tipo tabela para fazer funcionar a sua ideia. <style> .table{display:table;width:auto;border:1px solid #66666} .table-row{display:table-row;width:auto;clear:both} .table-col{float:left;display:table-column;width:200px;border:1px solid #ccc} </style> <div class="table"> <div class="table-row"> <div class="table-col"> <table> <tr><td><a href="?usuarios">Usuários</a> <tr><td><a href="?pessoas">Pessoas</a> <tr><td><a href="?estatisticas">Estatísticas</a> <tr><td><a href="?aniversarios">Aniversários</a> <tr><td><a href="sair.php">Sair</a> </table> </div> <div class="table-col"> <?php if (isset($_GET['usuarios'])){include("usuarios.php");} if (isset($_GET['pessoas'])){include("pessoas.php");} if (isset($_GET['estatisticas'])){include("estatisticas.php");} if (isset($_GET['aniversarios'])){include("aniversarios.php");} ?> </div> </div> </div> Apesar dos erros, eu gostei bastante da sua ideia. Faz tempo que eu queria fazer isso, mas não sabia como.
-
O seguinte código não funciona: <html> <head> <script> testediv.innerHTML="olá mundo!" </script> </head> <body> <div id=testediv></div> </body> Para fazer esse código funcionar, eu sempre coloquei o <script> debaixo do <div>. Graças ao Google, consegui achar a solução: astudy.html <html> <head> <script src=astudy.js async></script> </head> <body> <div id=testediv></div> </body> ----------------------------------------- astudy.js testediv.innerHTML="olá mundo!"
-
Eu só tenho um notebook, assim eu só posso me conectar nele, assim: $mysqli=new mysqli("localhost","root","senha","bancodado"); Se eu tivesse dois servidores, acredito que poderia conectar aos dois servidores assim: $mysqli1=new mysqli("servidor1","usuario1","senha1","bancodado1"); $mysqli2=new mysqli("servidor2","usuario2","senha2","bancodado2"); O problema é se o "hostname" do "servidor1" e "servidor2" forem idênticos, mas eu não tenho como fazer o teste por aqui. O meu laboratório é bem pobre.
-
A minha ideia é tirar a tecnologia do modal do cadastro de produtos e de pessoas e usar a tecnologia <details> do HTML. O problema é que não consegui fazer o marcador <details> funcionar dentro de um <table>, e assim o preço do produto ficou grudado no final da descrição. O código que usei é esse: <style> summary{list-style:none} </style> <?php function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;}} $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbprod limit 5"); while ($row=$query->fetch_assoc()){ $prod=$row['prod']; $custo=$row['custo'];$custodec=dec($custo); $margem=$row['marg'];$margemdec=dec($margem); $venda=dec($custo*(1+$margem/100)); echo "<details><summary>$prod <b>$venda</b></summary>"; echo "<table bgcolor=lightgray>"; echo "<tr><td>codprod<td><b>".$row['codprod']."</b>"; echo "<tr><td>un<td><b>".$row['un'],"</b>"; echo "<tr><td>custo<td><b>$custodec</b>"; echo "<tr><td>marg<td><b>$margemdec</b>"; echo "<tr><td>codbar<td><b>".$row['codbar'],"</b>"; echo "<tr><td>loc<td><b>".$row['loc']."</b>"; echo "<tr><td>emb<td><b>".$row['emb']."</b>"; echo "<tr><td>cf<td><b>".$row['cf']."</b>"; echo "<tr><td>codforn<td><b>".$row['codforn']."</b>"; echo "</table></details>";}
-
link no site sem disparar a abertura do app
pergunta respondeu ao Pâmela Stasczak Fotografia de Frank K Hosaka em HTML, XHTML, CSS
Eu não tenho como ajudar você, pois eu não entendo nada de HTML. Por outro lado, sempre quis abrir um app automaticamente pelo HTML. Tem jeito de você compartilhar o seu código? -
[Erro] - Uninitialized string offset 0
pergunta respondeu ao joaoazl de Frank K Hosaka em Tutoriais & Dicas - PHP
Eu gostei da função preg_replace, mas eu acredito que ela já substitui a função trim, strislashes e htmlspecialchars. No seu código, tem dois $_POST, um com o índice 'cpf' e outro 'reset', mas não dá para saber quem manda essas informações. Não vejo a necessidade de usar o recurso do function no php, dá para fazer tudo na rotina principal. A seguir eu alterei o seu código, acrescentei um formulário que cria a solicitação POST, e ficou assim: <?php echo "<form method=post>cpf <input name=cpf></form>"; if(isset($_POST['cpf'])){ $cpf = $_POST['cpf']; $cpf = preg_replace( '/[^0-9]/is', '', $cpf); if (strlen($cpf)!=11){echo "cpf $cpf inválido!";exit;} $sum1=0; $sum2=0; for($index=0;$index<=8;$index++){$sum1+=$cpf[$index]*(10-$index);} for($index=0;$index<=9;$index++){$sum2+=$cpf[$index]*(11-$index);} $resto1=($sum1*10)%11; if ($resto1==10){$resto1=0;} $resto2=($sum2*10)%11; if ($resto2==10){$resto2=0;} if (($resto1==$cpf[9])and($resto2==$cpf[10])){ echo "cpf $cpf válido!";} else {echo "cpf $cpf inválido!";}} -
[Crônica] Quanto eu posso gastar hoje?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Encontrei matéria que afirma que é possível conectar o MySQL à planilha do Google: Como conectar o MySQL ao Planilhas Google (linkedin.com) mas olhando o código, eu acho que é bem mais fácil trabalhar com o PHP.