Paty
jetzt hab ich mir wirklich jedes einzelne zeichen auf denen beiden seiten angesehen,ich verstehe es aber eigentlich immer noch nicht,ich verstehe nicht was an meinem code falsch ist..kann mir bitte jetzt jemand helfen?
Paty
Ok,also ich hab jetzt mal auf jeder Seite die Schriftart verändert.Dann kommt eine Fehlermeldung.So..ja..jetzt hab ich mal im Login alles schön angepasst.
Login[Einloggen NICHT möglich!]
fehler Code:
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /users/kunterbunt/www/login.php:4) in /users/kunterbunt/www/login.php on line 4
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /users/kunterbunt/www/login.php:4) in /users/kunterbunt/www/login.php on line 4
Code:
php: |
1:
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <?php session_start(); // Startet die Session include("header.php"); include("db.php"); include("functions.inc.php"); if(isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") && anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) { // Wenn Mitglied mit dem Namen und Passwort existiert! und wenn keine falschen logins in den letzten 30 Min. Wieso? um die Seite sicherer zu machen sonst können bruteforcer leicht hacken! $eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')"); // Eintrag in Login! $abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1"; $ergebnis = mysql_query($abfrage); while($row = mysql_fetch_object($ergebnis)) { $_SESSION["login"] = $row->id; // Loggt einen ein! } echo "<meta http-equiv="refresh" content="0; URL=memberarea.php">"; // Weiterleitung zur Memberarea } else { // Wenn falsch eingeloggt $eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')"); // Eintrag in Login! ?> <title>login</title> </head> <body> Login schlug fehl.<?php } } else { // Formular -> ?> <form action="login.php" method="post"> <table width="90%"> <tbody> <tr> <td style="font-family: Century Gothic;" width="50%"><small> <b>Name:</b> </small></td> <td width="50%"> <input name="name" type="text"> </td> </tr> <tr> <td style="font-family: Century Gothic;" width="50%"><small> <b>Passwort:</b> </small></td> <td width="50%"> <input name="passwort" type="password"> </td> </tr> <tr> <td colspan="2" width="100%"> <input value="Login" name="submit" type="submit"> </td> </tr> </tbody> </table> </form> <?php } include("footer.php"); ?> </body> </html> |
|
Paty
Neue Fehlermeldung bei Login:
Parse error: syntax error, unexpected T_STRING in /users/kunterbunt/www/login.php on line 2
Derzeitiger code:
<?php session_start()
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
include("header.php");
include("db.php");
include("functions.inc.php");
if(isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt
if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") && anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) { // Wenn Mitglied mit dem Namen und Passwort existiert! und wenn keine falschen logins in den letzten 30 Min. Wieso? um die Seite sicherer zu machen sonst können bruteforcer leicht hacken!
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')"); // Eintrag in Login!
$abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$_SESSION["login"] = $row->id; // Loggt einen ein!
}
echo "<meta http-equiv=\"refresh\" content=\"0; URL=memberarea.php\">"; // Weiterleitung zur Memberarea
} else { // Wenn falsch eingeloggt
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')"); // Eintrag in Login!
?>
<title>login</title>
</head>
<body>
Login schlug fehl.
<?php }
} else { // Formular ->
?>
<form action="login.php" method="post">
<table width="90%">
<tbody>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Name:</b>
</small></td>
<td width="50%">
<input name="name" type="text">
</td>
</tr>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Passwort:</b>
</small></td>
<td width="50%">
<input name="passwort" type="password">
</td>
</tr>
<tr>
<td colspan="2" width="100%">
<input value="Login" name="submit" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<?php }
include("footer.php");
?>
</body>
</html>
Stelo
Bitte achte darauf den Code auch in die PHP-Tags zu setzen.
Du machst hier übrigens 5 mal den selben Fehler, kopier doch einfach mal, was die ein paar Beiträge vorher gezeigt wurde.
Du musst <?php natürlich auch wieder schließen, wenn du es einmal geöffnet hast, vor allem wenn danach HTML-Code folgt.
Paty
Neues Problem: Parse error: syntax error, unexpected '}' in /users/kunterbunt/www/login.php on line 28
COde:
<?php session_start()
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
include("header.php");
include("db.php");
include("functions.inc.php");
if(isset($_REQUEST["submit"])) { // Wenn Formular abgeschickt
if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") && anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) { // Wenn Mitglied mit dem Namen und Passwort existiert! und wenn keine falschen logins in den letzten 30 Min. Wieso? um die Seite sicherer zu machen sonst können bruteforcer leicht hacken!
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')"); // Eintrag in Login!
$abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$_SESSION["login"] = $row->id; // Loggt einen ein!
}
echo "<meta http-equiv=\"refresh\" content=\"0; URL=memberarea.php\">"; // Weiterleitung zur Memberarea
} else { // Wenn falsch eingeloggt
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')"); // Eintrag in Login!
?>
<title>login</title>
</head>
<body>
Login schlug fehl.
<?php }
} else { // Formular ->
?>
<form action="login.php" method="post">
<table width="90%">
<tbody>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Name:</b>
</small></td>
<td width="50%">
<input name="name" type="text">
</td>
</tr>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Passwort:</b>
</small></td>
<td width="50%">
<input name="passwort" type="password">
</td>
</tr>
<tr>
<td colspan="2" width="100%">
<input value="Login" name="submit" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<?php }
include("footer.php");
?>
</body>
</html>
brain_surgery
Ich nehme mal ganz kühn an, dass es nicht geht dass du einfach den php-Tag schließt solange eine Klammer noch offen ist...versuch es mal so:
} else { // Wenn falsch eingeloggt
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR";)."', '".time()."', 'nein')";);
// Eintrag in Login!
echo" Login schlug fehl.";
} else { // Formular ->
echo:
<form action=\"login.php\" method=\"post\">
<table width=\"90%\">
usw usw"; } ?>
Das ganze Formular müsste dann quasi in einem echo stehen. Vor " musst du dann jedesmal ein \ einfügen!
EDIT: ein bissl unverschämte Eigenwerbung: vll solltest du dir mal mein Login-Tut anschauen, das könnte evtl helfen:
link
brain_surgery
Funktionieren tun meine Codes jedenfalls :P
Ich hab den hier auch nur kurz überflogen, ist ja nicht so übersichtlich...
Paty
Schon wieder ne fehlermeldung=/
brain_surgery
Kannst du vielleicht mal die Datei als Angang hochladen?
Paty
ok..ich hab mal die memberarea dazu hochgeladen,weil bei der gehts ja auch nicht.. =/
brain_surgery
Danke

So gehts gleich viel besser.
Auf den ersten Blick sind da ein Haufen Fehler drin...Ich versuch mal, es auszubessern.
Nochmal @BlackTear: Ich geh auch gern auf Nummer sicher.
EDIT: Hab jetzt einmal die Memberarea angehängt. So müsste sie funktionieren. An login.php kau ich noch rum :/
Paty
ok danke
brain_surgery
So, jetzt müsste der Login auch klappen...Auch wenn das ganze ein bisschen verwirrend ist...Es wär vielleicht sinnvoller, das Formular auf eine eigene Seite zu packen, so wäre das ganze etwas übersichtlicher, aber das bleibt natürlich dir überlassen. Probiers halt einmal aus ob die Seite jetzt funktioniert ._.
Für den Memberbereich siehe Edit voriger Post
Paty
@BlackTear: Jetzt kommt das: Parse error: syntax error, unexpected T_ELSE in /users/kunterbunt/www/login.php on line 32
Oli
Noch nicht ganz

. Hier die korrigierte Version. (Ich hoffe es stimmt jetzt, hab nur überflogen.)
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
|
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php
include("header.php");
include("db.php");
include("functions.inc.php");
if(isset($_REQUEST["submit"])) {
if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") &&
anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) {
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES
('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')");
$abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$_SESSION["login"] = $row->id; // Loggt einen ein!
}
echo "<meta http-equiv="refresh" content="0; URL=memberarea.php">"; // Weiterleitung zur Memberarea
} else {
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')");
echo "Login schlug fehl";
} //diese klammer hatte gefehlt
?>
<title>login</title>
</head>
<body>
<form action="login.php" method="post">
<table width="90%">
<tbody>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Name:</b>
</small></td>
<td width="50%">
<input name="name" type="text">
</td>
</tr>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Passwort:</b>
</small></td>
<td width="50%">
<input name="passwort" type="password">
</td>
</tr>
<tr>
<td colspan="2" width="100%">
<input value="Login" name="submit" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<?php
}
include("footer.php");
?>
</body>
</html>
|
|
Edit: Moment mal, grundlegendes Problem. Das Formular wird nur angezeigt, wenn man es bereits abgesendet hätte... Ich korrigier das nochmal, wenn mir niemand zuvor kommt
.
(Weitere Edits: Tippfehler)
Paty
Jetzt kommt gottseidank keine Fehlermeldung,jetzt kommt NICHTS,leere Seite._.
Oli
Zitat: |
Original von Paty_Pu
Jetzt kommt gottseidank keine Fehlermeldung,jetzt kommt NICHTS,leere Seite._. |
Siehe mein Edit. Mir ist das Problem schon aufgefallen
Zitat: |
Moment mal, grundlegendes Problem. Das Formular wird nur angezeigt, wenn man es bereits abgesendet hätte... Ich korrigier das nochmal, wenn mir niemand zuvor kommt
. |
Oli
So sollte es eigentlich funktionieren, auch wenn der entstehende HTML-Code nicht sonderlich korrekt sein dürfte... Evtl. häng ich nochmal ne Version dran, je nach Zeit.
php: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
|
<?php
session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<?php
include("header.php");
include("db.php");
include("functions.inc.php");
if(isset($_REQUEST["submit"])) {
if(exist("mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' AND passwort = '".md5($_REQUEST["passwort"])."'") &&
anzahl("login WHERE ip = '".getenv("REMOTE_ADDR")."' AND erfolgreich = 'nein' AND timestamp > '".(time()-60*30)."'") < 4) {
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES
('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'ja')");
$abfrage = "SELECT id FROM mitglieder WHERE name = '".strip_tags($_REQUEST["name"])."' LIMIT 0,1";
$ergebnis = mysql_query($abfrage);
while($row = mysql_fetch_object($ergebnis))
{
$_SESSION["login"] = $row->id; // Loggt einen ein!
}
echo "<meta http-equiv="refresh" content="0; URL=memberarea.php">"; // Weiterleitung zur Memberarea
} else {
$eintragen = mysql_query("INSERT INTO login (name, ip, timestamp, erfolgreich) VALUES ('".strip_tags($_REQUEST["name"])."', '".getenv("REMOTE_ADDR")."', '".time()."', 'nein')");
echo "Login schlug fehl";
}
} else {
?>
<title>login</title>
</head>
<body>
<form action="login.php" method="post">
<table width="90%">
<tbody>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Name:</b>
</small></td>
<td width="50%">
<input name="name" type="text">
</td>
</tr>
<tr>
<td style="font-family: Century Gothic;" width="50%"><small>
<b>Passwort:</b>
</small></td>
<td width="50%">
<input name="passwort" type="password">
</td>
</tr>
<tr>
<td colspan="2" width="100%">
<input value="Login" name="submit" type="submit">
</td>
</tr>
</tbody>
</table>
</form>
<?php
}
include("footer.php");
?>
</body>
</html> |
|
Paty
Es funktioniert!!!!
DAAAANKEEEEE