Hallo zusammen.
Ich komme (wie so mancher) frisch von Funpic, da deren Probleme einfach nur nerven (wie nicht funktionierende mail-funktion).
Ich habe dort schon eine Page erstellt (html - php -mysql), die ich nun für bplaced anpassen wollte.
Allerdings habe ich festgestellt dass es einen kleinen Unterschied zwischen Funpic und bplaced gibt…und zwar diesen
Ich habe so ziemlich überall (zB beim eigens erstellten Gästebuch) header() oder beim Login setcookie().
Davor kommt logischer Weise immer ein Formular (Gästebucheintrag, Logindaten usw.)
Bisher habe ich dann eben immer mit betätigen eines Buttons ein paar if’s usw. und am Schluss, wenn alles passt ein header() zu der nächst-gewünschten Seite.
Bei funpic kein Problem, hier geht garnichts mehr
Dazu muss ich erwähnen, ich benutze das “2 Spalten Layout” (http://tut.php-quake.net/de/layout.html), sprich eine index.php die alle anderen Seiten über $_GET() einfügt.
Ich suche nun seit 2 Tagen eine einfache Möglichkeit, das Problem zu beheben ohne eine ganz neue Seite schreiben zu müssen, aber ich komme einfach auf keinen grünen Zweig.
Also kann mir jemand helfen bevor ich verweifel?
[quote=“Chiller”]Ich habe so ziemlich überall (zB beim eigens erstellten Gästebuch) header() oder beim Login setcookie().
Davor kommt logischer Weise immer ein Formular (Gästebucheintrag, Logindaten usw.)[/quote]
Das ist nicht “logisch” - bzw. nur dann, wenn man unsaubere Scripte schreibt.
Vernünftige Scripte werden nach dem EVA-Prinzip geschrieben - und damit hättest du dieses Problem gar nicht.
output_buffering aktivieren - das fängt die vorher gemachten Ausgaben erst mal ab, so dass noch “zwischendrin” Header gesendet werden können.
Wenn du jetzt diese schnelle “Lösung” wählst - dann aber bitte beim nächsten Script gleich von Anfang an sinnvoll vorgehen.
<?php
if(isset($_POST['Absenden'])){
if($name == "" or $pass == ""){
echo " Bitte beide Felder ausfüllen! \n";
}
else{
$sql = "SELECT
Username,Passwort,freigeschalten
FROM
User;";
$result = mysql_query($sql) OR die(mysql_error());
if(mysql_num_rows($result)){
while($row = mysql_fetch_assoc($result)) {
if(($name == $row['Username']) and ($pass == $row['Passwort']) and ($row['freigeschalten'] == "ja")){
setcookie("user", $name, time()+(60*60*24*7));
setcookie("eingeloggt", "ja", time()+(60*60*24*7));
header("Location: index.php?page=1");
}
}
echo " Entweder Name oder Passwort sind falsch oder sie wurden noch nicht freigeschalten! \n";
}
}
}
if(isset($_POST[‘reg’])){
header(“Location: index.php?page=3a”);
}
?>[/code]
Dies ist zB mein momentanes Login-gebastel, welches wie gesagt von der index.php eingebunden wird.
Wenn ich dort was eingebe und auf submit gehe kommt nur “Bitte beide Felder ausfüllen!”, obwohl ich das ja habe.
Und wenn es funktionieren würde, wäre ich wieder bei dem alten Fehler
setcookie("user", $name, time()+(60*60*24*7));
setcookie("eingeloggt", "ja", time()+(60*60*24*7));
header("Location: index.php?page=1");
Weil hab ja html-Code davor.
Ist das echt so mies programmiert?
Hm wenn’s nur die Seite wär ja, aber das Ganze gepostete wird ja in der index.php includiert.
Und davor kommen diverse div-Elemente, in welche die include eingebunden is.
[code]<?php
include “includes/load.php”;
?>
Chillers Page
<div id="all">
<ul id="Navigation">
Navigationsplatzhalter
<div id="page">
<div id="text">
<?php
if(isset($_GET['page']) AND isset($dateien[$_GET['page']])) {
include $dateien[$_GET['page']];
}
else {
include $dateien['1'];
}
?>
</div>
</div>
</div>
</body>