You are not logged in.

wcf.regNote.message

flo

Unregistered

1

Thursday, July 21st 2005, 1:51pm

loginscript hilfe.....

hi leute!
ich code folgende page... und muss da jezz noch ein loginscript reinbasteln, weil ich mich die ganze zeit davor gedrückt habe.. aber irgendwann muss ich das ja machen ! :)
Minemic Clan
wenn sich der user eingeloggt hat, soll in dem loginfenster stehen logged in as $username...
das problem das ich jetzt habe, ist dass ich mich zwar einloggen kann, aber den loginstatus nicht auf weitere pages übergeben kann...
ich geb euch einfach mal ein paar quellcodeschnipsel.... vielleicht versteht ihr mein problem dann besser

index.php

PHP Source code

1
2
3
4
5
6
7
8
9
echo "<div class='login'>";
 include("./login/login.php");
</div>


if ($section=='checklogin')
{
    include("checklogin.php");
}

in die index.php wird die ganze page aus kleinen dateien includiert...

login.php

PHP Source code

1
2
3
4
5
6
7
8
9
<?
echo "<div align='right'><table>
<form method='post' action='index.php?section=checklogin'>
 <tr><td>   <input type='text' size='18' maxsize='20' name='username' value='nickname'></td></tr>
 <tr><td>   <input type='password' size='18' maxsize='20' name='userpw' value='nickname'></td></tr>
 <tr><td>   <input type='image' src='./images/login/login.jpg' name='Submit'>&nbsp;&nbsp;<a href='lostpw.php'><img border='0' src='./images/login/pw.jpg'></a></td></tr>
 </table>
</form></div>";
?>

die login.php gibt die daten weiter an section=checklogin ...
die section=checklogin ist eine externe datei namens checklogin.php
und da startet mein problem

checklogin.php

PHP Source 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
<?
session_start();
$sql="Select * from accounts where nick='$username' and passwort='$userpw' order by nr";
$result=mysql_db_query($db$sql);
$row=mysql_num_rows($result);
if ($row>0)
{
    if ($_SESSION["login"]="true")
    {
        $login='true';
        session_register("$login");
    }
    echo "<br>eingeloggt als $username .<br>";
    echo "<a href='index.php'>Weiter</a>";
    
}
else
{
    $_SESSION["login"]="false";
    $SESSION="false";
    echo "<meta http-equiv='refresh' content='1; URL=index.php?section=home'>";
    echo "Logindaten sind falsch! bitte versuche es erneut!<br>";
    echo "<a href='index.php?section=news'>wenn die automatische Weiterleitung nicht funktioniert bitte hier klicken!</a>";
}
?>

die $login wird als true an die index.php weitergegeben...
da kann ich dann auf jeder geschützten seite mit der if abfrage abfragen, ob die $login='true' ist.... aber wenn ich von der index.php weiterverlinke, dann geht dieser wert verloren, obwohl er in der session registriert ist... ich bin schon total verzweifelt, weil ich meinem auftraggeber gesagt hab, dass ich damit bis morgen fertig bin... ahhhh
kann mir jmd helfen???

achso... jede section ist mit einer if abfrage definiert..
d.h. : wenn da section=checklogin steht wird checklogin.php includiert usw.....

pls helft mir!!!

flo

Unregistered

2

Monday, July 25th 2005, 1:44am

ich hab von einem freund erfahren, dass er in meinem quellcode nur
&quote;&quote;&quote;&quote;v
und
&nbsp;&nbsp;&nbsp;&nbsp&nbsp;
lesen könnte...
ich bitte grade um ne kurze antwort, ob ihr auch nur sowas seht...
ich hab natürlich nicht sowas geproggt ....
ich frag mich nur, warum das nicht richtig eingefügt wird.. ?(
liegt warscheinlich an meinem browser(opera)

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

3

Monday, July 25th 2005, 9:15am

Also ich kann des einwandfrei sehen ... des ist ganz normaler PHP Code und HTML in nem echo "..." drin ... also lass dich doch nicht so veräppeln ;)
Und sag deinem Kumpel die zwei &nbsp; die es da gibt sind so gewünscht und sagen dem Browser des da auf jeden Fall ein Space ausgegeben werden soll.
Ansonsten liegt des wohl eher bei ihm als am Board oder an deinen Posts!

Ciao Ephraim

Ephraim

Professional

Posts: 826

Location: coder-board.info

Occupation: Info-Student

  • Send private message

4

Monday, July 25th 2005, 9:30am

Und num zum Script selber.

1. if ($_SESSION["login"]="true"), des is eine Zuweisung also im if etwas unpassen und wahrscheinlich auch nicht so gedacht oder? Probiers mal mit == anstatt = . Und mach die Zuweisung vor dem IF und dann kannst du mit isset() und == true immer noch überprüfen obs funktioniert hat!(checklogin.php)
2. Wo bekommst du in deinem Script $username und $userpw her?
ist register globals eingeschalten? Dann solltest du trotzdem schauen ob genau nur eine Row zurückkommt und nicht mehrere .... ansonsten stimmt da was nicht! (checklogin.php)
3. Was macht des "</div>" mitten im Code? (index.php)
4. Mit dem verlinken, schau dir mal nochmal die Beschreibung zu Sessions an,
du brauchst entweder en SessionCookie oder musst an jeden Link ne SID anhängen. meist langst wenn du folgendes machst:

PHP Source code

1
echo "<a href='index.php".SID."'>Weiter</a>";

Aber des kommt auf die einstellungen von PHP drauf an.
5. Session_start() rufst du am besten in einem Script auf des immer am Anfang includiert wird, weil ohne des bekommst du deine Sessiondaten auch nicht wieder.

Ciao Ephraim

Prometheus

Administrator

Posts: 3,278

  • Send private message

5

Monday, July 25th 2005, 5:34pm

das was dein kumpel sieht ist ein problem was wir hier im board haben. da müsste ich jetzt weiter ausholen um das zu erklären aber log dich mal aus und schau dir dann den beitrag an. entweder du bekommst ne fehlermeldung oder aber das totale chaos in deinem code. nur als user siehst du das ganze richtig.

das liegt am mod_rewrite der leider leider immernoch nicht perfekt arbeitet wie ich das will. muss da dringend nochmal ran das korrigieren.

also kein panik das ist ok so :)
Jedwege Anfragen bitte an Technomausi oder ShaoKhan richten. Dieses Konto ist und bleibt inaktiv.

flo

Unregistered

6

Monday, July 25th 2005, 6:08pm

hi ..
thx für die aufklärung :)

danke für die hilfe Ephraim ...
allerdings hab ich das Sript komplett neu gemacht ...
ich weiß auch nich was ich da getrunken hab, als ich das programmiert hab :P
hier hab ich mal das reingesetzt, wie es jezz aussieht ^^
übrigens könnt ihr mal gucken, wenn ihr wollt :D ... leider ist das design nicht von mir... :(
optimale auflösung: 1024x768 ...
schlechteste auflösung: alle anderen :)
M!nemic Clanpage

login.php

PHP Source 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
<?
if ($_SESSION['login']==false)
{
    echo "<div align='right'><table>
    <form method='post' action='index.php?section=checklogin'>";
?>
     <tr><td>   <input type='text' size='18' maxsize='20' name='username' value='nickname' onFocus="if (this.value == this.defaultValue) this.value='';" onBlur="if (this.value == '') this.value=this.defaultValue;" ></td></tr>
     <tr><td>   <input type='password' size='18' maxsize='20' name='userpw' value='nickname' onFocus="if (this.value == this.defaultValue) this.value='';" onBlur="if (this.value == '') this.value=this.defaultValue;" ></td></tr>
<?
    echo" <tr><td>   <input type='image' src='./images/login/login.jpg' name='Submit'>&nbsp;&nbsp;<a href='index.php?section=lostpw'><img border='0' src='./images/login/pw.jpg'></a></td></tr>
   <tr>
   <td colspan=2>
       <a href='index.php?section=register'><img border='0' src='./images/login/register.jpg'></a>
   </td>
   </tr>

   </table>
    </form></div>";
}
else
{
    echo "<b>logged in as ";echo $_SESSION['username'];echo"</b>";
    echo "<br><a href='./index.php?section=logout'>logout</a>";
}
?>


checklogin.php

PHP Source 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
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
<?
 $crypteduserpw=md5($userpw);
$sql="Select * from accounts where nick='$username' and passwort='$crypteduserpw'";
$result=mysql_db_query($db$sql);
$row=mysql_num_rows($result);


if ($row>0)
{
      $aktiviert=mysql_result($result,0,"aktiviert");
      $email=mysql_result($result,0,"email");
      if ($aktiviert=='1')
      {

    $_SESSION['login']=true;    //login = true
    $_SESSION['username']=$username;
    $_SESSION['email']=$email;


      echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
            echo "  <tr>";
            echo "    <td height='27' background='./images/main/news_top.jpg'>&nbsp;&nbsp;<b>Login - Check</b></td>";
            echo "  </tr>";
            echo "  <tr>";
            echo "    <td background='./images/main/news_middle.jpg'>";
            echo "<table width='99%' border='0' cellpadding='0' cellspacing='2' align='center'>";
            echo "<tr><td><br>";
            
    echo "<table><tr><td>";
    echo "Erfolgreich Eingeloggt! Willkommen <b>"; echo $_SESSION['username'];
    echo"</b>!<br>Du wirst sofort weitergeleitet oder klicke ";
    echo "<a href='index.php?'>hier</a>";
    echo "</td></tr></table>";
    echo "<META CONTENT='1;URL=index.php?' HTTP-EQUIV='refresh'>";
    
             echo "<br>&nbsp;</td></tr></table>";
            echo "    </td>";
            echo "  </tr>";
            echo "  <tr>";
            echo "    <td height='29' background='./images/main/news_ending.jpg'>&nbsp;&nbsp;</div></td>";
            echo "  </tr>";
            echo "</table>";
            echo "<br><br>";

      }
      else
      {
        echo "Bitte erst aktivieren!";
      }
      
}
else
{
      echo "<table width='100%' border='0' cellpadding='0' cellspacing='0'>";
            echo "  <tr>";
            echo "    <td height='27' background='./images/main/news_top.jpg'>&nbsp;&nbsp;<b>Falsche Eingabe</b></td>";
            echo "  </tr>";
            echo "  <tr>";
            echo "    <td background='./images/main/news_middle.jpg'>";
            echo "<table width='99%' border='0' cellpadding='0' cellspacing='2' align='center'>";
            echo "<tr><td><br>";

    $_SESSION['login']=false;
  echo "<meta http-equiv='refresh' content='1; URL=index.php?section=home'>";
    echo "Logindaten sind falsch! bitte versuche es erneut!<br>";
    echo "<a href='index.php?section=news'>wenn die automatische Weiterleitung nicht funktioniert bitte hier klicken!</a>";

             echo "<br>&nbsp;</td></tr></table>";
            echo "    </td>";
            echo "  </tr>";
            echo "  <tr>";
            echo "    <td height='29' background='./images/main/news_ending.jpg'>&nbsp;&nbsp;</div></td>";
            echo "  </tr>";
            echo "</table>";
            echo "<br><br>";
}

?>


@ Ephraim:
die div class war dafür da, das loginscript auf die startseite von der page zu inkludieren...
das mit den globas ... ka ^^ :D
das mit den sessions ...: da brauchte ich die sid nicht über get weiterzugeben ... hab einfach den namen und den login status im array
$_SESSION[""]; gespeichert...
und username und pw kamen über das login formular zur cheklogin.php ..

This post has been edited 2 times, last edit by "flo" (Jul 25th 2005, 6:13pm)


wcf.user.socialbookmarks.titel