Warum kostenlos registrieren?

Nur als registriertes Mitglied hast Du vollen Zugriff auf alle Funktionen unserer Website. So kannst Du eigene Fragen stellen und hast die volle Übersicht über neue interessante Themen im Forum.
Jetzt kostenlos registrieren.

Login


loginscript braucht daten

Fragen oder Probleme mit HTML, PHP oder CSS?

loginscript braucht daten

Beitragvon r4qH am 04.11.2006, 09:09

is vielleicht ein blödet titel, aber hier mein problem:

ich habe mir mal ein loginscript zusammenstellen lassen und es schon 00 mal verändert.. jetzt hab ich die website gelöscht aber das script vorher gesichert:

Code: Alles auswählen
<?php
$UserList = array(
      "raph" => "website",

);
if (isset($_POST["User"]))
{
  $User = $_POST["User"];
  $Pass = $_POST["Pass"];
  $UserPassOk = false;
  foreach ($UserList as $Name=>$Passwort)
  {
    if (($User == $Name) and ($Pass == $Passwort)) $UserPassOk = true;
  }
  if ($UserPassOk)
  {
   $_SESSION['login'] = 1;
   header('Location: login/'.$User.'/'.$User.'');
  }
  else
  {
?>


falsche zugangsdaten! <a href="javascript:history.back();">zurück</a>


<?php
  }
}
else
{
?>
<!-- '.$User.' -->
<table>
<form method=post>
<tr><td width="300px" align="right" class="pu"><b>Username:</b> <input name="User" class="user" type="text" onmouseover="this.className='userhover';" onmouseout="this.className='user';"></input></td></tr>
<tr><td width="5" height="4"><img src="style/images/space.gif" width="5" height="4"></td></tr>
<tr><td width="300px" align="right" class="pu"><b>Passwort:</b> <input type='password' class='pass' name='Pass' onmouseover="this.className='passhover';" onmouseout="this.className='pass';"></input></td></tr>
<tr><td width="5" height="4"><img src="style/images/space.gif" width="5" height="4"></td></tr>
<tr><td width="120px" align="right"><input type='submit' class='login'onmouseover="this.className='loginhover';" onmouseout="this.className='login';" value='Login'></input></form></td></tr>
</table>
<?php
}
?>


jetz funktionierts nicht mehr!" und ich glaub ich weiß auch was! irgendwie muss auf der seite^^noch über <html> was hin und auf die seite, auf die man sich einloggt..

stimmt das?

kann mir jemand helfen? was fehlt da genau für ein code?

mfg, raph

EDIT:
er sendet folgende fehlermeldung:
Code: Alles auswählen
logo    
Warning: Cannot modify header information - headers already sent by (output started at /www/www/virtual/jesusjumper.de/sub_4strichstrich/htdocs/index.php:4) in /www/www/virtual/jesusjumper.de/sub_4strichstrich/htdocs/index.php on line 33


zeile 33 ist folgende:
Code: Alles auswählen
header('Location: login/'.$User.'/'.$User.'');
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg


Beitragvon r4qH am 04.11.2006, 10:49

kann mir keiner helfen? Bild
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 04.11.2006, 14:22

Hey r4pH,

ganz ruhig, keine Panik !
Wir helfen die schon, aber
1. hast du grade mal 20Min gewartet, und
2. ist heute Sammstag, da schläft man längeer, geht langsamer und lebt bequemer :) (was'n doller Satz :lol: )

Nun den !
Du sagst, Zeile 33 wäre die mit der header()-Funktion !?
Ich Zähle da aber auf Zeile 18 !
Desshalb gehe ich jetzt mal davon aus, dass das von dir gepostete Script noch in ein HTML-Dokument integriert wird.
Dass wiederrum würde bedeuten, dass vor dem PHP-Container schon HTML-Code an den Browser gesendet wird (<DTD><html><head>.....), danach können die headerinformationen nicht mehr geänder werden was alleerdinbgs für die verwendung der header()-Funktion erforderlich ist !
Vor der header()-Funktion darf nicht ein einziges Zeichen an den Browser gesendet werden !
Du must deinen PHP-Container also nach gaaaanz oben verschieben, achte dabei auf die Ausgabe deines Scriptes da sich dieses jetzt nicht mehr im <body>-Bereich deines HTML-Dokumentes befindet.

Und ja, da muss noch was nach ganz oben !
Das Loginscript verwendet Session um so die Authentifizierung über Seiten hinweg zugewährleisten. Sessions kann man aber erst nach der aktivierung mit session_start(); verwenden. session_start() muss innerhalb deines PHP-Containers nach gaaanz oben gesetzt werden, diese Funktion setzt so wie die header()-Funktion das modifitieren der Headerinformationen vorraus um verwendet werden zu können.

Was mir noch aufgefallen ist, dass wenn man sich eingelogt hat, dann wird in der Session der wert "login" auf 1 gesetzt. Dieses wird aber nirgends überprüft oder kontroliert wen man das Loginscript ein zweitesmal aufruft.
z.B.:if ($User==$Name && $Pass==$Passwort OR $_SESSION['login']) $UserPassOk = true;

Hast du schon mal versucht die Zieladresse in deiner Browseradresszeil direkt einzugeben, also z.B.: http://url.de/raph/raph ?
Ich weiß ja jetzt nicht wie du das Scripte einsetzen willst, aber wenn es mehrere User gibt, die wissen dann ja was sie in die Adresszeile zuschreiben haben, was bei der verwendung des Usernamens recht einfach sein sollte wenn selbige als Forumnamen verwendet werden. Nur mal so als Beispiel und Hinweis.


MfG
Dragonl :)
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon r4qH am 05.11.2006, 20:52

danke erstmal.. aber jetzt kommt das:

http://4strichstrich.jesusjumper.de/

hier der code..

Code: Alles auswählen
<?php
session_start();
$UserList = array(
      "raph" => "1",

);
if (isset($_POST["User"]))
{
  $User = $_POST["User"];
  $Pass = $_POST["Pass"];
  $UserPassOk = false;
  foreach ($UserList as $Name=>$Passwort)
  {
    if (($User == $Name) and ($Pass == $Passwort)) $UserPassOk = true;
  }
  if ($UserPassOk)
  {
   $_SESSION['login'] = 1;
   header('Location: 030266069069/'.$User.'/'.$User.');
  }
  else
  {
?>

Falsche Zugangsdaten! <a href="javascript:history.back();">Zurück</a>

<?php
  }
}
else
{
?>
<html>
<head>
<title>4--</title>
<?php readfile('style/txt/meta.txt'); ?>
<?php readfile('style/txt/news.txt'); ?>
</head>
<body onload="newsticker();">
<table>
   <tr>
      <td colspan="3" width="100%">
<table width="100%">
<td width="50%">
<a href="index.php"><img src="style/images/logo.jpg" alt="logo" border="0"></a>
</td>
<td width="50%" align="right">



<!-- '.$User.' -->
<table>
<form method=post>
<tr><td width="300px" align="right" class="pu"><b>Username:</b> <input name="User" class="user" type="text" onmouseover="this.className='userhover';" onmouseout="this.className='user';"></input></td></tr>
<tr><td width="5" height="4"><img src="style/images/space.gif" width="5" height="4"></td></tr>
<tr><td width="300px" align="right" class="pu"><b>Passwort:</b> <input type='password' class='pass' name='Pass' onmouseover="this.className='passhover';" onmouseout="this.className='pass';"></input></td></tr>
<tr><td width="5" height="4"><img src="style/images/space.gif" width="5" height="4"></td></tr>
<tr><td width="120px" align="right"><input type='submit' class='login'onmouseover="this.className='loginhover';" onmouseout="this.className='login';" value='Login'></input></form></td></tr>
</table>
<?php
}
?>
</td>
</table>
      </td>
   </tr>
   <tr>
            <td class="headerblackrand" width="5" height="20"><img src="style/images/header_black/links.jpg" border="0"></td>
                 <td class="headerblack" width="100%" height="20">&nbsp;&nbsp;&nbsp;<b><?php readfile('style/txt/menu.txt'); ?></b></td>
            <td class="headerblackrand" width="5" height="20"><img src="style/images/header_black/rechts.jpg"></td>
         </tr>
<tr><td width="5" height="3" colspan="3"><img src="style/images/space.gif" width="5" height="3"></td></tr>
   <tr>
            <td class="headerredrand" width="5" height="20"><img src="style/images/header_red/links.jpg" border="0"></td>
                 <td class="headerred" width="100%" height="20">&nbsp;&nbsp;&nbsp;<b><font size="-7">NEWSTICKER:</font>&nbsp;<span id="mtxt" > </span></b></td>
            <td class="headerredrand" width="5" height="20"><img src="style/images/header_red/rechts.jpg"></td>
         </tr>
<tr><td width="5" height="5" colspan="3"><img src="style/images/space.gif" width="5" height="5"></td></tr>
</table>
<div width="100%" height="100%" class="story">
<?php
$FilePointer = fopen("style/txt/counter.txt", "r+");
$Counter = fread($FilePointer, filesize("style/txt/counter.txt"));
$Counter++;
rewind($FilePointer);
fwrite($FilePointer, $Counter);
fclose($FilePointer);
echo"Besucher: $Counter";
?>

</div>
<div align="right" class="copy" width="100%"><a href="" title="">Optimiert auf 1280x1024; Mozilla Firefox 2.0  | &copy; Template by 4--</a></div>
</body>
</html>


ich kann in 36 keinen fehler feststellen..

mfg, raph
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon r4qH am 05.11.2006, 20:57

jetz an 55?
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 05.11.2006, 21:18

Hallo r4pH,

Verwendest du keinen Editor mit Syntaxhighlighting !?
Dadurch habe ich den Fehler sofort finden können !

Bei mir im Editor (Weverslave) Zeile 18:
Code: Alles auswählen
header('Location: 030266069069/'.$User.'/'.$User.');

1. Als Location erwartet header() eine absolute URL (http://url.de/seite.endung)
2. Hast du ein ' vergessen bzw nach der Angabe der letzten PHP-Variable ein .' zuviel !
mit folgendem Code sollte es funktionieren, ich teste das jetzt nicht weill ich mein System neuinstalliert habe und meine Webentwicklungsumgebung noch nicht wieder eingerichtet habe.
Code: Alles auswählen
header('Location: 030266069069/'.$User.'/'.$User);

Musst halt nur noch die absolute URL einfügen, die habe ich ja net :wink:


MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon r4qH am 05.11.2006, 22:11

nochmal danke!

ich benutze phase 5.. wegen deiner frage^^

so.. die page geht wierder aber der login nicht..

schaus dir an:
http://4strichstrich.jesusjumper.de/
user: raph
passwort: 1

raph.php code:
Code: Alles auswählen
<?php
session_start();
?>
<html>
<head>
<title>4-- Login Test Raph</title>
<meta name="author" content="Raph">
</head>
<body>
Raph ist nun erfolgreich eingeloggt.. =)
</body>
</html>
<?php
} else { echo "Nicht eingeloggt!"; }
?>
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 05.11.2006, 22:25

öhm...
in raph.php hast du folgenden PHP-Code stehen (zeile 13-15)
Code: Alles auswählen
<?php
} else { echo "Nicht eingeloggt!"; }
?>

Fehlt da was, oder war das beabsichtigt ? (glaube ich zwar nicht, aber fragen kostet ja nichts *fg*)
Schätze mal das die logindaten überprüfung fehlt.
Code: Alles auswählen
<?php
if($_POST['User']=="raph" AND $_POST['Pass']==1){ echo "Eingeloggt!"; }
else{ echo "Nicht eingeloggt!"; }
?>

Damit könnte es funktionieren, wen ichs richtig gemacht habe !

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon r4qH am 06.11.2006, 06:22

haallo! hab alles gemacht wie du gesagt hast, aber werden denn die login daten nicht schon auf index.php überprüft?

Code: Alles auswählen
    if (($User == $Name) and ($Pass == $Passwort)) $UserPassOk = true;
  }
  if ($UserPassOk)
  {
   $_SESSION['login'] = 1;
   header('Location: 030266069069/'.$User.'/'.$User);

ka^^

der QT von raph.php...:
Code: Alles auswählen
<?php
session_start();
?>
<html>
<head>
<title>4-- Login Test Raph</title>
<meta name="author" content="Raph">
</head>
<body>
Raph ist nun erfolgreich eingeloggt.. =)
</body>
</html>
<?php
if($_POST['User']=="raph" AND $_POST['Pass']==1){ echo "Eingeloggt!"; }
else{ echo "Nicht eingeloggt!"; }
?>


logg dich mal ein und schau was passiert...

danke nochmal und schonmal für alles!
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 06.11.2006, 15:42

Salue Raph,

Code: Alles auswählen
haallo! hab alles gemacht wie du gesagt hast, aber werden denn die login daten nicht schon auf index.php überprüft?

Das wusste ich eben nich genau !
Ich erzähl mal wie ich das JETZT verstanden habe:
-Logindaten werden nach abschicken an index.php geschickt
-index.php überprüft und leitet auf "030266069069/raph/raph" weiter
-in 030266069069/raph/raph liegt wieder eine index.php (genannt=raph.php) !?
-raph.php (oder die index-Datei in dem Userordner) stellt den geschützten bereich dar !?

Demnach werden auch keine Daten an raph.php gesendet !
Dieses wiederum erklärt warum bei der Anzeige von raph.php die Aussage "Nicht Eingeloggt!" gemacht wird ! Weill wenn keine Daten übermittelt werden, kann die Abfrage nur ungültig sein.

Desweiterren ist dein Loginsystem Lückenhaft !
Klick mal auf folgenden Link: http://4strichstrich.jesusjumper.de/030266069069/raph/raph
Über den kommst du ohne Probleme und OHNE Login in den geschützten Bereich !

Ich habe da auch noch ein paar Fragen !
Den jenachdem verändet sich die Strucktur und die "Bauweise" des Loginsystems.
1. Ist der Login nur für Dich ?
2. Sollen sich später auch anderre User einloggen können ?
3. Wird das ein Administrationslogin ?
4. [Wenn 2.="ja"] haben alle User die "selben" Fähigkeiten, "unterschiedliche" oder "pesonenbezogene" ?

Vieleicht auch ganz hilfreich, wenn du einmal erzählst was das für ein Login werden soll.

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon r4qH am 06.11.2006, 15:52

hallihallo!

deine fragen:
1. Ist der Login nur für Dich ?
nein
2. Sollen sich später auch anderre User einloggen können ?
ja...
3. Wird das ein Administrationslogin ?
nein, kunden-login
4. [Wenn 2.="ja"] haben alle User die "selben" Fähigkeiten, "unterschiedliche" oder "pesonenbezogene" ?
also... hier mal n code:
Code: Alles auswählen
header('Location: 030266069069/'.$User.'/'.$User.');

heißt der user "raph", wir er auf "30266069069/raph/raph.php" weitergeleitet,

heißt der user aber "dragonl", wir er auf "30266069069/dragonl/dragonl.php" witergeleitet

im ordner 30266069069 sind lauter ordner, die so heißen, wei die user...
später dann z.b.:

Code: Alles auswählen
$UserList = array(
      "raph" => "1",
      "dragonl" => "2",

);


im ordner "raph" sind alle daten, die zu dem benutzernamen "raph" gehören, und die geschützt sein sollten! d.h. .. wenn man die url eingibt, soll da z.b. stehen, "Bitte erst einloggen!"...

noch fragen?

ich ja:

wie muss ich das jetzt dann also machen?

danke im vorraus.. mfg, raph
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon r4qH am 08.11.2006, 06:46

dragonl? :(
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 09.11.2006, 09:04

Hallo Raph :D

Entschuldige bitte mein "verschwinden", aber ich habe meine Windows noch mal Plattgemacht und neuaufgespielt. Und ein paar Probleme die ich beim wiedereinrichten meiner Entwiklungsumgebung hatte, wollten einfach nicht verschwinden ! Aber jetzt läuft wieder alles vernünftig und so wie ICH es wollte :lol:

Also, noch mal zu meinen Fragen, speziel Frage 4. !
Das die einzelnen User in verschiedene Unterordner geleitet werden, hatte ich schon... "bemerkt" 8)
Eigndlich wollte ich dadurch in Erfahrung bringen ob das überhaupt nötig ist !?
Beispiel:
Ich meine, wenn jeder User hinterher nur eine Funktion zur Verfügung hätte, und das die selbe Funktion wie bei ellen anderren Usern ist, würde doch eigenldich eine Datei reichen.

Und selbst wenn es mehrere Funktionen sind, währe es warscheinlich einfacher, alle Einstellungen des Users (wenn er den welche machen kann) in eine Datenbank zu speichern und die beim einloggen wieder auszulesen.

Hoffe du hast verstanden auf welchen Zweig ich dich hier aufmerksam machen möchte !?

Es scheint so, als wäre es wirklich vonnöten das du dein Vorhaben bezüglich des Logins und der geschützten Daten mal genauer erläuterst.

Wenn die "geschützten Daten des Users" (wie du sie nanntest) z.B.: "nur" die Daten über die Person selbst wären, ala Alter, Größe, Gewicht, ect. wäre eine Datenbank wohl das optimale!
Wenn es sich bei den "geschützten Daten des Users" aber um eigene HTML,PHP,ect.-Dokumente handel sollte (weill du ein webhoster währst), müsste man da ganz anders ran gehen.

MfG
Dragonl
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Beitragvon r4qH am 09.11.2006, 15:52

dragonl hat geschrieben:Hallo Raph :D

hiho =)

Entschuldige bitte mein "verschwinden", aber ich habe meine Windows noch mal Plattgemacht und neuaufgespielt. Und ein paar Probleme die ich beim wiedereinrichten meiner Entwiklungsumgebung hatte, wollten einfach nicht verschwinden ! Aber jetzt läuft wieder alles vernünftig und so wie ICH es wollte :lol:

np, hauptsache es funkt jetzt wieder...
Also, noch mal zu meinen Fragen, speziel Frage 4. !
Das die einzelnen User in verschiedene Unterordner geleitet werden, hatte ich schon... "bemerkt" 8)
Eigndlich wollte ich dadurch in Erfahrung bringen ob das überhaupt nötig ist !?
Beispiel:
Ich meine, wenn jeder User hinterher nur eine Funktion zur Verfügung hätte, und das die selbe Funktion wie bei ellen anderren Usern ist, würde doch eigenldich eine Datei reichen.

Und selbst wenn es mehrere Funktionen sind, währe es warscheinlich einfacher, alle Einstellungen des Users (wenn er den welche machen kann) in eine Datenbank zu speichern und die beim einloggen wieder auszulesen.

Hoffe du hast verstanden auf welchen Zweig ich dich hier aufmerksam machen möchte !?

Es scheint so, als wäre es wirklich vonnöten das du dein Vorhaben bezüglich des Logins und der geschützten Daten mal genauer erläuterst.

Wenn die "geschützten Daten des Users" (wie du sie nanntest) z.B.: "nur" die Daten über die Person selbst wären, ala Alter, Größe, Gewicht, ect. wäre eine Datenbank wohl das optimale!
Wenn es sich bei den "geschützten Daten des Users" aber um eigene HTML,PHP,ect.-Dokumente handel sollte (weill du ein webhoster währst), müsste man da ganz anders ran gehen.

also.. datenbank brauch ich nicht, da ich keine daten ändern will..

in dem ordner jedes users sind dann wenn alles fertig ist mehrere dateien.. alse php und html.. es wird eine reine information mit einem auftrags-änderungs-formular.. wie anders komplett anders gestalten? mein problem: ich kann kein php und zur zeit keine zeit dazu das zu lernen.. und wie soll ich mir dann ein script schreiben? ich kenn mich in php nicht aus und ich will kein script, das ein copyright hat.. und so macht das ja keiner... :( ich könnte höchstens einen link unter links stellen..





MfG
Dragonl


mfg, raph
r4qH
 
Beiträge: 73
Registriert: 01.11.2006, 09:32
Wohnort: Amberg

Beitragvon dragonl am 09.11.2006, 16:30

Sorry, aber folgendes verstehe ich nicht !

r4pH hat geschrieben:also.. datenbank brauch ich nicht, da ich keine daten ändern will..

r4pH hat geschrieben:...information mit einem auftrags-änderungs-formular..

Es soll nichts geändert weden, es existiert aber ein Änderungsformular ?

Das du kein PHP kannst, ist jetzt aber wirklich schlecht. Denn ich kann und will es dir nämlich auch nicht schreiben.


Gruß
Tobias
dragonl
 
Beiträge: 373
Registriert: 14.09.2004, 14:10
Wohnort: Bremen

Nächste


Ähnliche Themen


Zurück zu HTML, PHP & Co.

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste