Login mit Sessions

Fruppsi

Mitglied
Ich habe das Problem das ich seit , ich die Login funktion ein mein "Template" falls ma des Template nennen kann bzw. sollte, hier die wichtigsten dateien.

index.php im hauptverzeichnis :
PHP:
<?php
include ('templates/breettemplate/index.php');
?>


index.php in templates/breettemplate :
PHP:
<html>
<head>
<title>index</title>
<link rel="stylesheet" type="text/css" href="templates/breettemplate/css/style.css"/>
</head>

<body>
<table border="0" align="center" cellpadding="0" cellspacing="0" id="container">
  <tr>
    <td><div id="header"></div></td>
  </tr>
  <tr>
    <td><table border="0" cellpadding="0" cellspacing="0" id="container">
      <tr>
        <td valign="top" id="menucontainer">
<div id="menu"><?php include ("includes/templateobau/menu.php");?></div>
<div id="login"><?php include ("includes/user/login.php");?></div>
       </td>
        <td valign="top"><div id="content">
          <?php include ("includes/templateobau/content.php");?>
        </div></td>
      </tr>
    </table></td>
   
  </tr>
  
  <tr>
    <td id="footer">&nbsp;</td>
  </tr>
</table>

</body></html>

Jetzt die Datei includes/templateobau/menu.php
PHP:
<table width="150" border="0" cellpadding="0" cellspacing="0">
<?php
    
include ('config/config.inc.php');

$connection = mysql_connect ($host,$user,$pw)
			  	or die ("Connectiounsfehler");
			  mysql_select_db($numm)
			  	or die ("Dei Datenbank existeiert net!");

$ufro = "SELECT * FROM $artikeltabell WHERE menu ='Jo'";
$result = mysql_query ($numm, $ufro, $connection);

 while ($ausgabe = mysql_fetch_array ($result))
 {
 print (" 
    <tr>
      <td>
<a href=\"index.php?id=$ausgabe[id]\">$ausgabe[betreff]</a> </td>
    </td>
    </tr> 
");
 }

?>
<tr>
      <td>
<a href="index.php?id=6002">Registreiren</a> </td>
    </td>
    </tr> 
</table>

Jetzt die Datei includes/user/login.php
PHP:
<?php
include ('config/config.inc.php');
$connection = mysql_connect ($host,$user,$pw)
			  	or die ("Connectiounsfehler");
			  mysql_select_db($numm)
			  	or die ("Dei Datenbank existeiert net!");

?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Login</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<?php if(!isset($_POST['submit'])) { ?>
<form action="<?php $PHP_SELF ?>" method="post">
  <table border="0" cellpadding="5" cellspacing="1" align="center">
    <tr>
      <td><input type="text" name="username" size="20" class="input"<?php if($_POST['username'] != "" ) {echo ' value="'.$_POST['username'].'"';} ?>></td>
    </tr>
    <tr>
      <td ><input type="password" name="password" size="20" class="input"></td>
    </tr>
    <tr>
      <td align="center"><input type="submit" name="submit" value="Aloggen" class="button"></td>
    </tr>
  </table>
</form>
<p>
  <?php
}elseif(!isset($_POST['username']) || $_POST['username'] == "") {
	echo '<p align="center">Du muss een Usernumm agin<br><br><a href="index.php">Zereck</a></p>';
}elseif(!$_POST['password'] || $_POST['password'] == "") {
	echo '<form action="index.php" method="post">';
	echo '<p align="center">Duz ,muss ee Passwuerd agin<br><br>';
	echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
	echo '<input type="submit" name="zurueck" value="Zereck">';
	echo '</p>';
	echo '</form>';
}else{
	$password = md5($password);
	$query = @mysql_query("SELECT *, pw FROM $usertabell WHERE nick = '".$_POST['username']."'");
	$result = @mysql_fetch_array($query) or die('<p align="center">Usernumm existeiert net!<br><a href="index.php">Zereck</a></p>');
	if($password != $result['pw']){
		echo '<form action="index.php" method="post">';
		echo '<p align="center">Passwuerd falsch<br><br>';
		echo '<input type="hidden" name="username" value="'.$_POST['username'].'">';
		echo '<input type="submit" name="zurueck" value="Zereck"></p>';
		echo '</form>';
		die;
	}else{
		$nick = $result['nick'];
		session_register('nick');
		if($result['status'] == "admin"){?> <table>
  <tr>
    <td><a href="index.php?id=7000">Adminbereich</a></td>
  </tr>
  <tr>
    <td><a href="index.php?id=6003">Profil &auml;nneren</a></td>
  </tr>
  <tr>
    <td><a href="index.php?id=6004">Logout</a></td>
  </tr>
</table>
  <?php }else{?><table>
  <tr>
    <td><a href="index.php?id=6003">Profil &auml;nneren</a></td>
  </tr>
  <tr>
    <td><a href="index.php?id=6004">Logout</a></td>
  </tr>
</table><?php }	
	}
}
?>
</p>


<p>&nbsp;</p>
</body>
</html>

Jetzt die Datei includes/templateobau/content.php

PHP:
<?php if(!session_is_registered('nick') || $_SESSION['nick'] == "") {
$numm="";}
else {
$numm=$_SESSION['nick'];
}
include ('config/config.inc.php');

$connection = mysql_connect ($host,$user,$pw)
			  	or die ("Connectiounsfehler");
			  mysql_select_db($numm)
			  	or die ("Dei Datenbank existeiert net!");
$id = $_GET['id'];                
if($_GET['id'] == "")
    {
    
        $ufro = 'SELECT * from '. $artikeltabell .' WHERE startsait = "Jo"';
        
        $result = mysql_query ( $ufro ); // hier mysql_query, nicht mysql_db_query
        
        while ($ausgabe = mysql_fetch_array ($result))
        {
            echo '<table border="0" cellspacing="0" cellpadding="0">
                      <tr>
                        <td>' .$ausgabe['text']. '</td>
                      </tr>
                    </table>';

        }
    }
elseif($_GET['id'] == "6002")
{
include ("templates/breettemplate/includes/user/register.php");
}
elseif($_GET['id'] == "6001")
{
include ("templates/breettemplate/includes/user/intern.php");
}
elseif($_GET['id'] == "7000")
{
include ("templates/breettemplate/includes/user/admin.php");
}
else
{
    $ufro = 'SELECT * FROM ' .$artikeltabell. ' WHERE id = "' .$id. '"';
    
    $result = mysql_query ( $ufro ); // hier mysql_query, nicht mysql_db_query
    
    while ($ausgabe = mysql_fetch_array ($result))
    {
        echo '<table border="0" cellspacing="0" cellpadding="0">
                  <tr>
                    <td>' .$ausgabe['text']. '</td>
                  </tr>
                </table>';
    }
}

?>

Wenn ich die beiden Links wähle bekomme ich das Login feld sowie bei der Option das Profil zu editeiren
PHP:
elseif($_GET['id'] == "6001")
{
include ("templates/breettemplate/includes/user/intern.php");
}
elseif($_GET['id'] == "7000")
{
include ("templates/breettemplate/includes/user/admin.php");
}
 
Guck mal in der Tutorial-Sektion...
Da ist ein Tut für ein Login drinne...
Da wird auch eine Session mit verwendet...

Wenn du das durch gelesen, verstand und umgesetzt hast, dann meld dich hier wieder...

PS: Klingt zwar ziemlich fies, is aber nciht böse gemeint... Geht darum, dass du dir die Grundkentnisse fürs erstellen einer Login-Funktion und die Verwendung von Sessions aneignest...
Nicht das ich dir hier einen von nem Baum erzähle, du aber nur Äste kennst
 
Ich habe das Problem das ich seit , ich die Login funktion ein mein "Template" falls ma des Template nennen kann bzw. sollte, hier die wichtigsten dateien.

Deine Fragestellung verwirrt mich relativ. Ich versteh sie nicht so ganz.
Funktioniert dein Login nichtmehr, seitdem du es in der
"index.php in templates/breettemplate" includiert hast?
In deinem sogennanten template?
 
Das Tut hab ich bereits durchgelesen also bin nicht der Profi in Sachen bäume aber en bissle klappt das schon ,
Guck mal in der Tutorial-Sektion...
Da ist ein Tut für ein Login drinne...
Da wird auch eine Session mit verwendet...

Wenn du das durch gelesen, verstand und umgesetzt hast, dann meld dich hier wieder...

PS: Klingt zwar ziemlich fies, is aber nciht böse gemeint... Geht darum, dass du dir die Grundkentnisse fürs erstellen einer Login-Funktion und die Verwendung von Sessions aneignest...
Nicht das ich dir hier einen von nem Baum erzähle, du aber nur Äste kennst
kann sein des das ganze zimlech nach Anfänger aussieht , dan spiegelt es auch ein biischen das rum wonach es aussieht es ist schliesslich noch kein meister vom Himmel gefallen, aber werd dann noch mal durchlesen. Wollte nur sagenm das ich nicht fragen würde ohne mich mit dem Thema ernsthaft zu befassen!

Deine Fragestellung verwirrt mich relativ. Ich versteh sie nicht so ganz.
Funktioniert dein Login nichtmehr, seitdem du es in der
"index.php in templates/breettemplate" includiert hast?
In deinem sogennanten template?

Genau seitdem gibt es Probleme Entschuldigung wenn ich ein bissle unklar war
 
dann schau dir mal das include an und check den link...
der pfad muss relativ zu der file sein, die das gesamte letzte beinhaltet...
bei mir isses imma die index.php im hauptverzeichnis, da ich nur über eine seite steuer...
 
Han jetz die index geändert:
voher:
PHP:
<?php
include ('templates/breettemplate/index.php');
?>

jetzt:
PHP:
<?php ob_start();
session_start();
?>
<html>
<head>
<title>index</title>
<link rel="stylesheet" type="text/css" href="css/style.css"/>
</head>

<body>
<table border="0" align="center" cellpadding="0" cellspacing="0" id="container">
  <tr>
    <td><div id="header"></div></td>
  </tr>
  <tr>
    <td><table border="0" cellpadding="0" cellspacing="0" id="container">
      <tr>
        <td valign="top" id="menucontainer">
<div id="menu"><?php include ("includes/templateobau/menu.php");?></div>
<div id="login"><?php include ("includes/user/login.php");?></div>
       </td>
        <td valign="top"><div id="content">
          <?php include ("includes/templateobau/content.php");?>
        </div></td>
      </tr>
    </table></td>
   
  </tr>
  
  <tr>
    <td id="footer">&nbsp;</td>
  </tr>
</table>

</body></html>

Die Pfade hab ich kontrolier diese sin relativ angaben und stimmen mit der ordner struktur übereinander also hänge ich beim selben Problem
 
Ich glaube ich bin blind.
Würdest du konkret erklären WO dein Problem liegt, könnte man dir auch besser helfen. Alles was ich hier lese ist:"Genau seitdem gibt es Probleme", "also hänge ich beim selben Problem"... Welches Problem?
Was funktioniert nicht? Kommt es zu einem Fehler? (Vielleicht sogar mit Fehlermeldung)
 
Also ich hab Logun mit der include funktion in meine index.php eingebettet , seitdem ich diesen schritt gemacht habe und dadurch natürlich das ob_start(); session_start(); aus allen dateien enfernen musste und nur in die inde.php setzen da es sonst die berühmte Fehlermeldung gab header already send .... nun seitdem hab ich Porbleme.Einloggen kann man sich , wählt man jetzt aber einer der geschüutzen Links bekommt man wierder das Login Feld zusehen
 
Ich nenn mal mehrere Gedanken, die mir grade durch den Kopf schießen...

1. Dreh mal ob_start(); und session_start(); um, sodass der Buffer erst NACH der Session gestartet wird...

2. Nehme ich an, dass du auf den geschützten Seiten den Login zustand des User prüfst... Wenn dieser online ist, dann kriegt er den Inhalt, sonst das Login-Feld...
Vermutlich liegt da in der Überprüfung nen Fehler...

3.
PHP:
echo '<pre>';
var_dump($_SESSION);
echo '</pre>';

Zum Prüfen ob und was in der Session überhaupt drinne steht ^^
 
Zuletzt bearbeitet:
Zurück