Groups | Search | Server Info | Keyboard shortcuts | Login | Register
Groups > de.comp.lang.php > #4908
| Path | csiph.com!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail |
|---|---|
| From | Arno Welzel <usenet@arnowelzel.de> |
| Newsgroups | de.comp.lang.php |
| Subject | Re: PHP mit JS |
| Date | Sat, 13 May 2023 21:58:40 +0200 |
| Lines | 85 |
| Message-ID | <kca8ffF9s30U1@mid.individual.net> (permalink) |
| References | <u3o740$3nekb$1@gwaiyur.mb-net.net> |
| Mime-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8 |
| Content-Transfer-Encoding | 8bit |
| X-Trace | individual.net lXRlngvl4Nq7+24gGrEmng9BEekwaO8opYQyn+bEGEtukIXBbj |
| Cancel-Lock | sha1:we9IJD/SiQV+68W0jyqo0MjqPrk= |
| Content-Language | de-DE |
| In-Reply-To | <u3o740$3nekb$1@gwaiyur.mb-net.net> |
| Xref | csiph.com de.comp.lang.php:4908 |
Show key headers only | View raw
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