Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Sessions | ein Fehler, mit dem ich nichts anfangen kann...

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
22.12.2007, 18:34 Uhr
~Serkiiii
Gast


Servus Leute!
Ich hab ein Problem, also ich muss für die Schule eine Seite mit Sessions programmieren. Soweit so gut. Hier erst mal der Aufbau...
Es gibt 5 Dateien:
- login.html
- varify.php
- var.inc.php
- admin.php
- logout.php

Anfang:
login.html --> verify.php (included var.inc.php, vergleicht Benutzerdaten, Startet Session usw) -- > (bei erfolgreichem login) admin.php, bei logout leitets weiter an logout.php und die ganze geschichte fängt von neuem an.

hier jetzt mal die Codes zu den einzelnen Dateien.
login.html

Code:
<html>
<head>
<title>login</title>
</head>
<body>
<form action="verify.php" method="post">
Username : <br>
<input type="text" name="username" size="20" maxlength="20"><br>
Passwort : <br>
<input type="password" name="passwort" size="20" maxlength="20"><br>
<input type="submit" name="absenden" value="einloggen">
</form>
</body>
</html>



verify.php
Da hab ich einen kleinen Teil auskommentiert, weil da sonst eine Meldung kommt von wegen Benutzername nicht bekannt. naja egal

Code:
<?
session_start();
include('var.inc.php');
$name= $_POST['username'];
$pw=$_POST['passwort'];
echo $name;
echo "<br>";
echo $pw;
echo "<br>";
if ((isset($username)) OR (isset($passwort))) {
die ("Sorry, aber ohne Name bzw. Passwort geht hier nichts !");
}
$conn = @mysql_connect($dbserver,$bduser,$dbpass);
if (!$conn){
die ("Sorry, Verbindungsversuch zur Datenbank ist fehlgeschlagen !");
}
mysql_select_db($dbname,$conn);
$query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";
$result =  mysql_query($query,$conn);
$zeileholen =  mysql_fetch_array($result,MYSQL_ASSOC);
mysql_close($conn);
//if (!$zeileholen){
//die ("Sorry, aber dieser Name ist leider nicht bekannt !");
//}
if ($zeileholen["pass"] <> $passwort){
die ("Sorry, aber dieses Passwort passt nicht zum Usernamen !");
}
$level = $zeileholen["level"];

session_register('username');
session_register('level');
header ("Location: admin.php");
?>



var.inc.php

Code:
<?
// Datenbank Variablen
$dbserver = ""; // Datenbankserveradresse
$dbname = ""; // Name der Datenbank
$dbuser = ""; // Username des Datenbankbenutzers
$dbpass = ""; // Passwort des Datenbankbenutzers
?>




admin.php

Code:
<? session_start(); ?>
<html>
<head>
<title>Adminzone</title>
</head>
<body>
<?
if (! session_is_registered('username'))
{
die ("Sorry, aber sie haben sich wohl nicht eigeloggt, oder ?");
}
echo "Hi ".$username." !";
echo "<br> Dein Userlevel ist ".$level;?>

<br>
<input type="button" name="logout" value="logout" onClick="location.href='logout.php'">
</body>
</html>



Hier die Fehlermeldung die erscheint wenn ich bei login.html meine Daten eingeb und abschick:

Warning: Cannot modify header information - headers already sent by (output started at /var/www/web734/html/php/test/verify.php:7) in /var/www/web734/html/php/test/verify.php on line 32

ich komm da echt nicht weiter. Wenn ihr mir da weiterhelfen könnten, das wär echt prima!
Danke im Voraus.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
22.12.2007, 18:44 Uhr
~Serkiiii
Gast


ihr könnt den Thread wieder schließen oder löschen, weiß jetzt wo der fehler war danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
22.12.2007, 19:24 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


nur mal als anmerkung:

?> sollte man ggf. bei php-only dateien vollständig weglassen. weiterhin:


PHP 4:
$pw = ...; // <-- PW
if ((isset($username)) OR (isset($passwort))) { // <-- PASSWORT



Weiterhin ist ein Query in der Art tötlich:


PHP 4:
$query = "SELECT pass, level FROM zugriff WHERE name = '".$username."'";



du benutzt die userdaten unkontrolliert??????? na dann viel spaß...

Ansonsten empfiehlt es sich evtl die Pear-Extension Pear::DB zu verwenden, dann haste den ganzen Datenbankzugriff objektorientiert und kannst u.A auch problemlos(er) z.b von MySQL auf Postgre, Oracle oder auf sonstwas wechseln.
--
class God : public ChuckNorris { };

Dieser Post wurde am 22.12.2007 um 19:25 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: