Login im gleichem Frame

g4da

Grünschnabel
Hallo,

ich habe bei Euch folgendes Tutorial hiergelesen und nachgebaut. Klappt alles prima. ich ahbe nur folgedes Problem:

ich habe die datei "formular.php" per iclude in meine Seite eingebunden. zeigt er auch an.

melde ich mich nun an öffnet er die "usercheck.php" in einem neuem Fenster. ich habe shcon den Befehl header ("Location: intern.php"); durch include (" intern.php"); .

Die anderen Befhele auch wo header("..) vorkamen aber es funktioniert niht.

habt ihr eine Lösung fürmich?

Danke im Voraus
Marco
 
Fast schon zum heulen!
Ok ich merke du bist ein totaler Anfänger, nicht war?

Ich verlinke dich gleich wieder auf ein Tutorial und wünsche dir viel Spaß dabei!
Es sind verschiedenen ... immer Absteigend --> Besser werdend
http://www.tutorials.de/forum/php-tutorials/264075-switch-case-fuer-contentwahl.html
http://www.tutorials.de/forum/php-t...che-art-fuer-z-b-index-php-section-links.html
http://www.tutorials.de/forum/php-t...on-ueber-die-url-index-php-section-index.html

Das ganze hat nicht mim Header etc. zu tun, sondern du regelst es über die $_GET-Variablen ... somit wird die Datei wieder normal inlcudet ...

Wenn dus nicht kapierst, kann ich ja später nochmal helfen.
 
Zuletzt bearbeitet:
Sry für die dummen Fragen, aber es klappt einfach nicht. Kann alle 3 Tuts nachvollziehen wenn ich sie nachmache funktionieren sie auch, aber ich kann sie nicht mit dem login in verbindung bringen bzw. wenn ich es mache klappts nicht.
 
Ist schon lange her, aber ich habe auch am Anfang mal mit Frames gearbeitet! Wenn der Fehler da liegt wo ich denke, dass er liegt, hat das aber mehr mit HTML zu tun!

Ich glaube du als Ziel des Links das gewünschte Frame-Fenster wählen!

HTML:
<a href="http://www.doremi.de/" target="framefenstername">Link</a>

Wie das ganze bei Formularen abläuft weiß ich jetzt nicht genau, aber ich glaube, dass bei Framesets immer das Zielframe deklariert werden muss! ;)

//edit: So hab's versucht! Wenn du Formulare nimmst musst du ebenfalls das Ziel angeben, was dann wie folgt aussieht:

HTML:
<form name="Formular" method="post" action="intern.php" target="Zielframe-Name">
<!-- Hier dann die ganzen inputs -->
</form>

mfg
nero_85
 
Zuletzt bearbeitet:
Naja kannst du mir einen gefallen tun mund mir mal die Links zu deinem Loginscript geben
am besten du stellst sie einfach da rein!

Naja ich versuchs mal ^^
Das hier ist die Datei mit deinem Content --> warscheinlich die index.php
PHP:
<?php
$dateien = array();
$dateien['form'] = "formular.php";
$dateien['login'] = "login.php";
$dateien['intern'] = "intern.php"; 
$dateien['logout'] = "logout.php"; 
$dateien['error'] = "fehler.php";

if(isset($_GET['section']) AND isset($dateien[$_GET['section']])){
if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";
include $dateien[$_GET['section']]; 
}else{
include $dateien['error']; 
}
?>

Soweit müsse es gehen! Tja und schon kannst du die entsprechende Loginseite wie folgt aufrufen index.php?section=form

Nehmen wir nun Änderungen an folgender Datei vor: formular.php
Wir ersetzen nun folgendes in der Datei
HTML:
<form action="login.php" method="post">
durch das hier
HTML:
<form action="index.php?section=login" method="post">

Nehmen wir nun Änderungen an folgender Datei vor: login.php
PHP:
header ("Location: intern.php");
header ("Location: formular.php?fehler=1");
wird durch folgendes ersetzt
PHP:
header ("Location: index.php?section=intern");
header ("Location: index.php?section=form&&fehler=1");

Nehmen wir nun Änderungen an folgender Datei vor: checkuser.php
PHP:
  header ("Location: formular.php");
ersetzen wir durch
PHP:
  header ("Location: index.php?section=form");


Nehmen wir nun Änderungen an folgender Datei vor: intern.php
wir ersetzen hier
HTML:
  <a href="logout.php">Ausloggen</a>
durch
HTML:
  <a href="index.php?section=logout">Ausloggen</a>

und zu Schluss kommt die letzte Datei: logout.php
auch hier wird wieder
PHP:
header ("Location: formular.php");
durch
PHP:
header ("Location: index.php?section=form");
ersetzt -.-

Tja bischen nachdenken hätte geholfen wenn du mich fragst!
 
Hi,

danke erstmal an euch. Letzteres hat geklappt! Ich kann die PHP dateien jedesmal seperat über "section" abrufen. wenn ich mich über formular.php einlogge dann kommt aber dieser fehler:

"Cannot modify header information - headers already sent by (output started at" und dann meine domain.index.php:6) in domain.login.php on line 38.
 
Zuletzt bearbeitet:
Ja die fehler meldung kommt ab php 5 version wenn du in deiner Login voher leerzeichen hast oder andere ausgaben bevor der Header befehl oder der php code kommt.

Poste doch einfach immer deinen quellcode dann kann man immmer leicht schnell sagen was daran nicht stimmt.

Mfg Splasch
 
PHP:
<?php  
session_start (); 

// Datenbankverbindung aufbauen  
$connectionid = mysql_connect ("localhost", "root", "");  
if (!mysql_select_db ("login", $connectionid))  
{  
  die ("Keine Verbindung zur Datenbank");  
}  

$sql = "SELECT ".  
    "Id, Nickname, Nachname, Vorname ".  
  "FROM ".  
    "benutzerdaten ".  
  "WHERE ".  
    "(Nickname like '".$_REQUEST["name"]."') AND ".  
    "(Kennwort = '".md5 ($_REQUEST["pwd"])."')";  
$result = mysql_query ($sql);  

if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["Id"];  
  $_SESSION["user_nickname"] = $data["Nickname"];  
  $_SESSION["user_nachname"] = $data["Nachname"];  
  $_SESSION["user_vorname"] = $data["Vorname"];  

header("Location:index.php?section=intern.php");}
else{
header("Location:index.php?section=formular.php?fehler=1");
}
?>

habe jetzt alle leerzeichen beseitigt und es geht immer noch nicht :(
 
Kann es sein das du die Login.php datei includest ?
Dann mußt du nähmlich auf der anderen Datei nachschauen ob dort schon voher einen Broswer ausgabe gemacht wird wenn ja dann kann man keinen header mehr senden.

Und eben wie gesagt vor dem <?php darf keine leerzeile oder leerzeichen sein.

Ansonsten hätt ich in der login datei nix gesehen was einen header voher senden würde.

Mfg Splasch
 
Ich hatte bei einer Firmenseite auch mal das Problem. Statt der Header-Informationen habe ich mich dann für folgende Lösung entschieden

HTML:
<meta http-equiv="refresh" content="5; URL=?KP=contact-de">

Naja oder du schaust, dass du deine restlichen Bestandteile deiner Seite erst später ausgibst ...

Ersetz einfach diesen Teil in deinem Code, denn du oben gesendet hast
PHP:
if (mysql_num_rows ($result) > 0)  
{  
  // Benutzerdaten in ein Array auslesen.  
  $data = mysql_fetch_array ($result);  

  // Sessionvariablen erstellen und registrieren  
  $_SESSION["user_id"] = $data["Id"];  
  $_SESSION["user_nickname"] = $data["Nickname"];  
  $_SESSION["user_nachname"] = $data["Nachname"];  
  $_SESSION["user_vorname"] = $data["Vorname"];  

// die content='5 steht für die Zeit, nach der verlinkt werden soll 5 --> 5 Sekunden
echo "<meta http-equiv='refresh' content='5; URL=index.php?section=intern.php'>";
}else{
echo "<meta http-equiv='refresh' content='5; URL=index.php?section=formular.php?fehler=1'>";
}
?>
 
Zuletzt bearbeitet:
Zurück