Groups | Search | Server Info | Login | Register


Groups > de.comp.lang.php > #4908

Re: PHP mit JS

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>

Show all headers | 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 | NextPrevious in thread | Find similar


Thread

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