[PHP & MySQL] Loginbereich - Eigene Pferde anzeigen klappt nicht

Skadi

Wenn man den Error googlet, erhält man meist
die Antwort, das eine Elseanweisung dort auftritt, wo sie nicht
stehen darf. In dem Falle im unteren Teil ;D

Hast du schonmal versucht den unteren Teil einfach weg zu lassen? ;D

Mfg; Skadi
sina91
Eine Klammer zuviel, wenn ichs richtig sehe Augenzwinkern
Probier mal das.. Augenzwinkern

Zitat:
Original von **summer**
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:
<?php
session_start();

extract($_POST);
if(isset($_SESSION["name"])) 
{
    $user $_SESSION["name"];

?>

<html>
<head>
<title>Reitverein Avenire</title>
<link rel="stylesheet" type="text/css" href="http://avenire.bplaced.net/style.css">
</head>
<div align="center">
<p align="justify"></p>
<h1>Deine Pferde</h1>
<center>
<?php
include("db.php");
$Ergebnis mysql_query("SELECT * FROM pferde WHERE Status = 'Privatpferd' AND Besitzer = '$user' ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
echo 'Du hast keine Pferde!';
}
else {
while($row mysql_fetch_array($Ergebnis)) {
echo '
<table cellpadding="4" cellspacing="1" width="350" border="0" class="tableinborder">
<tr>
<td colspan="2" class="tablecat">' $row[Name] . '</td>
<tr>
<td width="125" class="tableb">' $row[Vorschau] . '<br> <a href="' $row[Foto_Link] . '" target="_blank">' $row[Fotograf] . '</a></td>
<td width="185" class="tablea"><div align="justify">
<b>Besitzer:</b> ' $row[Besitzer] . '<br>
<b>Geschlecht:</b> ' $row[Geschlecht] . '<br>
<b>Alter:</b> ' $row[Alter] . '<br>
<b>Rasse:</b> ' $row[Rasse] . '<br><br>
<b>Schwerpunkt:</b> ' $row[Schwerpunkt] . '<br><br>
<a href="steckbrief.php?id=' $row[ID] . '">» ' $row[Name] . ' besuchen</a></div></td></tr></table><br>';
}
}
?>
</center>
</div>
</body>
</html>

<?php
}
else{
echo 'Fehler!';
}
?>


-------->

Parse error: syntax error, unexpected T_ELSE on line 51
Summer
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:
<?php
session_start();
$user $_SESSION["name"];
extract($_POST);
if(isset($_SESSION["name"])) 
{
    $user $_SESSION["name"];
{
?>

<html>
<head>
<title>Reitverein Avenire</title>
<link rel="stylesheet" type="text/css" href="http://avenire.bplaced.net/style.css">
</head>
<div align="center">
<p align="justify"></p>
<h1>Deine Pferde</h1>
<center>
<?php
include("db.php");
$Ergebnis mysql_query("SELECT * FROM pferde WHERE Status = 'Privatpferd' AND Besitzer = '$user' ORDER BY Name");
if (@mysql_num_rows($Ergebnis) == 0) {
echo 'Du hast keine Pferde!';
}
else {
while($row mysql_fetch_array($Ergebnis)) {
echo '
<table cellpadding="4" cellspacing="1" width="350" border="0" class="tableinborder">
<tr>
<td colspan="2" class="tablecat">' $row[Name] . '</td>
<tr>
<td width="125" class="tableb">' $row[Vorschau] . '<br> <a href="' $row[Foto_Link] . '" target="_blank">' $row[Fotograf] . '</a></td>
<td width="185" class="tablea"><div align="justify">
<b>Besitzer:</b> ' $row[Besitzer] . '<br>
<b>Geschlecht:</b> ' $row[Geschlecht] . '<br>
<b>Alter:</b> ' $row[Alter] . '<br>
<b>Rasse:</b> ' $row[Rasse] . '<br><br>
<b>Schwerpunkt:</b> ' $row[Schwerpunkt] . '<br><br>
<a href="steckbrief.php?id=' $row[ID] . '">» ' $row[Name] . ' besuchen</a></div></td></tr></table><br>';
}
}
?>
</center>
</div>
</body>
</html>


Parse error: syntax error, unexpected $end on line 48

Ebenso wenn ich noch das hier anhänge:

php:
1:
2:
3:
<?php
}
?>
sina91
Würde ich, wie zwei Beiträge höher, auch sagen Augenzwinkern
Auch das obere $user dürfte überflüssig sein Augenzwinkern
Summer
Welches obere User? smile
Thorim
so hätt ich das gemacht, dann bekommst auch ne Meldung wenn nicht eingelogged bist

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:
<?php

session_start();
extract($_POST);

if (!isset($_SESSION['name'])) 
{
    echo 'Nicht eingelogged!';
    exit;
}

$user $_SESSION['name'];

?>
<html>
<head>
<title>Reitverein Avenire</title>
<link rel="stylesheet" type="text/css" href="http://avenire.bplaced.net/style.css">
</head>
<div align="center">
<p align="justify"></p>
<h1>Deine Pferde</h1>
<center>
<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM pferde WHERE Status = 'Privatpferd' AND Besitzer = '$user' ORDER BY Name");

if (@mysql_num_rows($Ergebnis) == 0)
{
    echo 'Du hast keine Pferde!';
}
else
{
    while($row mysql_fetch_array($Ergebnis))
    {
        echo '
<table cellpadding="4" cellspacing="1" width="350" border="0" class="tableinborder">
<tr>
<td colspan="2" class="tablecat">' $row['Name'] . '</td>
<tr>
<td width="125" class="tableb">' $row['Vorschau'] . '<br> <a href="' $row['Foto_Link'] . '" target="_blank">' $row['Fotograf'] . '</a></td>
<td width="185" class="tablea"><div align="justify">
<b>Besitzer:</b> ' $row['Besitzer'] . '<br>
<b>Geschlecht:</b> ' $row['Geschlecht'] . '<br>
<b>Alter:</b> ' $row['Alter'] . '<br>
<b>Rasse:</b> ' $row['Rasse'] . '<br><br>
<b>Schwerpunkt:</b> ' $row['Schwerpunkt'] . '<br><br>
<a href="steckbrief.php?id=' $row['ID'] . '">» ' $row['Name'] . ' besuchen</a></div></td></tr></table><br>';
    }
}

?>
</center>
</div>
</body>
</html>
Summer
Danke an alle smile

Das Problem scheint am Login zu liegen.... verwirrt Denn nun sagt er mir "'Nicht eingelogged"...

Login.php
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:
<?php 
session_start(); 
?> 
<link rel="stylesheet" href="http://avenire.bplaced.de/style.css" type="text/css">
<?php 
include ('db.php');

$name $_POST["name"]; 
$passwort md5($_POST["passwort"]);

$abfrage "SELECT name, passwort FROM mitglieder WHERE name LIKE '$name' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

$aendern "UPDATE mitglieder SET refresh = '$timestamp' WHERE name LIKE '$name'";
$update mysql_query($aendern);
if (mysql_errno()) die ("MySQL-Error: " mysql_error());

if($row->passwort == $passwort) 
    { 
    $_SESSION["name"] = $name; 

    echo "<h1>Herzlich Willkommen, <b>$name</b></h1>
Dein Login war erfolgreich.<br><br>
<a href="http://avenire.bplaced.de/login/Loginbereich.php" target="_blank">Hier geht es lang</a> "; 
    } 
else 
    { 
    echo "<b>Das hat nicht funktioniert!</b><br><br>Leider ist dein Passwort falsch, oder du bist nicht regestiert.<br><br><br>
<a href="http://avenire.bplaced.net/login/Login/login.html" target="_self">zurück</a>"; 
    ?> 


Login.html
code:
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:
<html>

<head>
<title>Reitverein Avenire</title>
<link rel="stylesheet" href="http://avenire.bplaced.de/style.css" type="text/css">
</head>

<body>

<h1>Login</h1>
Hier kannst du dich einloggen.<br><br>
<center>
<form action="login.php" method="post">
<table
 cellpadding="1" cellspacing="1" width="300" class="normal"><tr>
<td class=hell>Name:</td>
<td class=dunkel>
<input type="text" size="24" maxlength="50"
name="name"></td></tr>
<tr>
<td class=hell>Passwort:</td>
<td class=dunkel>
<input type="passwort" size="24" maxlength="50"
name="passwort"></td></tr></table>
<br><br>
<input type="submit" value="Login">
</center>
</form>

</body>

</html>
Thorim
hm, aber bei der login.php kommt das der Login erfolgreich war?
weil das $_SESSION["name"] = $name; ist eig in ordnung
Summer
Ja, Login erfolgreich smile
Thorim
naja, das Problem ist ja nicht, das ein falscher Username in der Session steht, sonder gar keiner..

entfern mal das "extract($_POST);" das brauchst bei dem Skript sowiso nicht (und ist verdammt unsicher ^^)
Summer
Beides gemacht, tut allerdings immer noch nicht :/
Thorim
pack mal pls an die Stelle wo das extract war

print_r($_SESSION);

dann sieht man mal genau, was da bei der Session gespeichert ist, kopier dann die Ausgabe einfach mal hier rein..
Summer
Array ( ) Nicht eingelogged!

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:
<?php

session_start();
print_r($_SESSION);

if (!isset($_SESSION['name'])) 
{
    echo 'Nicht eingelogged!';
    exit;
}

$user $_SESSION['name'];

?>
<html>
<head>
<title>Reitverein Avenire</title>
<link rel="stylesheet" type="text/css" href="http://avenire.bplaced.net/style.css">
</head>
<div align="center">
<p align="justify"></p>
<h1>Deine Pferde</h1>
<center>
<?php

include("db.php");

$Ergebnis mysql_query("SELECT * FROM pferde WHERE Status = 'Privatpferd' AND Besitzer = '$user' ORDER BY Name");

if (@mysql_num_rows($Ergebnis) == 0)
{
    echo 'Du hast keine Pferde!';
}
else
{
    while($row mysql_fetch_array($Ergebnis))
    {
        echo '
<table cellpadding="4" cellspacing="1" width="350" border="0" class="tableinborder">
<tr>
<td colspan="2" class="tablecat">' $row['Name'] . '</td>
<tr>
<td width="125" class="tableb">' $row['Vorschau'] . '<br> <a href="' $row['Foto_Link'] . '" target="_blank">' $row['Fotograf'] . '</a></td>
<td width="185" class="tablea"><div align="justify">
<b>Besitzer:</b> ' $row['Besitzer'] . '<br>
<b>Geschlecht:</b> ' $row['Geschlecht'] . '<br>
<b>Alter:</b> ' $row['Alter'] . '<br>
<b>Rasse:</b> ' $row['Rasse'] . '<br><br>
<b>Schwerpunkt:</b> ' $row['Schwerpunkt'] . '<br><br>
<a href="steckbrief.php?id=' $row['ID'] . '">» ' $row['Name'] . ' besuchen</a></div></td></tr></table><br>';
    }
}

?>
</center>
</div>
</body>
</html>
Thorim
tja, dann wird die Session wirklich nicht gespeichert.. da sollte sowas stehen: Array ( 'name'=>'xyz...' )

seltsam, session_start() haste ja bei beiden php-files drin...

kann mir das nicht wirklich erklären verwirrt du bleibst ja schon auf der gleichen Domain oder? das geht ja nur nen Verzeichnis nach oben...


edit: hab mir grad mal den zur Session zugehörigen Cookie (da wird ja die Session-ID drin gespeichert) angeschaut, das sieht soweit aber gut aus


edit2: pack mal in der login.php noch vor dem session_start() ein
error_reporting(E_ALL | E_NOTICE);
rein, dann sieht man obs da vielleicht nen Fehler gibt, wo $_SESSION['name'] gesetzt wird
Summer
Nach der Weiterleitung steht vor der Begrüßung nun:

Notice: Undefined variable: timestamp in /users/avenire/www/login/Login/login.php on line 16
Thorim
hat zwar mit dem login-prob nichts zu tun, aber

php:
1:
$aendern "UPDATE mitglieder SET refresh = UNIX_TIMESTAMP() WHERE name LIKE '$name'";
Summer
Danke für alles bisher, tut aber immer noch nicht xD

Sagt immer noch: Array ( ) Nicht eingelogged!

Hier die Login.php jetzt:

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:
<?php 
error_reporting(E_ALL E_NOTICE);
session_start(); 
?> 
<link rel="stylesheet" href="http://avenire.bplaced.de/style.css" type="text/css">
<?php 
include ('db.php');

$name $_POST["name"]; 
$passwort md5($_POST["passwort"]);

$abfrage "SELECT name, passwort FROM mitglieder WHERE name = '$name' LIMIT 1"$ergebnis mysql_query($abfrage); 
$row mysql_fetch_object($ergebnis); 

$timestamp time(); 

$aendern "UPDATE mitglieder SET refresh = UNIX_TIMESTAMP() WHERE name LIKE '$name'";
$update mysql_query($aendern);
if (mysql_errno()) die ("MySQL-Error: " mysql_error());

if($row->passwort == $passwort) 
    { 
    $_SESSION["name"] = $name; 

    echo "<h1>Herzlich Willkommen, <b>$name</b></h1>
Dein Login war erfolgreich.<br><br>
<a href="http://avenire.bplaced.de/login/pferde.php" target="_self">Hier geht es lang</a> "; 
    } 
else 
    { 
    echo "<b>Das hat nicht funktioniert!</b><br><br>Leider ist dein Passwort falsch, oder du bist nicht regestiert.<br><br><br>
<a href="http://avenire.bplaced.net/login/Login/login.html" target="_self">zurück</a>"; 
    ?> 
Summer
... unglücklich