ah ok. ich sehe schon, wie das gelöst ist. "komisch" ^^
also ich bin jetzt soweit (nur die codes angeschaut, nicht im browser - kA wie das pw für den test-user ist ^^):
- login.html
-> hier die daten eingeben
-> beim absenden des formulars kommt man nun zur login.php
erste anmerkung...
SELECT name, passwort FROM user WHERE name
LIKE '$username' LIMIT 1; <- erm ^^ also entweder heißt der so, oder er heißt nicht so. gut, deine umsetzung von like entspricht dem, was es eigentlich sein soll ^^ ungewollt wohl

ich hol mal etwas weiter aus: mit like kann man strings vergleichen. also bspw steht in der db was von "bäcker" und "schnacken" und "cräcker" und "häcken" und "häckern" und er soll mir alles raussuchen, was ein "cker" am ende hat -> like '%cker'. das % ist hier ein wildcard oder wie man das nennt - nen platzhalter. sprich, anstelle von % kann noch sonstwas stehen. er findet nun also für unser bsp "bä
cker" und "crä
cker". bei "schnacken" und "häcken" endet es auf nen n statt nen r und bei "hä
ckern" ist zwar unser gesuchtes drin, aber es endet eben nicht damit. suchen wir nun nach pff "äck" irgendwo im string, dann sagen wir like '%äck%' und er findet für uns "b
äcker", "cr
äcker" und "h
äckern". da du bei deinem like keine wildcard(s) nutzt, sucht er also nach exakt dem usernamen - das like ist also völlig überflüssig. das ist aber auch richtig so. weil beim usernamen gibts kein "wünsch dir was" ^^ entweder die angabe stimmt oder eben nich. lustiges usernamen-bestandteile-raten is nich

ebenso kannst du das limit 1 weglassen. beim registrieren musst du dann eben sicherstellen, dass der username nich schon weg is.
btw! ach da isses. wieder nen andres file xD du machst mich fertig he. hab das registrieren schon vermisst. also wenn ich DAS hier sehe:
Code:
[COLOR=blue]<form action="login.php" method="post">
<h1>Projektzeiterfassung</h1>
<table><th>Login</th></table>
<p>Ihr Username:</p>
<input type="text" size="24" maxlength="50" name="username"><br>
<p>Ihr Passwort:</p>
<input type="password" size="24" maxlength="50" name="password"><br><br>
<input type="submit" value="Einloggen">
</form>[COLOR=red]<br>[COLOR=seagreen]<form action="eintragen.html">
<input type="submit" value="Registrieren">
</form>
hab ich eigentlich schon keine fragen mehr

zuerst zu dem rot markierten <br>: form ist ein block-element (siehe
HTML 4 Block-level Elements als bsp). das heißt nix anderes, als dass nach ihnen automatisch ein zeilenumbruch erfolgt. du brauchst also nicht selber dafür sorgen (es sei denn, einer langt dir nicht ^^). inline wäre der gegenpart. dann zu der geschichte mit den 2 forms. du hast das bestimmt gemacht, um eine fallunterscheidung vorzunehmen? also quasi die frage "logged er sich grad ein, oder regged er sich?" zu beantworten. das ist wohl der falsche weg xD du fragst zu früh

was passiert hier? dein formular mit all den eingabefeldern (hier blau dargestellt) ist oben. dazu gehört der login button. bzw um es ganeuer zu sagen: EIN button mit dem value (der aufschrift, dem label, dem ding, das für das formular völlig irrelevant ist ^^) einloggen. drückst du diesen button, so wird dein blaues formular abgeschickt und an login.php geschickt. drckst du nun aber auf den anderen button mit dem value registrieren... dann wird die grüne form abgesendet - und da steht was drin? nix >< du wirst es also sicher schwer haben, dich zu registrieren oder?
jetzt zu der sache mit den buttons: wie unterscheidest du korrekt, welcher button gedrückt wurde? als erstes: bau mal deinen reg-button mit ins blaue rein und lösch die grüne form. BITTE ^^ jetzt wird in login-php immernoch geschnallt, dass da daten ankommen, weil EIN button gedrückt wurde. WELCHER lässt sich aber nicht rausfinden. dazu musst du folgendes ändern:
Code:
<input type="submit" [B]name="btnLog"[/B] value="Login">
<input type="submit" [B]name="btnReg"[/B] value="Registrieren">
gib den dingern NAMEN! ^^ diese namen kannst du dann abfragen - das hab ich aber auch schon erwähnt! wurde
btnLog gedrückt, ist $_POST['
btnLog'] gesetzt -> if(isset($_POST['btnLog'])) echo "der sack will sich einloggen!"; meintest du nich sogar, das haste verstanden? ^^ das sind absolute basics für die abarbeitung von formularen. das selbe funzt natürlich äquivalent fürs reggen. in login.php bearbeitest du BEIDES! und wenn du das stück für stück und konsequent weiter zusammen streichst, wirst du irgendwann von deinen "20" files ganz automatisch wegkommen ^^
algorithmus-vorschlag aus der hüfte für login.php:
Code:
- eine variable login anlegen und auf false setzen
- username und pw aus formular in variable speichern
- will er sich reggen?
- prüfen: username schon vergeben?
- nein
- eintrag erstellen
- variable login auf true setzen
- will er sich einloggen?
- username und pw prüfen
- wenn alles stimmt, variable login auf true setzen
jetzt noch fix die einordnung in meinen code:
- die login.variable wird in config.php angelegt und auf false gesetzt
- der algorythmus hier oben wird in formular.php abgearbeitet (also da, wo alle buttons und formulardaten ausgewertet werden)
- deine login.html wäre bei mir die login.php hier verzweigt sich mein code -> if($login)...
ist man nicht eingeloggt, bekommt man also das login-formular zu sehen, ansonsten eben die zeit.php, welche uns die tabelle usw baut.
btw ist dein login kein wirklicher login

du hast quasi nur eine kette von seiten gebaut. dein login ist im endeffekt nur ein "unterbrecher" in dieser kette. es hindert aber keinen daran, einfach direkt die projektzeiterfassung.php aufzurufen

der SINN des einloggens ist es, dass ich das einmal tute, die seite erneut laden kann und immernoch eingeloggt bin. in deinem aufbau gesprochen: rufe ich bei dir erneut die login.html auf, müsste ich bei einem echten login dieses formular garnicht mehr sehen können (ich bin ja schon eingeloggt). andererseits dürfte mir ein zutritt zur projektzeiterfassung.php keinen erfolg verschaffen - sprich, ich müsste hier ne leere seite oder nen fehler oder sowas sehen. aber wie gesagt: klammer das login gelumbe erstmal aus, das ist nämlich ne andere hausnummer >< (und bei dir faktisch nicht vorhanden). aber gut, ich hab das auch scho lang ned mehr gemacht, muss mich da selber erstmal wieder reindenken.
gut, mal weiter schauen. nu hab ich die ersten 2 files gesehn und noch nix zum eigentlichen prob sagen können, aber schon 10 andre enddeckt ^^
hm, ok, wenn das mit dem $_SESSION['name'] funzt, dann scheint das login doch zu klappen. dü müsstest dann aber eben immer dafür sorgen, dass das auch ne auswirkung hat. also irgendwo am anfang (bei mir wieder in der config.php) müsstest du sowas schreiben:
$login = false;
if(isset($_SESSION['name'])) $login = true;
und weiterhin müsstest du dann irgendwie sowas schreiben, bevor dein eigentlicher code/irgendwelche ausgaben erfolgen:
if(!$login) echo "nicht eingeloggt, -> <link einloggen>";
else { /* dein bisheriger code */ }
wie du siehst, kommst du automatisch wieder genau zu meiner strukturierung zurück. jut, nu aber prjektzeiterfassung.php anschauen. arrrrr.... bitte nicht xD
PHP:
$user = $_SESSION['name'];
$erg1 = mysql_query("SELECT id FROM user WHERE name='".$user."'");
$row1 = mysql_fetch_object($erg1);
$userid = $row1->id;
$erg2 = mysql_query("SELECT rechte FROM user WHERE name='".$user."'");
$row2 = mysql_fetch_object($erg2);
$rechte = $row2->rechte;
wieso fragst du 2mal die selbe tabelle ab mit nur einer spalte? wieso nicht alle spalten mit einer abfrage? -> SELECT
* FROM user WHERE name='".$user."'"
anderes wieso: wieso nich gleich die id gespeichert in der session anstelle des namens? oder einfach beides? sinnlose db-quälerei

joa, dann folgt mein initialer "kalendercode", dann die ausgabe. die abfrage der buttons fehlt. wäre dieser code hier:
PHP:
if(isset($_POST['wa'])) $wochenanfang = $_POST['wa'];
if(isset($_POST['we'])) $wochenende = $_POST['we'];
if(isset($_POST['prevWeek'])) {
$wochenanfang -= 60 * 60 * 24 * 7;
$wochenende -= 60 * 60 * 24 * 7;
}
if(isset($_POST['nextWeek'])) {
$wochenanfang += 60 * 60 * 24 * 7;
$wochenende += 60 * 60 * 24 * 7;
}
$kw = date('W', $wochenanfang);
$jahr = date('Y', $wochenanfang);
$monat = date('n', $wochenanfang);
$tag = date('j', $wochenanfang);
müsste in zeile 22 rein. schon sollte die switcherei funtzen ^^ joar, kalenderzeile, tabellenkopf, nu mal schauen... jops, tätigkeiten und produkte aus db in nen array bauen, daraus dann die selects basteln. soweit sogut. add und das zeugs ist sicher fürs javascript lose hinzufügen von zeilen ne? ahja, da isses ja. oha. da beim div wirds wieder interesant. hab erstmal das ende der form gesucht... die ist oben bei der "kalender-zeile" am ende der inneren tabelle - copy-paste fehler? ^^ du hast dann noch weiter unten ein form ende. ah ok, eine erneute suche ergab interessantes

du hast eine form, die zu formular.php führt. INNERHALB dieser form, hast du eine weitere, die wieder projektzeiterfassung aufruft. und unten bei den divs haste uch nochmal 2 oder 3. hier haste wieder genau das selbe problem, wie bei login. php. das funzt so ned. muss jetz erstma den rechner wechseln. hoffentlich bekomm ich den code da vorn ordentlich gelesen ^^
also bisher kannste daraus gut nen buch schreiben - wird nen krimi ^^