![]() |
|
|
Themen-Optionen |
|
|
Nach oben #21 |
|
Erfahrener Benutzer
Registriert seit: 17.08.2005
Beiträge: 423
|
Ich würde jetzt das ganze weiter trennen. In der Index.php alles was das Template angeht (laden, Felder ersetzen, ausgeben) und eine Login.php, die sich ums login kümmert,mit einer Funktion, die dann entrweder ein "Herzlich Willkommen" oder "Name: / Passwort:" zurückgibt
Und via $tpl->assign("login", getLoginField()); den zurückgegebenen werd in das template einsetzt. ich fang mal an, dies bisschen als code umzu setzen EDIT: Mhh... bei meiner idee müsste man viel a, code ändern... Ich hab da n kleines Projekt, was auch mit dem gleichen Template System funktoniert, aber mit einem einfachen Login scrip (selbst geschrieben), was eben so aufgebaut ist, dass man es gut für sas Tpl-Sys benutzen kann.. wenn du willst, kann ichs ja mal hier rein schreiben (oder als "Sessionbasiertes Loginsystem II" bei Tutorials rein stellen.), aber villeicht haben die anderen eine bessere idee Geändert von Xean (22.03.2007 um 23:20 Uhr). |
|
|
|
|
|
Nach oben #22 |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Im moment kann ich dir sagen, dass der letzte else-Zweig mit dem header() weg muss, da sonst beim einfachen aufruf der index.php sofort ne endlosweiterleitung beginnt, da die if-Abfrage nach $_POST-Variablen beim einfachen Seitenaufruf schief geht
Einfacher geht das hier auch: PHP-Code:
PHP-Code:
Hier meine index.php inklusive Logout PHP-Code:
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="de" xml:lang="de">
<head>
<title>Mein Templatesystem:: {$title}</title>
<meta http-equiv="Content-Type" content="text/xhtml; charset=ISO-8859-1" />
</head>
<body>
<h1>{L_START}</h1>
Hallo {$name}. Der Aktuelle Timestamp lautet: {$time}
{* Ein Template einbinden *}
{include file="othertemplate.tpl"}<br />
{$content}<br />
Mein Loginstatus: {$loginstatus}
<form action="/index.php" method="POST">
Name: <input type="text" name="username" /><br />
Password: <input type="password" name="passwort" /><br />
<input type="submit" name="submitbutton" value="los"/>
</form>
<a href="/index.php?logout=true">Logout</a>
</body>
</html>
Und so ein Anfänger biste auch nicht, immerhin kannste scheinbar das Manual schonmal lesen und selbstständig Funktionen finden und nutzen. Nur bei der Logik stolperste noch, aber das wird schon, wart ab //edit: vergiss meine beiden PNs, dachte ich brauch noch infos von dir und das es 2 wurden lag an meiner blöden leitung...
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
Nach oben #23 | |
|
leftover when bar closes
Registriert seit: 29.06.2006
Ort: Bern
Beiträge: 123
|
Zitat:
Jeder lernt anders; gut, dass es für bl-25 so klappt. Grüsse
__________________
Unkraut ist die Opposition der Natur gegen die Regierung der Gärtner. ticketbörse |
|
|
|
|
|
|
Nach oben #24 |
|
Benutzer
Registriert seit: 18.03.2007
Beiträge: 38
|
@WarrenFaith: Danke klappt jetzt auch (fast)
Code:
Warning: Cannot modify header information - headers already sent by (output started at ..../admin/config.inc.php:22) in ...../index.php on line 57 |
|
|
|
|
|
Nach oben #25 | |
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Zitat:
Ansonsten ist die index.php sauber (achte beim copy&paste auf leerzeichen am Anfang und am Ende. Hatte eben beim rauskopieren des Quellcodes wieder leerzeichen vor dem <?php in der ersten Zeile)
__________________
I did it my way - Senseless-Blog |
|
|
|
|
|
|
Nach oben #27 |
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 774
|
Wie Sessions korrekt zerstört werden, steht im Handbuch. Sowohl beim Starten der Session, als auch bei einem Statuswechsel (also in erster Linie beim Login) sollte unbedingt die SID gewechselt werden (mal zum Thema Session-Fixation einlesen). Vor einem Location-Header Sessions explizit mit session_write_close() schließen. Ferner muss magic_qutes.gpc natürlich immer berücksichtigt werden (und sei es nur, dass auf diesen Punkt verwiesen wird oder geprüft wird, ob die Config wie erwartet eingesetellt ist). Externe Vars dürfen niemals ungefiltert in Datenbank-Queries eingesetzt werden. Hier also mysql_real_escape_string() verwenden!
Am einfachsten für den ganzen Krempel Klassen bauen (Request, Session, Datenbank, Benutzer, Config etc.) und so Zeug da reinpacken. Damit kombinierst du einfachste Bedienung mit minimaler Wartung und maximaler Sicherheit. Solche Konstrukte sind das Grab!: PHP-Code:
PHP-Code:
PHP-Code:
Ach ja: "nosite" ist irgendwie nicht nachvollziehbar, da sich ja doch alles auf der Site abspielt. Sehr lesenswert: http://praegnanz.de/essays/homepage_traeume Für die Arbeit absolut hilfreich, hier klar zu sein (den Kunden aber trotzdem zu verstehen, ohne ihm vorzuhalten, dass er die Begriffe irgendwie komisch verwendet *g) Basti |
|
|
|
|
|
Nach oben #28 | ||
|
Mensch
Registriert seit: 17.08.2005
Ort: Berlin
Beiträge: 1.710
|
Zitat:
Das was er jetzt baut, wird er in 3 Monaten mit mehr wissen eh neu bauen. Zitat:
Ich will die Fähigkeiten von bl-25 nicht zu klein einschätzen, aber man kann einen Anfänger auch mit überfülle an Infos verschrecken.
__________________
I did it my way - Senseless-Blog |
||
|
|
|
|
|
Nach oben #29 | ||||
|
Erfahrener Benutzer
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 774
|
Hi.
Ich wollte damit ja auch nicht sagen, dass du im Alltag solchen Code produzierst. Dennoch sollte man Sicherheitslöcher gleich von Anfang an vermeiden oder eben zumindest darauf hinweisen, wenn ein Code voll davon ist. Zitat:
Zitat:
Basti |
||||
|
|
|
|
|
Nach oben #30 | |
|
Benutzer
Registriert seit: 18.03.2007
Beiträge: 38
|
Zitat:
PHP-Code:
Ps: Ich weiß meine Datei-, Variablen- und und und bennenung ist schwachsinnig *gg* aber mir fällt meistens nichts besseres ein Zum Thema $_Request ... das hab ich immernoch nicht ganz verstanden warum request und nicht get und wo der unterschied ist |
|
|
|
|