Ir para conteúdo
Fórum Script Brasil
  • 0

PHP 8.1.6


Frank K Hosaka

Pergunta

Ontem eu fiquei sabendo que o meu PHP era bem antigo, quando disse que não estava conseguindo executar o tutorial do Wash, eu fiquei apavorado. O Wash foi  bastante gentil, ele pediu o número da minha versão do PHP e disse que iria reescrever o tutorial. E eu disse que não precisava, que eu iria me virar sozinho.

Isso foi um drama que durou cinco horas.

Eu imaginava que bastava atualizar o Wampserver, eu peguei a versão mais recente. Mas eu não consegui instalar, o instalador reclamou que o meu Wampserver era tão velho que eu precisava primeiro instalar a versão intermediária. Depois de duas atualizações consegui chegar no Wampserver 3.2.8 com o phpmyadmin5.2.0, mas o máximo que consegui atualizar o PHP foi até a versão 7.49, ele também não é capaz de executar o tutorial do Wash.

O Google disse que é possível atualizar o PHP, mas isso é só para gente bastante profissional, o que não é o meu caso. Eu apanhei muito, mas consegui instalar o novo PHP,  o chato é que o Apache reclamou bastante e não quis botar o Wampserver no ar. Depois de muita ajuda do Google para conversar com o Apache, finalmente consegui testar o tutorial do Wash, eu me livrei da primeira mensagem de erro, agora tenho que enfrentar um novo desafio, o de que não instalei o banco de dados. Isso eu preciso aprender mesmo.

Tudo parecia em ordem, mas quando tentei conectar o celular, recebi a mensagem de que não havia um túnel pelo ngrok. Isso é bem ilógico. Como o meu notebook encontrou o túnel, mas o celular não? Tirei o WiFi do notebook, e pedi para o notebook usar a conexão do celular, e ele encontrou o túnel! Que porcaria!

E o Google mostrou que havia um monte de gente na mesma situação que eu, sem saber o que fazer. Eu passei dois anos estudando o PHP só para ter o prazer de ter um celular que tem um banco de dados em tempo real, onde eu posso até acrescentar novos registros, seja no bar da esquina ou dentro do ônibus, e tudo isso foi para o saco. Isso dói muito. O PHP é muito bacana, mas ele precisa de mais recursos para apresentar um serviço melhor, eu fui forçado a estudar HTML, CSS e JavaScript, eu consegui até instalar um modal na rotina do lançamento contábil.

Finalmente, o Google me apresentou um vídeo bem idiota de como recuperar o canal do ngrok. Eu detestei a solução, mas eram dois anos da minha vida e o meu celular que estavam em jogo. Não tive outra escolha, e tive que me submeter. Fui até o portal do ngrok, cadastrei uma nova conta, dessa vez usei a conta da Microsoft, e assim consegui um novo código de instalação para configurar o ngrok que nem precisei baixar. Com o novo código eu consegui o endereço do canal, e com ele o meu celular conseguiu enxergar o meu notebook dentro da internet. A minha tese é que o probema é financeiro, faz dois anos que usei o antigo túnel com a conta da Google sem pagar nada para o ngrok.

Eu fico imaginando o dia que o Wash começar a cobrar pelo tutorial. Esse mundo está perdido!

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 1

Rapaz... eu sou muito noob!
Não entendi nada!
a) Dê um exemplo de valor nulo em uma função de formatação.
b) O que quizestes dizer com 

7 horas atrás, Frank K Hosaka disse:

questiona a palavra "Selecionar"

?
É no momento de processar o arquivo? É na sua ide? Questiona o q?


php x mysql nada a ver!
o null do mysql é do mysql


o null do php é do php
no momento de montar uma query sql o null é uma string dentro da query: $query"set name = null";


No php null não é uma string: $name = null;
Para que, no php, null seja uma string, precisas envolvê-lo em aspas: $name = 'null';

Mas não sei direito se era sobre isso que falavas...
Não fui capaz de entender.

Link para o comentário
Compartilhar em outros sites

  • 1

Entendi!
Segundo a doc: https://www.php.net/number_format
$num é required

 

12 minutos atrás, Frank K Hosaka disse:

<option>Selecionar</option>, eu tive que tirar a palavra Selecionar que usava como cabeçalho da lista. Quando eu não seleciono nada, o PHP 8 considera 'selecionar' como uma variável não definida

Se o php enxerga Selecionar como sendo uma variável, então ela não está dentro de aspas simples.
Se puder, mostre-nos o trecho php e a mensagem de erro.

 

14 minutos atrás, Frank K Hosaka disse:

if (empty($credito)){
                $sql="insert into tbdiario (dia,conta,debito,hist) Values ('$diar',$debito,$valor,'$hist')"; } else {
                $sql="insert into tbdiario (dia,conta,credito,hist) Values ('$diar',$credito,$valor,'$hist')"; }
$query=$mysqli->query($sql);}

Veja bem, se considerar que $credito é vazio, a query ficaria, hipoteticamente assim:
... values('$diar-value', , $valor, '$hist') ...
Logo, aquelas duas vírgulas ali, vai gerar um erro mysql. (não tem nadinha a ver com php)

pra evitar esse tipo de erro o sr. pode envolver tb o valor numérico em aspas simples, que ficaria assim:
... values('$diar-value', '', $valor, '$hist') ... , se $credito fosse empty
Dessa forma, seria uma query mysql válida

Link para o comentário
Compartilhar em outros sites

  • 0

Hoje eu fiz manutenção nos meus códigos com a atualização do PHP 8, ele não aceita valores nulos em funções de formatação, ele questiona a palavra "Selecionar" no elemento <select> e também não aceita mais eu mandar campos com valores nulos no MySQL. Tive que fazer algumas "manobras" para contornar as novas restrições do PHP 8. Estou começando a me adaptar às novas regras.

Link para o comentário
Compartilhar em outros sites

  • 0

function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;} }

a versão anterior era:

function dec($num) {$fmt=number_format($num,2,",","."); return $fmt;} o PHP 8 diz que a função está "deprecated", quando $num está vazio.

-------------------

<option>Selecionar</option>, eu tive que tirar a palavra Selecionar que usava como cabeçalho da lista. Quando eu não seleciono nada, o PHP 8 considera 'selecionar' como uma variável não definida num código adiante para ver o que foi selecionado.

-------------------

if (empty($credito)){
                $sql="insert into tbdiario (dia,conta,debito,hist) Values ('$diar',$debito,$valor,'$hist')"; } else {
                $sql="insert into tbdiario (dia,conta,credito,hist) Values ('$diar',$credito,$valor,'$hist')"; }
$query=$mysqli->query($sql);}

Essa é a nova versão que estou usando no PHP 8. Na versão 7, eu mandava executar as duas rotinas, deixando a critério do MySQL executar ou não a tarefa. Para a minha surpresa, a versão 8 me barrou, jogando para o espaço o meu conceito de que PHP é PHP e MySQL é MySQL.

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

  • 0

Eu não tenho mais a rotina do <select>, joguei fora, troquei pelo modal, mesmo sabendo que o meu modal não suporta aspas, mas eu lembro que o PHP 7 considerava como nulo, quando eu não selecionava nada, e assim o $debito ou o $credito ficava vazio.

Lá na frente, eu pedia para fazer um insert to, mesmo sabendo que eu iria enfrentar problema lá no MySQL, ou seja, o MySQL simplesmente se recusaria a fazer tal tarefa. O nome disso é gambiarra. Mas o PHP 8 não deixa mais eu fazer isso! Mas eu gostei dessa dica de colocar aspas numa variável numérica, mas a minha intenção era fazer um lançamento a debito, outro lançamento a credito, não sei o que vai acontecer se eu colocar as aspas. Preciso testar.

Mas, falando em debito e credito, eu acho que eu sou um dos poucos que ainda pensa na tecnologia das partidas dobradas do século XV, hoje tudo é mais moderno e eficiente, eu acho. Acredito que todo mundo trabalha com apenas um campo, transação, e o antigo débito e crédito ficaria resumido no sinal da transação. Enfim, eu acho que estou desatualizado. Você tem aí um esquema para a tabela diário para os dias atuais? O meu é assim: data, conta, debito-valor, credito-valor, historico, isso é lá do século XV. Eu não tenho a menor ideia de como fazer a tela de entrada, caso os campos debito e credito fossem apenas um só campo.

Link para o comentário
Compartilhar em outros sites

  • 0
42 minutos atrás, Frank K Hosaka disse:

não sei o que vai acontecer se eu colocar as aspas. Preciso testar.

Provavelmente vai ser empty, no máximo: null

43 minutos atrás, Frank K Hosaka disse:

Você tem aí um esquema para a tabela diário

Ôxxe! Nem sei do que estás falando
O que seria "tabela diário"?

É coisa de banco?
Se tem débito, crédito, não é bom especificar se é depósito, transferência, estorno, cashback, essas coisas?

Editado por lowys
Link para o comentário
Compartilhar em outros sites

  • 0

No meu tempo, a tabela diário era onde a gente armazena as transações de compra, venda, tipo assim

Doc 10.111 15/05/2022 410 Refeição         17,39                                Padaria Flor do Trigo quibe, pão e café
Doc 10.112 15/05/2022 107 Bradesco                                17,39        Padaria Flor do Trigo quibe, pão e café

Isso é coisa do século XV. E hoje, como o pessoal registra a compra de um quibe na padaria?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...