Url-Weitergabe mit POST und Loginscript

Dommas

Erfahrenes Mitglied
Hallo!

Ich habe mal das Login-Tutorial angeschaut und es kurzerhand in meine Seite eingebaut. Es funktioniert perfekt, nur gibt es jetzt ein Problem mit der Url-Weitergabe auf meinen Seiten.

Das hier ist meine Seite und normalerweise hole ich mit $_GET['section'] den Wert der Variable Section auf der Hauptseite herein und per Switch/Case wird anhand dieser Variable die richtige Seite ausgewählt. Wenn man sich jetzt aber rechts auf der Seite anmeldet (per Form mit POST!), klappt das natürlich nicht mehr, auch wenn ich section mit £_REQUEST hole. Wenn ich auf GET umstelle, klappt der Login nicht mehr und mit POST bringe ich es nicht fertig, die selbe Seite wieder zu laden und darin anzuzeigen ob's geklappt hat oder nicht.

Weiss jemand eine Lösung für dieses Problem? Den Sourcecode fürs Loginscript habe ich 1 zu 1 vom Tutorial übernommen, hier noch der Code meiner index2.php.
PHP:
<body>

<div id="main">

<div id="head">
&nbsp;
</div>

<div id="menue">
<p align="right"><a href="index2.php?section=Home" onMouseOver="in1('platzhalter1',grafik2.src);" onMouseOut="out1('platzhalter1',grafik1.src);"><img src="images/nav/home1.gif" width="100" height="25" border="0" name="platzhalter1" alt="Text"></a><a href="ziel.htm" onMouseOver="in2('platzhalter2',grafik4.src);" onMouseOut="out2('platzhalter2',grafik3.src);"><img src="images/nav_inactive.jpg" width="100" height="25" border="0" name="platzhalter2" alt="Text"></a></p></div>


<div id="content">

<?php				
if(isset($_REQUEST["section"])) {
switch ($_REQUEST['section']) {
case Home:
include ("main.php");
break;
case Login:
include ("login.php");
break;
}
} else { include ("main.php"); }
?>
</div>

<div id="foot">
&nbsp;
</div>

</div>


</body>

Danke im Voraus!
 
Hallo!

Du könntest entweder die Variable per POST übergeben und dann halt mit $_POST[] statt mit $_GET[] abfragen, oder du setzt das Action Attribut des Form-Tags folgendermaßen ein:

<form action="deineseite.php?section=login">

Ich denke, dass sollte funkionieren.

Ansonsten dürfte auch folgendes gehen:

PHP:
if (isset($_POST['section']) $section = $_POST['section'];
elseif (isset($_GET['section'] $section = $_GET['section'];
else $section = "";
 
Danke! Das hat prima geklappt. Nun gibt es jedoch noch ein kleines anderes Problem. Man kann sich jetzt anmelden und das Resultat wird am richtigen Ort angezeigt - jedoch zusammen mit einem Fehler:

Code:
Warning: Cannot send session cache limiter - headers already sent (output started at /usr/www/htdocs/tschaer/eleganza/index2.php:8) in /usr/www/htdocs/tschaer/eleganza/checkuser.php on line 2
Und die checkuser.php sieht so aus:
PHP:
<?php
session_start ();
if (!isset ($_SESSION["user_id"]))
{
  header ("Location: login.php");
}
?>
Ich habe mal gelesen, dass dieser Fehler auftritt wenn es irgendwo ein Leerzeichen zuviel hat?! Kann das sein? Ich habe nämlich alle entfernt und es hat trotzdem nichts gebracht. Weisst du auch hier Rat?

PS: Testaccount: ID: test Passwort: test
 
Zurück