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

Páginas agendadas


#Tigre

Pergunta

Olá pessoal,

gostaria de tirar uma dúvida sobre agendamento de tarefas (Windows).

Tem alguma maneira de evitar que a página agendada seja acessada manualmente pelo navegador?

Exemplo: uma página que envia uma mensagem automática para determinados usuários uma vez por dia. Evitar que essa página (que envia a mensagem) seja acessada pelo navegador, para que a mensagem não seja enviada mais vezes "sem querer".

Tem como evitar esse problema?

Link para o comentário
Compartilhar em outros sites

18 respostass a esta questão

Posts Recomendados

  • 0

O que você pode fazer é criar alguma chave por querystring que execute o código, por exemplo, só faz o envio se for acessado assim: arquivo.php?acao=executa, se for acessado de outra forma não faz nada, ai no caso do exemplo você teria que montar o php assim:

<?php

if($_GET['acao'] == 'executa'){

//Aqui o código para envio

}

?>

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Serra,

muito boa idéia, acho que resolve a questão. O engraçado é que eu uso essas ações em todas a minhas páginas executáveis e nem me liguei que daria pra usar no agendador de tarefas também.

A minha preocupação é de alguém acessar o endereço dessa página num site de busca, por exemplo.

Obrigado pela dica, Serra.

Só pra completar, você sabe se essas páginas que tem só conteúdo em php aparecem nos sites de busca?

Link para o comentário
Compartilhar em outros sites

  • 0

Serra, ainda sobre o agendador de tarefas, você sabe me informar se no campo 'Caminho para o arquivo executável' vai o endereço normal mesmo (www.site.com.br/arquivo.php).

Estou fazendo um teste com uma página que envia um e-mail. Acessando pelo navegador o e-mail é enviado normalmente, mas no agendador nada acontece. Entrei em contato com a hospedagem mas a resposta foi que eles não tem informação técnica do agendador, aí fica difícil.

Vi alguém dizendo no fórum que usa o endereço desse jeito, mas no Crontab:

php -q /home/NOME_DE_USUARIO/public_html/PASTA/arquivo.php

Serra, você saberia me informar algo sobre isso?

Link para o comentário
Compartilhar em outros sites

  • 0

tem sim,

este ai é para o linux..

para o windows voce precisa saber onde esta instalado o php ai coloca o -f para executar..

crie um phpinfo veja se aparece onde esta o php.exe

info.php

<?

phpinfo();

?>

execute no servidor acho que em PATH aparece o caminho onde esta a instalação..

sabendo disto coloque no seu cron

(vamos supor que seja no diretorio c:\php e o nome do exe seja php-win.exe)

c:\php\php-win.exe -f c:\caminhoscript\nomescript.php?acao=executa

mas precisa saber o caminho..

Link para o comentário
Compartilhar em outros sites

  • 0

sim é da Hospedagem..

o php.exe esta num local fisico se fosse linux seria o /usr/bin no windows pode ser c: f: z: depende de como foi montado o server..

precisa ver tambem se o cron esta liberado (normalmente esta)

pelo phpinfo() (no linux) mostra onde esta o local do php no windows não deve ser direfente (vou dar um apesquisada para ver se acho algo para voce)

Link para o comentário
Compartilhar em outros sites

  • 0

Olá é isto mesmo.. voce precisa saber os caminhos reais de onde esta o php e onde esta o seu script no windows

exemplo de um para servidor windows

Scheduled Task IIS 7 localhost will look something like this:

C:\PHP\php-cgi.exe C:\inetpub\wwwroot\sitemap\runcrawl.php

Link para o comentário
Compartilhar em outros sites

  • 0

Jissa, vou ver se encontro estas informações aí.

Engraçado que os atendentes do suporte disseram pra simplesmente colocar o endereço normal do arquivo php. Só que nada acontece.

Depois me disseram o seguinte: "o agendador de tarefas pode não estar sendo totalmente funcional com script em PHP em servidor Windows. No caso podemos estar criando uma conta de teste em um servidor Linux para o senhor realizar os devidos teste. Caso tenha interesse favor nos retornar."

Achei que fosse mais simples esse negócio de agendador.

Link para o comentário
Compartilhar em outros sites

  • 0

Existe como eles colocarem no linux como te falei e executar o script remoto, eles podem colocar em uma conta utilizando o cpanel ou mesmo pelo shell usando o cronjob sem voce sair do windows, só colocarem o comando que te falei ai no ron do linux para carregar o seu .php no windows, isto é tranquilo, perdem apenas 2 minutos, o problema nisto que sempre vai precisar falar com eles para mudar horarios link, parar o agendamento se preciso.

o php.exe nem sempre esta disponivel via path em servidores, tem que chamar de um local especifico, as vezes no painel de controles tem exemplos que mostram o path para se adicionar.. com o phpinfo talvez consiga saber este caminho.

mas se voce não utilizar nenhum recurso windows, no meu ponto de vista o linux para voce é melhor, mais recursos neste esquema de agendamento e eu acho que até mais velocidade no processamento do php(isto é minha opinião, muitos acham que o windows é mais rápido)

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

  • 0

Jissa, eu procurei no phpinfo mas não encontrei o php.exe, só php.ini

Eu li num artigo por aí dizendo pra usar este caminho

C:\\php\\php.exe C:\\inetpub\\www\\arquivo.php

Mas esse caminho, pelo que você disse, muda de um servidor pra outro.

Será que os atentendentes do suporte não saberiam me informar esse caminho aí?

Link para o comentário
Compartilhar em outros sites

  • 0

Eles deveriam saber ou pedir ao suporte do host deles isto..

existem muitas pessoas que vendem hoepedagem que não administram os servidores, ou pagam para outros administrarem ou são revendas de um maior, ai neste caso eles tem que solicitar o suporte para a pessoa que administra o servidor, se este não souber tambem pode solicitar o suporte ao DataCenter em que esta o Servidor.

porque voce esta em um servidor windows?? não pode pedir para eles colocarem voce em um linux?? talvez pague até menos na mensalidade.

Link para o comentário
Compartilhar em outros sites

  • 0

Eu entrei em contato com eles ontem e me disseram pra usar este caminho aí:

C:\Inetpub\vhosts\site.com.br\httpdocs\arquivo.php

Só que pra variar não funcionou.

Sobre o servidor, a mensalidade é igual pros 2. A pessoa só escolhe o sistema na hora que faz o contrato.

O sistema que tenho na minha máquina, onde estou fazendo o site, é windows, e quando contratei a hospedagem me indicaram o windows, por isso fiquei com o windows mesmo.

Na verdade não sei a diferença entre um e outro. Porque você me indicaria o Linux?

Quanto ao Crontab é mais fácil de trabalhar do que o Agendador do Windows?

Link para o comentário
Compartilhar em outros sites

  • 0

Sim, para agendar com o crontab do linux é muito facil, só colocar o comando que havia passado no inicio e já estaria funcionando..

Windows é bom para quem utiliza ASP. ASP.net,

para visualizar e desenvolver não importa o sistema que voce utilize, windows, linux, mac que o que vai interpretar seu html é o navegador (IE, FF, safai, crome, ou outro) e para executar o codigo php é feito no servidor para funcionar tem apenas que ter o php instalado.

então tudo que fez e esta no windows vai funcionar no linux, talver tenha que mudar nome do banco de dados e senhas de acesso, e se usou caminhos reais como c:\bla\bla teria que mudar para /home/user/public_html/caminho

há e ter que mudar os DNS do seu dominio para apontar para o Ip da nova maquina..

antes de mudar, certifique-se com eles que o cron esta ativo e funcionando.. se não nem adianta nada migrar se não resolver o que esta com problema

Link para o comentário
Compartilhar em outros sites

  • 0

A maioria, dos que você tem conhecimento, usam qual, o Linux?

A dúvida em pedir a troca é grande, mas pelo visto o Linux é o preferido e o mais usado.

Vou dar mais uma conversada com o pessoal do suporte pra ver se resolve o problema do agendador, se não resolver vou pedir a troca pra ver. E mesmo resolvendo vou pensar na troca para Linux.

Jissa, só me responde a pergunta de qual é o mais usado.

Agradeço sua atenção.

Link para o comentário
Compartilhar em outros sites

  • 0

eu não tenho nenhuma estatistica, nem sei se existe.. eu acho que para php é o Linux, visto a quantidade de servidores linux que existem.

tem uma forma de voce manter e criar um agendamento, mas ai voce precisa do pessoal do seu servidor..

pode pedir para eles colocarem no crontab do servidor linux para executar o seu script no seu servidor windows..

(desta forma abaixo vai executar todo dias a 1 da manha)

0 1 * * * /usr/bin/curl http://www.seusite.xxx/caminhoscript/nomes...hp?acao=executa

isto resolve seu problema de funcionamento e não precisa ter o trabalho da migração.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...