PHP echo an andere stelle ausuführen?

...komplette Frage anzeigen

2 Antworten

Kannst du nicht das Setzen des Cookies in eine Funktion legen und diese bei dem HTML-Element aufrufen, bei dem die Nachricht erscheinen soll?

LugicoHDPlayer 03.05.2016, 15:49

Neh... Geht leider Nicht...

0
Suboptimierer 03.05.2016, 15:56
@LugicoHDPlayer

Dann habe ich noch die Idee, dass du JavaScript-Quelltext erzeugen könntest, mit dem du Text über document.getElementById in das entsprechende Element schreiben könntest. Das setzt aber voraus, dass das Element zu dem Zeitpunkt bereits generiert wurde.

0
LugicoHDPlayer 03.05.2016, 16:13
@Suboptimierer

Mein Fehler...

Ich habe vergessen etwas zu sagen:

Ich habe im setcookie befehl eine selbstgemachte function welche ich vorher natürlich mit include() einbinden muss.

deshalb bekomme ich die Fehlermeldung


Warning: Cannot modify header information - headers already sent
by (output started at
/var/www/web24537222/html/chats/code_uncode.function:234) in /var/www/web24537222/html/login.php on line 5

Und ich glaube ich bin jetzt STARK vom Thema abgekommen...

mein Code sieht so aus:

<?php
include("chats/code_uncode.function");
function login() {
setcookie("chat_user",code($_POST["name"]),time() + 86400);
}
?>

Hier das Login Formular


<?php



if (isset($_POST["login"]) && $_POST["login"]) {
$db = mysqli_connect("localhost","*","*");
mysqli_set_charset($db,"utf8");
mysqli_select_db($db,"*");

$sql="select * from schueler where username='".$_POST["name"]."' and passwort='".$_POST["pw"]."'";
if($result=mysqli_query($db,$sql)) {
if (mysqli_num_rows($result) >=1) {
if (isset($_COOKIE["allow_cookies"])) {
login();
} else {
echo " ";

}
} else {

echo "Nutzername oder kennwort sind Falsch!";
}
}
}

if (isset($_POST["logout"]) && $_POST["logout"]) {
echo " ";
}

if (isset($_COOKIE["chat_user"]) && !empty($_COOKIE["chat_user"]) || !isset($_COOKIE["allow_cookies"])) {
echo "";
}

?>

0

Generell ist das mixen von HTML und PHP nur der Einfachheit geschuldet.
Der Parser aber parst das ganze Php und gibt erst am Ende das Gesamte HTML aus. Es ist also nicht sinnvoll zu denken das eine Ausgabe direkt da stattfindet wo dein Echo ist. Regel ist aber immer alles was vor der HTML Ausgabe passiert auch vorher zu machen.
Ich z.b. Speicher alles in einer Variable und gebe es am Ende mit Echo aus. Merk dir einfach das nix Zeitnah passiert sondern erst am Ende wenn das Script eigentlich schon zuende ist.

Was möchtest Du wissen?