Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.php > #4908
| From | Arno Welzel <usenet@arnowelzel.de> |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: PHP mit JS |
| Date | 2023-05-13 21:58 +0200 |
| Message-ID | <kca8ffF9s30U1@mid.individual.net> (permalink) |
| References | <u3o740$3nekb$1@gwaiyur.mb-net.net> |
Fabian, 2023-05-13 16:33:
[...]
> Das möchte ich erreichen:
> In einem Javascript wird geprüft, ob eine bestimmte Datei vorhanden ist.
> Ist sie vorhanden, wird ein PHP-Script aufgerufen, welches dann die
> Datei löscht. Sobald die Datei gelöscht wurde, soll ein Alert()
> angezeigt werden.
>
> Das Problem:
> Der Alert wird nicht angezeigt. Warum?
>
> Hier das Javascript:
>
> <script type="text/javascript">
> function isNewMail()
> {
> var url = "https://example.com/message/postboxen/postbox_<?PHP echo
> $_SESSION['benutzer'];?>.dat";
> // document.getElementById('showurl').innerHTML = url;
> request = new XMLHttpRequest(); // Definition des Request
> request.open('head',url, true); // Request öffnen ... url ist eine
> Variable. Bei direktem Aufruf statt dessen 'http://domain.de/datei,xyz'
> einschließlich Anführungszeichen
>
> request.send(null); // Request senden
> request.onreadystatechange = showAlert; // Request auswerten
> setTimeout(isNewMail, 30000);
> }
>
> function showAlert()
> {
> if (request.readyState == 4 && request.status == 200 )
> {
> location.href = "https://example.com/tools/delpostbox.php";
> }
> }
> </script>
Warum so umständlich? Ich würde per XHR gleich ein PHP-Script aufrufen,
was auf Existenz der Datei prüft und dann löscht, wenn nötig und dann
das Ergebnis zurückliefert, was im ReadyState-Handler benutzt werden
kann - z.B. als Meldung oder Weiterleitung auf die *Seite*, die den
Erfolg anzeigt.
> Das Script läuft mit beiden Funktionen korrekt, wie es soll.
>
> Hier nun das PHP:
Welches "das PHP"? delpostbox.php?
> <?PHP session_start();
> $url=$_SERVER['DOCUMENT_ROOT'] . "/message/postboxen/postbox_" .
> $_SESSION['benutzer'] . ".dat";
> if (file_exists($url))
> {
> unlink($url);
> sleep(2);
> ?>
> <script>alert('Sie haben neue Nachrichten in Ihrem Postfach.');</script>
> <?PHP
> }
> $uri=$_SERVER['HTTP_REFERER'];
> header("location:$uri");
> ?>
>
> Und in diesem PHP-Script wird der Alert nicht angezeigt, obwohl der
> unlink() ausgeführt wird. Warum? Ich stehe da ziemlich auf dem Schlauch.
Du schickst nur das hier als Ergebnis zum Browser:
<script>alert('Sie haben neue Nachrichten in Ihrem Postfach.');</script>
Wo ist der Rest? <html><head>...</head><body>... ?
> Gruß
> Heiko
Wieso "Heiko"? Oben warst Du noch "Fabian".
--
Arno Welzel
https://arnowelzel.de
Back to de.comp.lang.php | Previous | Next — Previous in thread | Find similar
PHP mit JS Fabian <fabi1969@mail.net> - 2023-05-13 16:33 +0200 Re: PHP mit JS Arno Welzel <usenet@arnowelzel.de> - 2023-05-13 21:58 +0200
csiph-web