Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: hlpeter 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!
-
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í):<?php
//redirect
header("location:/var/www/html/myfolder/cron_redirect.php");
exit;
?>
použij relativní adresu:<?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:
<?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:<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.