PHP / MYSQL anfänger braucht hilfe :)

Dieses Thema im Forum "Programmieren" wurde erstellt von Tom_D20, 5. Oktober 2005.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Tom_D20

    Tom_D20 Byte

    Registriert seit:
    9. Mai 2003
    Beiträge:
    59
    Hi, und zwar hab ich folgendes Problem:

    Ich hab mir eine "Login-routine" runtergelanden, (geht wunderbar)und möchte nach dem sich, jemand angemeldet hat auf eine neue Seite gelangt, eigentlich auch kein problem!

    Nutze das:

    Header("Location: start.html");
    exit();



    Nun hab ich aber folgendes Problem, wenn ich auf der neuen Seite den z.B. $user ausgeben will, was den aktuellen User anzeigen lassen soll, passiert dies nicht!

    Nun muss ich da irgendwie was mit einbinden aber ka wie!?

    Hab auch noch ein anderes Problem, wenn ich nicht weiterleite, und auf der selben Seite bleibe kann ich nur den user namen also $user und das password also $password ausgeben aber die anderen spalten der Datenbank wie z.B. gold also $gold passiert nix warum!?

    mfg

    hoffe jemand versteht was ich meine ^^ :D
     
  2. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.482
    Wie wäre es den relevanten Code zu posten...
     
  3. Tom_D20

    Tom_D20 Byte

    Registriert seit:
    9. Mai 2003
    Beiträge:
    59
    <?




    if ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
    else if ($abmelden) { abmelden($fertig, $user, $password);}
    else if ($forgot) { forgot($fertig, $email);}
    else { login($fertig, $user, $password);}



    ?>



    <?
    function inhalt($user)
    {
    session_start();
    session_register("user");



    #####################



    // HIER SOLL DER DAS GOLD UND DEN USERNAMEN AUSGEBEN! PASSIERT ABER NICHT NUR USERNAME!



    //
    echo "$gold";
    echo "$user";


    // wenn ich hier weiterleite den kann ich nichtmal $user ausgeben! würde am liebsten ne neue seite mit 2 frames öffen und dort weiter arbeiten!

    Header("Location: start.html");
    exit();



    #####################

    }
    ?>



    <?
    function login($fertig, $user, $password)
    {

    include("config.php");

    if ($fertig)
    {

    $abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
    $reihen = mysql_num_rows($abfrage);

    if ($reihen <= 0)
    {
    echo "Unbekannter Benutzername!";
    }
    else
    {
    while ($row = mysql_fetch_object ($abfrage))
    {
    if ($row->password==$password)
    {
    inhalt($user);
    inhalt($gold);
    inhalt($password);
    }
    else
    {
    echo "Falsches Passwort!";
    }
    }
    }

    }

    else {
    echo "<a href=\"$PHP_SELF?anmelden=yes\"><img src=anmelden.jpg border=0></a> lang!";
    echo "<p><h2></h2></p>";

    echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
    ?>
    <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2"><img src=benutzername.jpg></font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
    </tr>
    <tr>
    <td><font size="2"><img src=passwort.jpg></font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
    </tr>
    <tr>
    <td colspan=2 align=center><input type=submit value=Login></td>
    </tr>
    </table>
    </form>
    <?
    echo "<p><a href=\"$PHP_SELF?forgot=yes\">Passwort vergessen?</a><br><a href=\"$PHP_SELF?abmelden=yes\">Abmelden</a></p>";
    }

    }
    ?>







    <?
    function anmelden ($fertig, $user, $password1, $password2, $email)
    {
    include("config.php");

    if($fertig) {
    $abfrage1 = mysql_query("SELECT user FROM login");
    while ($row = mysql_fetch_object ($abfrage1)) {
    if ($row->user==$user) {
    echo "Dieser Benutzer existiert schon!";
    exit;
    }
    }
    if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
    echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
    }
    else if ($password1!=$password2) {
    echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
    }
    else {
    $anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
    echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
    @login();
    }
    }
    else {
    echo "<h2>Anmelden</h2>";
    echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
    ?>
    <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
    </tr>
    <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password1" value=""></font></td>
    </tr>
    <tr>
    <td><font size="2">Wiederholen:</font></td>
    <td><font size="2"><input type="password" name="password2" value=""></font></td>
    </tr>
    <tr>
    <td><font size="2">E-Mail:</font></td>
    <td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
    </tr>
    <tr>
    <td colspan=2 align=center><input type=submit value=Anmelden></td>
    </tr>
    </table>
    </form>
    <?
    }

    }
    ?>



    <?
    function forgot ($fertig, $email)
    {

    include("config.php");

    if ($fertig) {
    $abfrage=mysql_query("SELECT * FROM login");
    while ($row = mysql_fetch_object ($abfrage)) {
    if ($email==$row->email) { $ismail="true"; }
    }
    if ($ismail=="true") {
    $password=mysql_query("SELECT * FROM login WHERE email = '$email'");
    while ($row = mysql_fetch_object ($password)) {
    $nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
    }
    mail($email, "Passwort", $nachricht, "From: Administrator");
    ?>
    <p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
    Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>

    <?

    @login();
    }
    else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
    }
    else {

    echo "<p><h2>Passwort vergessen</h2><p>";
    echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
    ?>
    <table cellspacing="1" cellpadding="2" border="0">
    <tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
    <tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
    </table></form></p>
    <?
    }
    }
    ?>



    <?
    function abmelden($fertig, $user, $password)
    {

    include ("config.php");

    if($fertig) {
    $abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
    $reihen = mysql_num_rows($abfrage);
    if ($reihen <= 0) {
    echo "Unbekannter Benutzername!";
    }
    else {
    while ($row = mysql_fetch_object ($abfrage)) {
    if ($row->password==$password) {
    $delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
    echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
    }
    else {
    echo "Falsches Passwort!";
    }
    }
    }

    }
    else {
    echo "<p><h2>Abmelden</h2></p>";
    echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
    ?>
    <table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
    </tr>
    <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
    </tr>
    <tr>
    <td colspan=2 align=center><input type=submit value=Abmelden></td>
    </tr>
    </table>
    </form>
    <?
    }

    }
    ?>






    edit:

    config.php hier drine steht folgender code:

    <?

    mysql_connect("localhost","root",""); // Adresse zur MySQL Datenbank, Benutzername und Passwort
    mysql_select_db("QUARKX"); // Datenbank-Name
    ?>



    so schaut das bei mysql aus:

    [​IMG]
     
  4. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.482
    Du rufst die Funktion inhalt() mit den verschiedenen Werten auf, legst die aber nicht in der Session ab. Starte die Session bereits am Beginn jeder Datei und ersetze:

    inhalt($user);
    inhalt($gold);
    inhalt($password);

    durch:

    $_SESSION["user"]=$user;
    usw.

    Über $_SESSION[variable] kommst du nun immer an den entsprechenden Wert.

    PS: Ich habe nur nach dem relevanten Code gefragt...
     
  5. Tom_D20

    Tom_D20 Byte

    Registriert seit:
    9. Mai 2003
    Beiträge:
    59
    Hmm, habs ausprobiert.


    Leider bekomm ich nun nichts mehr ausgespuckt :(


    Weiss nicht vielleicht hab ich was falsch gemacht, habs so gemacht wie beschrieben.

    ps: danke für die mühe :)
     
  6. kalweit

    kalweit Hüter der Glaskugel

    Registriert seit:
    18. April 2000
    Beiträge:
    31.482
    session_start(); muss aus der Funktion an den Beginn der Datei (auch der, wo die Ausgabe erfolgen soll).
     
  7. Tom_D20

    Tom_D20 Byte

    Registriert seit:
    9. Mai 2003
    Beiträge:
    59
    Ich glaub ich bin zu Blöde dafür ^^, bekomm es nicht hin :(

    Hab nun auch ca 6 Stunden am Code gesessen, glaub das ist den normal :)

    Naja vielleicht bekomm ich es nochmal hin :)
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen