Hallo zusammen.
Ich habe ein Problem mit dem sog. HTTP-Status 204 für eine Query-Abfrage.
Ich befasse mich mit der 204-Fehlerseite mit einer Header-Angabe erst seit kurzem und habe diesbezüglich noch nicht viel Kenntnisse.
Ich erachte diese Methode allerdings jetzt schon als sehr nützlich, da man damit Querys senden kann, ohne eine Seitenaktualisierung vornehmen zu müssen.
Bei Klick auf folgenden Link sollen die Querys und die GET-Parameter an die query.php gesendet werden, ohne dass sich die Seite verändert.
<a onclick="this.href+='&jscript=1';" href="query.php?action=1234&id=241&value=5">Sende Querys</a>
Der Inhalt der query.php:
<?php
if(isset($_GET['action'],$_GET['value'],$_GET['jscript'],$_GET['id']) AND $_GET['action'] == "1234" AND $_GET['jscript'] == "1") {
//bedarf hier leider einer neuen mySQL-Anmeldung
include "../../../php/mysql.php";
@mysql_connect(MYSQL_HOST, MYSQL_USERNAME, MYSQL_PASSWORD) AND mysql_select_db(MYSQL_DATABASE) OR die('no database.'."\n");
$sql = "UPDATE
".MYSQL_PREFIX."table1
SET
row1 = row1 + 1
WHERE
id = '".$_GET['id']."'";
$result = mysql_query($sql) OR die(mysql_error());
}
header("HTTP/1.1 204 No Content")
?>
Das funktioniert soweit ganz gut, doch nun versuche ich in die query.php eine Kontrollstruktur (if-else) einzubauen, die zuerst eine Variable (in meinem Falle eine $SESSION) übeprüfen soll, befor die Querys gesendet werden, etwa so:
<?php
if(isset($_GET['action'],$_GET['value'],$_GET['jscript'],$_GET['id']) AND $_GET['action'] == "1234" AND $_GET['jscript'] == "1") {
if(isset($_SESSION['login'])) {
// sende querys
}
}
header("HTTP/1.1 204 No Content")
?>
Hier werden die Querys nicht mehr gesendet, auch, wenn $_SESSION['login']
vorhanden ist.
Würde mich freue, wenn mir da jemand helfen kann oder andere Vorschläge für "Query senden ohne Seitenaktualisierung" hat.
Danke.