[php] forceren end of page?

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 21-07 01:24

Fatamorgana

Fietsen is gezond.

Topicstarter
Ik had eerst het volgende:
$cmd = "php scriptje.php > /dev/null &";
exec($cmd);

Zo kon ik mooi een batch proces starten. MAAR op de server hebben ze iets aangepast zodat ik opeens undefined function: mysql_connect() errors ga krijgen??? Via het web werkt alles nog wel, maar vanaf de commandline kent php ineens veel functies niet meer...

Nu wil ik het dus anders gaan oplossen door het script via de browser te laten starten zonder exec(). De browser hoeft echter NIET te wachten tot het script klaar is want dat kan wel even duren.

Ik zet in die pagina:
set_time_limit(3600);
ignore_user_abort(true);

Als de gebruiker het laden van de pagina afbreekt gaat deze dus gewoon netjes door. Het probleem is echter dat zodra je die pagina opvraagt de browser dus wel gaat wachten tot de pagina klaar is tenzij je zelf actie onderneemt.

Wat ik wil is zoiets:

set_time_limit(3600);
ignore_user_abort(true);
header("Location: started.html");
Doe iets zodat de browser denkt dat de pagina klaar is.
De rest van het script.

Is het mogelijk om de aan de browser te vertellen dat de pagina klaar is ZONDER dat hij dat werkelijk is, dus dat hij gewoon de header gaat uitvoeren?

Of is er een andere oplossing die het zelfde effect heeft, script starten via het web en dan naar een andere pagina gaan terwijl het script gewoon doorloopt?

Acties:
  • 0 Henk 'm!

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 17-09 21:58

BHR

Zou het zo kunnen zijn dat op je server php is geconfigureert om via de webserver een andere php.ini (en daarom een andere extensie conf) te gebruiken dan voor standalone php aanroepen??

Je zou dan kunnen proberen om via een webpagina phpinfo() aan te roepen, en de php.ini in dat overzicht als parameter meegeven aan je exec(php) batch commando.

[ Voor 9% gewijzigd door BHR op 12-11-2004 09:54 . Reden: - ]

No amount of key presses will shut off the Random Bug Generator


Acties:
  • 0 Henk 'm!

  • Fatamorgana
  • Registratie: Augustus 2001
  • Laatst online: 21-07 01:24

Fatamorgana

Fietsen is gezond.

Topicstarter
BHR schreef op 12 november 2004 @ 09:53:
Je zou dan kunnen proberen om via een webpagina phpinfo() aan te roepen, en de php.ini in dat overzicht als parameter meegeven aan je exec(php) batch commando.
Net getest, geen effect, de error blijft: Fatal error: Call to undefined function: mysql_connect()

Acties:
  • 0 Henk 'm!

  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

De commandprompt PHP is wat anders dan mod_php die vaak in Apache wordt gebruikt. Soms worden die apart gecompiled. Grote kans dat je PHP zonder MySQL support is gecompiled en mod_php wel. Je kan dit zien door naar de configure line te kijken in phpinfo()

Acties:
  • 0 Henk 'm!

  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 20-09 23:02
Heb je redirecten met een meta tag in de header van de html of redirecten met javascript al geprobeerd?

Acties:
  • 0 Henk 'm!

  • jpwaag
  • Registratie: September 2003
  • Laatst online: 16:05
of flush

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Fatamorgana schreef op vrijdag 12 november 2004 @ 09:40:
Zo kon ik mooi een batch proces starten. MAAR op de server hebben ze iets aangepast zodat ik opeens undefined function: mysql_connect() errors ga krijgen??? Via het web werkt alles nog wel, maar vanaf de commandline kent php ineens veel functies niet meer...
Waarom vraag je niet om mysql-support in de commandline versie van php op die server? 't Kan best zijn dat ze daar gewoon geen rekening mee hebben gehouden terwijl het wel de bedoeling was?

Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

Misschien is het nog een mogelijkheid om wget te gebruiken?
Wget output direct in /dev/null laten zetten maar dan heb je dus wel alle mogelijkheden van de normale online versie.

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • Kuhlie
  • Registratie: December 2002
  • Niet online
Wie zit er achter jouw browser? Jij? Waarom druk je niet op escape? Of wil je geen browser gebruiken maar een programma als wget? Zo ja: dan is het een andere vraag he ;)

[ Voor 0% gewijzigd door Kuhlie op 12-11-2004 20:22 . Reden: hmm... dubbelpost ]

Pagina: 1