• Gutan Tag.
    Also mein Problem ist folgendes:
    Ich habe einmal in mysql alle user. Und diese haben einen charakter wo ich alle Werte rein speicher. Ich will jetzt das die Daten vom char dem jeweiligen User angezeigt werden. D.h. ich hab bei user ein Feld UserID und bei chara hab ich CharaUser. Jetzt soll die UserId mit CharaUser übereinstimmen. Bei UserID stehen auch die Zahlen 1, 2, 3, ... aber bei CharaUser kommt immer 0.
    Hoffe es ist verständlich was ich meine. Ich zeige mal wie ich es aufgebaut hab. Also das Problem entsteht bei Login:


    Ach ja als Fehler bekomme ich dann das:
    Parse error: parse error in C:\xampp\security\htdocs\login.php on line 54

    und Zeile 54 ist </html> das kanns nicht sein xD

    Einmal editiert, zuletzt von Inuyasha2008 (5. Juni 2010 um 12:47)

  • Hast glaub ich beim letzten IF die geschweifet klammer zu vergessen also die hier }

    btw. Wenn man irgendwo eine geschlossen klammer vergisst, dann zeigt er den Fehler immer in der letzten Zeile an.

  • Hast glaub ich beim letzten IF die geschweifet klammer zu vergessen also die hier }

    btw. Wenn man irgendwo eine geschlossen klammer vergisst, dann zeigt er den Fehler immer in der letzten Zeile an.


    Dito, ansonsten MYSQLINJECTION durchlesen und auch mal Datebankdesigns von anderen Projekten anschauen

  • also hab noch was rumversucht aber ich hab immer noch das Problem, dass bei mir UserID und CharaUser nicht gleich sind.
    Wenn ein User mit der ID 5 ertsellt wurd soll bei CharaUser auc 5 stehen...
    Also habs in die Registrierung getan:

  • Also debugge halt mal, dann siehst du woran es liegt

    Mit "die()" kannst du gut debuggen einfach mal die($var) an den stellen schreiben dann siehst welche Variable welchen Wert hat

  • Mal zur info: Wenn man eine Tabelle erstellt on mit PMY oder SQL, kommt folgende Fehlermeldung wenn man 2 Spalten mit auto-increment will:
    "There can be only 1 auto column and it has to be primary key"
    Was schluiessen wir daraus? -> Es ist sinnfrei, 2 Geliche spalten zu haben, die sowieso immer den gelichen wert haben.
    Was heist das für deine Tabelle? -> "DROP chara.CharaUser ".
    Du solltest jedem character ne id verpassen und die dann zum benutzer eintragen. Wenn das was ich da gesagt habe murks ist, dann tuts mir leid, aber dann hab ich dein Problem nicht verstaden

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • @Pion wie meinst du das jetzt was für einen Wert die hat? Wie genau soll ich das machen

    Tobse: Nun ja der Sinn davon ist das ich später Loginname und char nicht gleichzeitig machen will. Man registriert sich logt sich ein und kann dann erst seinen char erstellen und dieser erstellte char soll mit dem login übereinstimmen. Also wird CharID verschieden von UserId sein aber CharUser sollte den gleichen Wert die UserId haben. Wüsste nicht wie man es sonst machen sollte.

  • Du sagst die lösung doch schon!
    Du erstellst den nutzer, mit LEEREM UserChar, dann loggt sich der zum ersten mal ein und dann estellt er den char. Wenner das getan hat, bekommt der Char die userid (worin ich keinen sinn sehe, doppelte datenmenge) und der User die Char id.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • naja ok hast schon Recht das es i-wie sinnlos ist... nur krieg ich es i-wie nicht hin das die Werte des eingeloggten users angezeigt werden. Ich krieg die Werte angezeigt aber dann von einem bestimmten also in der Art wie:

    PHP
    $chara = "SELECT * FROM user WHERE id = 3";

    hab schon andere sachen ausprobiert aber ich bekomm nie das angezeigt vom eingeloggten user...

  • wo ist denn die ID des eingeloggten users gespeichert?

    PHP
    // Userdaten
    $sql="SELECT * FROM user WHERE id=".$_SESSION['id'];
    /7 Charadaten
    $sql="SELECT * FROM chara WHERE userId=".$_SESSIOn['id'];

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Nun ja das hier is mein Login:

    Also ich hab immer alles mit $_SESSION['username'] gemacht und da ist jetzt nicht wirklich ne ID gespeichert oder lieg ich da falsch?

  • da is der username, aber wenn du den chara per id verifizieren willst, brauchst du ne id in der session

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • ok das pass ich jetzt an aber was ich nicht versteh beim registrieren soll die der CharaUser ja die ID vom User haben und da brauch man ja noch keine Session. Bei der registrierung wird ja alles in die datenbank eingetragen. Deswegen ist es komisch das da 0 steht oder? Ist an dem Script denn etwas falsch?

  • nene, falscher ansatz. Bei der registreirung machst du nur den eitnrag in die usertabelle und erst wenn der character erstellt wird, machst du den eintrag in die chara tabelle und updatest die usertabelle.

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Sowie ich dich verstanden habe willst du, dass in der Usertabelle der Char steht und in der Char Tabelle immer der user. Der User hat in der Char Tabellle wenig sinn, aber es kann einem Das leben minimal erleichtern.
    Also Registreirgun:

    PHP
    $SQL="INSERT INTO user (Foo, bar) VALUES ($a, $b)";


    Beim ersten login erstellt dieser seinen Char, dann machst du

    PHP
    $SQL1="INSERT INTO char (foo, bar, userId) VALUES ($c, $d, ".$_SESSION['id'].")";
    $SQL2="SELECT id FROM char WHERE userId=".$_SESSION['id'];
    $SQL3="UPDATE user SET userChara=".$SQL1[0]." WHERE id=".$_SESSION['id'];

    Der, der weiß dass er nichts weiß, weiß mehr als der, der nicht weiß, dass er nichts weiß.

    Wer nach etwas fragt, geht grundsätzlich das Risiko ein, es auch zu bekommen!

  • Du kannst auch beide bei der anmeldung eintragen nachdem der user eingetragen wurde kannst mit lastinsertid die ID im nächsten query verwenden