php und Session Login

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

php und Session Login

Beitrag 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
PHPBB3 Fan
PHPBB3 SEO Skin||
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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?
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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...
Zuletzt geändert von Spezial am 19.04.2006 16:54, insgesamt 2-mal geändert.
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag von AmShaegar »

ja, so hätt ichs auch gemacht.. das mit session_start() wa mir noch gar nicht aufgefallen ^^
Benutzeravatar
Spezial
Mitglied
Beiträge: 135
Registriert: 15.07.2004 08:53
Wohnort: Braunschweig
Kontaktdaten:

Beitrag 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 ;)
Wenn Chuck Norris ins Wasser fällt, wird er nicht nass…aber das Wasser wird Chuck Norris.
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag 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]
PHPBB3 Fan
PHPBB3 SEO Skin||
AmShaegar
Mitglied
Beiträge: 408
Registriert: 09.07.2004 17:33

Beitrag 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
Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag 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?
PHPBB3 Fan
PHPBB3 SEO Skin||
Benutzeravatar
hagily
Mitglied
Beiträge: 1139
Registriert: 25.08.2005 22:05
Wohnort: Schweinfurt
Kontaktdaten:

Beitrag von hagily »

Benutzeravatar
sts
Mitglied
Beiträge: 345
Registriert: 04.04.2004 18:45

Beitrag 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?
PHPBB3 Fan
PHPBB3 SEO Skin||
Antworten

Zurück zu „Coding & Technik“