Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Kher

Notação simplificada para php

Recommended Posts

Estou fazendo um curso em vídeo aula de PHP e estou encontrando erros durante a execução. Suponho que por ser de 2007 o curso, algumas notações devem ter modificado. Para execução estou usando o easyphp 5.3.8.1 e o IE 9 ou Chrome. O código abaixo o autor está ensinando como criar um array para usar nomes em português para a função date que retorna resultados em inglês, e por exemplo, encontro o seguinte erro:

 

Notice: Use of undefined constant w - assumed 'w' in C:\EasyPHP-5.3.8.1\www\curso_php\date_br.php on line 46

dia da semana:

dia da semana:

 

O código:

 

<body>

<?php
$dia_da_semana = array("Domingo", "Segunda", "Terça", "Quarta", "Quinta", "Sexta", "Sábado"); 

$diaSem=date(w);
$dia_extenso = $dia_da_semana[$diaSem];
?>
dia da semana: <?=date(w)?><br>
dia da semana: <?=$dia_extenso?>

</body>

 

Toda vez que utilizo essa notação simplificada do PHP acontece alguns erros, o código

dia da semana: <?=date(w)?><br>

me retorna o "dia da semana" em branco, não chega a dar erro mas também não mostra resultado algum, como acontece para o instrutor do curso.

 

Alguém pode me dar alguma orientação nesse caso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso são short tags.

Para abilitar, vá no php.ini e mude para

short_open_tag = On

 

O correto é você usar a forma longa da tag de abertura do PHP (<?php ?>).

<?php echo $dia_extenso; ?>

 

 

Aproveitando...

 

Uma maneira diferente de fazer o que você quer

<?php

setlocale( LC_ALL, 'pt_BR', 'pt_BR.iso-8859-1', 'pt_BR.utf-8', 'portuguese' );
date_default_timezone_set( 'America/Sao_Paulo' );
echo strftime( '%A, %d de %B de %Y', strtotime( date( 'Y-m-d' ) ) );

?>

 

Saída

domingo, 15 de janeiro de 2012

 

Tenha sempre em mãos o Manual do PHP

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado! Habilitando os short tags deu certo em parte. Estou seguindo os passos básicos para depois buscar por outros complementos, embora tenho achado um pouco difícil até o momento. Em relação ao erro abaixo, sabe o que poderia estar dando erro? trata-se do código

$diaSem=date(w);

 

 

Notice: Use of undefined constant w - assumed 'w' in C:\EasyPHP-5.3.8.1\www\curso_php\date_br.php on line 46

dia da semana:

 

Agora que percebi, faltaram as aspas no "w"!!! São errinhos assim que dificultam para um iniciante :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

leia o erro,

Use of undefined constant w - uso de constante 'w' indefinida

você esta usando uma constante indefinida, no caso o 'w' logo aki

$diaSem=date(w);

 

a funcao date espera uma string, e null foi dado, ja q 'w' nao existe

 

coloque 'w' entre aspas, assim

 


$diaSem=date('w');

 

outra coisa, nao aconselho a usar shortags, a maioria dos servidores online nao usam o shortags, pois dependendo da configuracao, pode abrir brecha de seguranca...eh uma pratica nao aconselhavel usar shortags...

Compartilhar este post


Link para o post
Compartilhar em outros sites
sim, em algumas hospedagens você consegue ver o script php no source do html.....

desculpe, mas.. poderia ser mais específico? pois realmente nunca ouvi falar nisso e fiquei curioso.. é um bug documentado? tem algum exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

desculpe, mas.. poderia ser mais específico? pois realmente nunca ouvi falar nisso e fiquei curioso.. é um bug documentado? tem algum exemplo?

 

se eh documentado eu nao sei, eu sei q ja consegui, no passado, ver varios scripts php assim...

Compartilhar este post


Link para o post
Compartilhar em outros sites

se eh documentado eu nao sei, eu sei q ja consegui, no passado, ver varios scripts php assim...

 

 

Desculpe, mas sem provas concretas não tem como comprovar a veracidade de suas palavras.

 

Eu sou daqueles que só acredito vendo. :yay:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu já vi casos de o navegador querer fazer o download do arquivo PHP, que também é um problema, mas essa de expor o código fonte só vi acontecer quando a diretiva use_short_tags estava desativada, aí ocorre isso mesmo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ahhhhh sim. Isso eu também já vi. E até que faz sentido.

 

O cara programa uma rotina que o servidor não consegue entender em tempo hábil usando short tags. Por ter estourado, o servidor entrega UM arquivo .php.

 

Mas como a diretiva está desativada, o que vêm não é o HTML gerado e sim o próprio source.

 

Agora tá explicado!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas isso é óbvio... se short_tags está desabilitado, aquilo que você programar dentro de short open tags "<?" e "?>", vai ser lido como parte do conteúdo do site, e não código.

De todo modo, vai causar problemas de acessibilidade, e não de segurança.

Não estou falando que seja uma boa prática usar short tags, muito pelo contrário, eu mesmo não abro uma linha sequer assim, não me entendam mal.

Compartilhar este post


Link para o post
Compartilhar em outros sites

shortags.jpg

 

como podem ver o codigo php foi exposto, e nao foi exibido, o navegadoe entendeu o '<' e '>' como tags html e os escondeu...logo esta notacao lhe prove falha de seguranca expondo o seu codigo, em hosts q nao tem hbilitado a open short tags...

 

PS, o servidor local q uso eh o zend server ce, mas a configuracao servindo pra qq servidor...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.