Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.
Vaše pomoc je stále potřeba!

Autor Téma: V pripade cron prikazu nefunguje redirect  (Přečteno 535 krát)

hlpeter

  • Návštěvník
  • Příspěvků: 1
V pripade cron prikazu nefunguje redirect
« kdy: 26 Února 2024, 12:31:07 »
Dobry den!

V pripade, ze do souboru cron.php dam presmerovani:

<?php
//redirect
header('location:/var/www/html/myfolder/cron_redirect.php');
?>

anebo

<script type="text/javascript">
window.location.href="/myfolder/cron_redirect.php"
</script>

jednoduse nic se nestane. V 'cron_redirect.php' jsem dal INSERT do MySQL tabulky,
ale vubec nic se nestane. V pripade, ze cron.php zpustim manualne, vsechno je ok.
Jak se da udelat presmerovani s cron-em?
Moc dekuji za odpoved!

ramael

  • Stálý člen
  • **
  • Příspěvků: 638
Re:V pripade cron prikazu nefunguje redirect
« Odpověď #1 kdy: 27 Února 2024, 21:55:22 »
Nevím z kterého konce začít. Tady je několik chyb asi v chápání "jak to funguje" a zároveň dost divně položená otázka. Pokud spouštíš to php manuálně, tak to běží pod jinými právy než spouštění přes nějaký webový server (tipuju to na apache dle umístění). A zároveň a to hlavně, použije se jiné adresování. Také není špatné si pro svou potřebu nastavit error log a hned bys viděl.
A teď jen pár námětů.
Místo absolutní adresy v systému (funguje jen z manuálního spuštění):
Kód: [Vybrat]
<?php
//redirect
header("location:/var/www/html/myfolder/cron_redirect.php");
exit;
?>

použij relativní adresu:
Kód: [Vybrat]
<?php
//redirect
header("Location: myfolder/cron_redirect.php");
exit;
?>

Na ten exit nezapomeň aby se negeneroval výstup.
Pro debug chyb je mnoho možností. Asi nejjednodušší je zapnout si loging:
Kód: [Vybrat]
<?php
ini_set
("log_errors"1);
//redirect
header("Location: myfolder/cron_redirect.php");
exit;
?>

Více na https://www.php.net/manual/en/function.header.php

Pokud to chceš řešit javascriptem. Tuším, že lepší řešení je:
Kód: [Vybrat]
<script type="text/javascript">
window.location.replace("myfolder/cron_redirect.php");
</script>


Po všech stránkách se mi zdá být nešťastné provádět redirection kvůli zápisu do databáze. To vypadá na nedobrý návrh programu.
Lenovo: ThinkPad X380 Yoga
Joutůůůůb

 

Provoz zaštiťuje spolek OpenAlt.