Seite 1 von 2

php und Session Login

Verfasst: 19.04.2006 16:18
von sts
Hallo,

ich möchte gerne ein Script mit Login haben, soweit so gut login.php ist auch schnell geschrieben. auch die Admin.php steht.

Leider kann ich mich nicht einloggen. Nur ich habe keinen Schimmer warum?
Hier der Quelltext, evt. sehe ich den Wald vor lauter Bäumen nicht?!?

login.php

Code: Alles auswählen

<?php
if (isset($_POST["gesendet"])){
include ("config.php");
if ($e1 == $s_username && $e2== $s_passwd){
session_register("s_username", "s_passwd");
Header("Location: admin.php?".SID."");
exit;
}
else {
print "Sie haben keinen Zugriff auf diese Seite !
<p><img src=\"aetsch.gif\" width=\"66\" height=\"46\" border=\"0\" />";
  }
}
?>
<html>
<head>
</head>
<body>
<p>
Bitte geben Sie Benutzernamen und Kennwort ein !
<form action="<?php $_SERVER["PHP_SELF"] ?>" method="post">
<input name="e1">Username<br>
<input type="password" name="e2">Passwort<br>
<input type="submit" value="Absenden" name="gesendet">
</form>
</body>
</html>
admin.php

Code: Alles auswählen

<?php 
session_start();
if(!isset($_SESSION["s_username"])){
 header("Location: login.php");
}
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Admin</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="pragma" content="no-cache" />
</head>
<body>
<table width="65%" border="1" align="center" cellpadding="4" cellspacing="0">
  <form action="eintrag.php?<?php print "".SID; ?>" method="post" enctype="application/x-www-form-urlencoded" name="form1">
    <tr align="center">
      <td colspan="2"><a href="change.php?<?php print "".SID; ?>">Datens&auml;tze
          bearbeiten/l&ouml;schen</a></td>
    </tr>
    <tr>
      <td width="38%"><select name="selection0"  onChange="location.href='admin.php?<?php print SID."&cat=" ?>'+this[this.selectedIndex].value">
          <?php  if(isset($cat)) { $test = $cat; } else { $test = "Bitte ausw&auml;hlen"; } ?>
          <option value="<?php print $test; ?>" selected="selected"><?php print $test; ?></option>
          <?php include("functions.php"); showcat('art', 'prod'); ?>
        </select>
        <br />
        <br />
        <input name="art_neu" type="text" id="art_neu" size="30" />
        <br />
      </td>
      <td width="62%">Ger&auml;teart ausw&auml;hlen oder neue hinzuf&uuml;gen</td>
    </tr>
    <tr>
      <td>
        <select name="selection1"  onChange="location.href='admin.php?<?php print SID."&cat=$cat&key="; ?>'+this[this.selectedIndex].value">
          <?php  if(isset($key)) { $test1 = $key; } else { $test1 = "Bitte ausw&auml;hlen"; } ?>
          <option value="<?php print $test1; ?>" selected="selected"><?php print $test1; ?></option>
          <?php
include("config.php");
$link = mysql_connect($hostname, $benutzer, $passwort);
if(!$link) {
	die("<strong>Kann den Server nicht erreichen.</strong>");
}else{		
	mysql_select_db($db) or die ("<strong>Konnte Datenbank nicht öffnen: </strong>".mysql_error() );
}
$res = mysql_db_query($db, "select distinct hersteller from prod where art = '$cat' ");
while($row = mysql_fetch_array($res)) {
	print "<option value=\"".$row["hersteller"]."\">".$row["hersteller"]."</option>";
}
mysql_close($link);
?>
        </select>
        <br />
        <br />
        <input name="her_neu" type="text" id="her_neu" size="30" />
      </td>
      <td>Hersteller ausw&auml;hlen oder neu eingeben</td>
    </tr>
    <tr>
      <td> <br />
        <input name="mod" type="text" id="mod" size="30" />
      </td>
      <td>Modell eingeben</td>
    </tr>
    <tr>
      <td><textarea name="bau_mod" cols="40" rows="8" id="bau_mod"></textarea>
      </td>
      <td>Baugleiche/&auml;hnliche Modelle</td>
    </tr>
    <tr align="center">
      <td colspan="2"><input type="submit" name="eintrag" id="eins" value="Abschicken" />
&nbsp;
        <input type="reset" name="reset" value="Zur&uuml;cksetzen" />
      </td>
    </tr>
  </form>
</table>
<p>
</body>
</html>
Natürlich sind in der Config die entsprechenden Angaben gemacht

Verfasst: 19.04.2006 16:28
von AmShaegar

Code: Alles auswählen

if ($e1 == $s_username && $e2== $s_passwd){ 
was sind denn $s_username und $s_passwd und wo werden die definiert?

und wie bewirkst du, dass das zutrifft:

Code: Alles auswählen

if (isset($_POST["gesendet"])){
und noch ne frage: ist das ganze in phpBB eingebunden?

Verfasst: 19.04.2006 16:39
von Spezial
Ich würds so machen:

login.php

Code: Alles auswählen

<?php
if (isset($_POST['e1']) AND isset($_POST['e2'])){
include ("config.php");
session_start(); // Ohne das geht nichts soweit ich weiß
if ($_POST['e1'] == $s_username && $_POST['e2'] == $s_passwd){ // ist passwd richtig geschrieben?
$_SESSION['username'] = $_POST['e1']; // so beide variablen definieren
$_SESSION['password'] = $_POST['e2'];

Header("Location: admin.php?".session_name()."=".session_id); // und so würd' ich die sid übergeben
exit;
}
else {
print "Sie haben keinen Zugriff auf diese Seite !<p><img src=\"aetsch.gif\" width=\"66\" height=\"46\" border=\"0\" />";
  }
}
?>
admin.php

Code: Alles auswählen

<?php
session_start();
include ("config.php");
if($_SESSION['username'] != $s_username OR $_SESSION['password'] != $s_passwd){ // ist passwd richtig geschrieben?
 header("Location: login.php");
}
print "<?xml version=\"1.0\" encoding=\"iso-8859-1\"?".">"; ?>
Das HTML hab ich weggelassen.
Das

Code: Alles auswählen

if (isset($_POST["gesendet"])){
was AmShaegar erwähnt hat hab ich behoben.

Greetz

P.S.: (edit)
Hab noch was an der Übergabe der SID geändert...

Verfasst: 19.04.2006 16:45
von AmShaegar
ja, so hätt ichs auch gemacht.. das mit session_start() wa mir noch gar nicht aufgefallen ^^

Verfasst: 19.04.2006 16:50
von Spezial
AmShaegar hat geschrieben:ja, so hätt ichs auch gemacht.. das mit session_start() wa mir noch gar nicht aufgefallen ^^
Tja, man sieht den Quelltext vor lauter Code nicht :D
Das war das Erste was mir aufgefallen war ;)

Verfasst: 19.04.2006 17:26
von sts
@AmShaegar
was sind denn $s_username und $s_passwd und wo werden die definiert?
ich habe die daten in der Config.php definiert:

Code: Alles auswählen

$s_username = "hans";		// Username für die Adminseite
$s_passwd = "dampf";		// Passwort
ganze config.php (Datenbankdaten habe ich entfernt)

Code: Alles auswählen

<?php
$benutzer = "";		// Benutzername
$passwort = "";		// Passwort
$db =       "";		// Name deiner Datenbank
$hostname = "localhost";	// Hostname, kann meistens so belassen werden.

$s_username = "hans";		// Username für die Adminseite
$s_passwd = "dampf";		// Passwort
?>
ist das ganze in phpBB eingebunden?
Das würde ich sehr gerne machen, leider wüßte ich nicht wie? Ich die User übernehmen kann?[/code]

Verfasst: 19.04.2006 17:32
von AmShaegar
warum benutzt du dann nciht den login von phpbb?

du kannst deine seiten in den rohbau von phpbb einbinden, also so, dass die daten all verfügbar sind und dann kannst du auf sie zugreifen. benutzername, passwort, e-mail, was du willst.

Vorlage für in phpBB eingebundene Seiten

Verfasst: 20.04.2006 00:32
von sts
Hallo,

leider klappt der Login trotz der Änderungen von Spezial noch nicht. Ich denke auch der Lösungsansatz von AmShaegar (Login system von PHPBB nutzen) wird sinnvoller sein.
Nur wie greife ich auf 2 verschiedene Datenbanken zu (auch Login und Passwort sind anders)? Gibt es hier schon Lösungen?

Verfasst: 20.04.2006 00:43
von hagily

Verfasst: 20.04.2006 01:01
von sts
@hagily

vielen Dank, im Moment habe ich eher folgendes Problem:
Nur wie greife ich auf 2 verschiedene Datenbanken zu (auch Login und Passwort sind anders)? Gibt es hier schon Lösungen?