• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Shoutbox einbinden und nachladen

ShoXX

Mitglied
Hallo Leute.

Ich habe mir eine Shoutbox geschrieben, die auf reinem PHP udn MySql basiert.

Jetzt sollte diese Shoutbox auf jeder Seite ja irgendwo vorhanden sein....

Meine Probleme:

Ich habe die Shoutbox auf allen Seiten mit php include (); eingebunden.
Wenn ich in die Box jetzt aber was reinschreibe und absende, bekomme ich danach die shoutbox.php angezeigt (also die Seite wo nur die Box drin liegt)
das liegt ja an dem formular mit action="shoutbox.php".....

1.Frage:
Wie mache ichs, dass ich nach dem Absenden auf der Seite lande wo ich im Moment gerade im Browser surfe?! (also z.B. auf der Startseite)

2.Frage:
ist es mit PHP möglich den Eintrag gleich anzeigen zu lassen, nachdem ich auf "Submit" gedrückt habe?! Weil im Moment muss ich die Seite immer erst neu laden, bzw. auf eine andere Seite navigieren.

LG
und schonmal Danke im Vorraus^^
 
Werbung:
Zu Frage 1:
Du legst in die shoutbox.php ganz zu Beginn eine if-Bedingung:
PHP:
if($_POST) {
  hier kommt nur der Code zum Speichern des Eintrags
} else {
  hier kommt nur die Ausgabe rein
}
Zusätzlich kommt in die ersten Teil ganz zum Ende (also vor das } else {) folgendes:
PHP:
header("location:$_SERVER['HTTP_REFERER']")
Das bringt deinen Nutzer dann zur vorher besuchten Seite. Das ist aber auch nur die einfache Lösung. Die bessere Alternative wäre die Shoutbox bzw. das Formular zum Eingeben eines neuen Beitrages so einzubinden, dass das Script die Herkunft per $_GET oder $_POST mitgeschickt bekommt. Also zum Beispiel indem man $referer=dokumentname dranhängt. Denn den referer kann man fälschen oder abschalten (machen manche Leute um ein wenig unerkannter durch's Netz zu surfen).

Zu Frage 2:
Ja, das ist möglich. Informiere dich für so etwas per Google mal über das Thema AJAX und über Frameworks, die das unterstützen/erleichtern, wie zum Beispiel jQuery.
 
Erstmal THX für die schnelle Antwort^^

öhhmm.....

hast du dich bei dem
Code:
[COLOR=#000000][COLOR=#0000bb]header[/COLOR][COLOR=#007700]([/COLOR][COLOR=#dd0000]"location:$_SERVER['HTTP_REFERER']"[/COLOR][COLOR=#007700])[/COLOR][/COLOR]
verschrieben??
(Bis auf das Semikolon hintendran?)

Bei mir kommt dann nämlich folgendes als ich den Code eingefügt hab:
Code:
[B]Parse error[/B]:  syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Mein Code sieht jetzt so aus:
PHP:
if ($_POST)
{
//Werte vom Formular über POST holen und in Vars schreiben
//Abfragen überprüfen ob alles ausgefüllt usw.
//In DB eintragen
header("location:$_SERVER['HTTP_REFERER']");
}
else
{
//Einträge aus DB auslesen
//und ausgeben
}
Wegen Dem Jquery werd ich mal nachguggen....da wirds ja auch iwelche Tut's geben^^
 
Werbung:
Sorry, der Referrer darf natürlich nicht in den Anführungszeichen stehen. So ist es richtig:
PHP:
header("location:".$_SERVER['HTTP_REFERER']);
 
Hmmm.....geht leider immer noch nicht ?!?!
Ich werde dann wieder auf die Shoutbox.php geleitet.

Woran könnte es noch liegen???
 
Werbung:
naja. ich hab sie wieder per include in meine sidebar reingehaun und dann bin ich auf meine startseite gegangen, hab einen Eintrag gemacht und bin wieder bei der shoutbox.php gelandet.....
 
Wie wäre es mit action="" und die shoutbox.php reagiert einfach, wenn etwas eingetragen wurde?
 
damn!
It workz :cool:

Danke @crash!!

Jetzt muss ich nur noch das mit dem Automatisch neu laden hinbekommen, dann bin ich zufrieden ^^

Thx auch nochmal an Körnerbrötchen für die Mühen :)

LG
 
Werbung:
Zurück
Oben