Problem mit "HTTP-Status 204 No Content"
B4ttl3m4st3r
- php
0 Der Martin
0 B4ttl3m4st3r0 Der Martin
0 B4ttl3m4st3r0 ChrisB0 B4ttl3m4st3r0 ChrisB
0 Sven Rautenberg
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.
Hallo,
<?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']`{:.language-php} vorhanden ist.
wo ist dein session\_start()? So wird das nichts, dieses Script weiß nichts von einer Session!
So long,
Martin
--
Finanztipp:
Leihen Sie sich Geld von einem Pessimisten.
Er rechnet sowieso nicht damit, dass er es zurückbekommt.
wo ist dein session_start()? So wird das nichts, dieses Script weiß nichts von einer Session!
So long,
Martin
Hallo Martin,
auch hier wieder Danke für deine schnelle Antwort.
Sobald ich ein session_start(); zu dem Script hinzufüge, bekomme ich bei Klick auf den Link folgende Meldung
Parse error: syntax error, unexpected T_IF in G:\XAMPP 1.7.2\htdocs\query.php on line 4
Hallo,
Sobald ich ein session_start(); zu dem Script hinzufüge, bekomme ich bei Klick auf den Link folgende Meldung
Parse error: syntax error, unexpected T_IF in G:\XAMPP 1.7.2\htdocs\query.php on line 4
dann hast du etwas falsch gemacht. Das ist ein gravierender Syntaxfehler.
An welcher Stelle genau hast du den Aufruf eingefügt? Zeig mal! :-)
Ciao,
Martin
Hallo,
Sobald ich ein session_start(); zu dem Script hinzufüge, bekomme ich bei Klick auf den Link folgende Meldung
Parse error: syntax error, unexpected T_IF in G:\XAMPP 1.7.2\htdocs\query.php on line 4
dann hast du etwas falsch gemacht. Das ist ein gravierender Syntaxfehler.
An welcher Stelle genau hast du den Aufruf eingefügt? Zeig mal! :-)Ciao,
Martin
Hoppla!
Hab doch glatt das ";" vergessen hinter dem session_start() >_<
Dennoch will das ganze nicht wirklich funktionieren.
Um nochmal genauer drauf einzugehen:
Eigentlich wollte ich das so machen, wenn man nicht eingeloggt ist, dass
man auf ein andere Seite verwiesen wird bzw. auf der gleichen Seite bleibt, wo der Link ist und eine Meldung ausgespuckt wird.
Wenn man eingeloggt ist soll lediglich der Query gesendet werden (Meldung wird dann mit javascript ausgegeben).
<?php
if(isset($_GET['action'],$_GET['value'],$_GET['jscript'],$_GET['id']) AND $_GET['action'] == "1234" AND $_GET['jscript'] == "1") {
session_start();
if(isset($_SESSION['username'])) {
//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());
} else {
echo 'variable nicht vorhanden. querys nicht gesendet.'
}
}
header("HTTP/1.1 204 No Content")
?>
Hi,
Eigentlich wollte ich das so machen, wenn man nicht eingeloggt ist, dass
man auf ein andere Seite verwiesen wird bzw. auf der gleichen Seite bleibt, wo der Link ist und eine Meldung ausgespuckt wird.
Und wo hast du versucht, das umzusetzen?
MfG ChrisB
Hi,
Eigentlich wollte ich das so machen, wenn man nicht eingeloggt ist, dass
man auf ein andere Seite verwiesen wird bzw. auf der gleichen Seite bleibt, wo der Link ist und eine Meldung ausgespuckt wird.Und wo hast du versucht, das umzusetzen?
MfG ChrisB
Eigentlich hatte ich soetwas wie das hier versucht. Leider ohne Erfolg.
<?php
if(isset($_GET['action'],$_GET['value'],$_GET['jscript'],$_GET['id']) AND $_GET['action'] == "1234" AND $_GET['jscript'] == "1") {
session_start();
if(isset($_SESSION['username'])) {
//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");
} else {
header("Location: index.php?message=needlogin");
}
}
?>
Hi,
Eigentlich hatte ich soetwas wie das hier versucht. Leider ohne Erfolg.
"Leider ohne Erfolg" ist äquivalent zu "funzt nich".
Tipps für Fragende lesen, *brauchbare* Problembeschreibung liefern.
MfG ChrisB
Hi,
Eigentlich hatte ich soetwas wie das hier versucht. Leider ohne Erfolg.
"Leider ohne Erfolg" ist äquivalent zu "funzt nich".
Tipps für Fragende lesen, *brauchbare* Problembeschreibung liefern.
MfG ChrisB
»»
Nunja was soll ich da großartig beschreiben?
Tut mir leid, wenn das nicht rüber gekommen ist aber es passier bei Klick auf den Link garnichts - Query wird nicht gesendent, keine Weiterleitung auf andere Seite und Fehlermeldung gibt er mir auch nicht.
Ob die Variable $_SESSION['login']
vorhanden ist oder nicht - garnichts passiert.
Zur Zeit sieht das ganze so aus und es funktioniert.
<?php
if(isset($_GET['action'],$_GET['value'],$_GET['jscript'],$_GET['id']) AND $_GET['action'] == "1234" AND $_GET['jscript'] == "1") {
session_start();
if(isset($_SESSION['login'])) {
// QUERYS
header("HTTP/1.1 204 No Content");
} else {
header("Location: index.php?section=seite_mit_link");
}
} else {
header("Location: index.php?message=needlogin");
}
?>
An dieser Stelle danke an die, die mir geholfen bzw. versucht haben mir zu helfen.
Moin!
Sobald ich ein session_start(); zu dem Script hinzufüge, bekomme ich bei Klick auf den Link folgende Meldung
Parse error: syntax error, unexpected T_IF in G:\XAMPP 1.7.2\htdocs\query.php on line 4
Dann hast du einen Syntaxfehler produziert, indem du was wo reingeschrieben hast, wo es nicht hingehört.
- Sven Rautenberg