rang problem...

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • rang problem...

    Moin Leute hab ein Problem !
    Habe nen richtigen insert syntax, aber er inserted die werte einfach nicht... und gibt auch keine fehler aus !!!
    ka was ich machen soll... brauch das rang system fuer ne community page, damit gaeste bestimmte inhalte net sehen duerfen, dafuer aber registrierte......
    hier der source:

    Quellcode

    1. <?php
    2. /* Eintragung in die Mysql Datenbank */
    3. include('connect.inc.php');
    4. $get = mysql_query("select * from user");
    5. while($result = mysql_fetch_array($get)) {
    6. if($user != $result[benutzername]) {
    7. if($email == $result[email]) {
    8. mysql_query("insert into user(benutzername,email,password,rang) values('$user','$email','$password','2')") OR die('Fehler:'.mysql_error());
    9. echo "Die Email ist schon auf ein anderes Mitglied registriert !";
    10. }
    11. echo "Danke fuer deine Anmeldung ! Du wirst eine Email von uns erhalten !<br>";
    12. $betreff = "Neuer User !";
    13. $an = "email@url.tld";
    14. $von = "$email";
    15. $date = date("d.m.Y");
    16. $inhalt = "Benutzername: $user\nEmail: $email";
    17. @mail ($an,$betreff,$inhalt,"From: ".$von);
    18. /* Auto-Response */
    19. $von="email@url.tld";
    20. $vtext="Danke fuer deine Registrierung ! Hier nochmal deine eingegeben Daten:
    21. Benutzername: $user
    22. email: $email
    23. Passwort: $password
    24. Passwort(bestätigung): $password2";
    25. $bestaetigung="Willkommen in der avance-modding.de Community";
    26. $betreff = "Anmeldung bei www.avance-modding.de";
    27. mail ($email,$bestaetigung,$vtext,"From: ");
    28. ?>
    29. <a href="http://url.tld"> Zurück</a>
    30. <?
    31. } else {
    32. if($password != $password2) { echo "Die Passwörter müssen übereinstimmen !"; }
    33. if($user == $result[benutzername]) { echo "Benutzername existiert bereits !"; }
    34. }
    35. }
    36. ?>
    Alles anzeigen
  • Wird
    Die Email ist schon auf ein anderes Mitglied registriert !

    überhaupt ausgegeben?
    wenn nicht, dann wird die bedingung $email == $result[email] gar nicht erfüllt und somit kein query ausgeführt---->
    andernfalls ein vielleicht etwas besseres query:

    Quellcode

    1. mysql_query("INSERT INTO user (benutzername, email, password, rang) VALUES ('".$user."','".$email."','".$password."','2')") OR die('Fehler:'.mysql_error());
    [/email]

  • Quellcode

    1. if($email == $result[email]) {
    2. mysql_query("insert into user(benutzername,email,password,rang) values('$user','$email','$password','2')") OR die('Fehler:'.mysql_error());
    3. echo "Die Email ist schon auf ein anderes Mitglied registriert !";
    4. }
    5. echo "Danke fuer deine Anmeldung ! Du wirst eine Email von uns erhalten !<br>";


    das sieht irgendwie komisch aus... ich würde es so machen:

    Quellcode

    1. if($email == $result[email]) {
    2. echo "Die Email ist schon auf ein anderes Mitglied registriert !";
    3. }
    4. else {
    5. mysql_query("insert into user(benutzername,email,password,rang) values('$user','$email','$password','2')") OR die('Fehler:'.mysql_error());
    6. echo "Danke fuer deine Anmeldung ! Du wirst eine Email von uns erhalten !<br>";

    so wird die query nur ausgeführt, wenn die email noch nicht drin ist. da ich da aber eine neue else-abfrage aufmache, musst du sie später natürlich auch wieder noch mit einem } schließen, sonst bekommst du einen parse error.
    bisher wird nur dann etwas in die datenbank eingetragen, wenn die email schon in der db eingetragen ist. und da vermutlich noch keine eingetragen sind.... ;)
  • jo das is noch voll der mist...
    habs mal mit select from..... lcase.... und mysql_num_row probiert...
    dann meint er aber mysql_num_row ist kein gültiger befehl !
    greetz marv
    edit: @wuflgang er muss ja auch checken ob der name vergeben is !
    edit2:
    Neuer source:

    Quellcode

    1. <?php
    2. /* Eintragung in die Mysql Datenbank */
    3. include('connect.inc.php');
    4. $fehler = "folgende Fehler traten auf:<br>";
    5. if($user==""){
    6. $fehler = "$fehler -Du hast keinen Nicknamen angegeben.<br>";
    7. echo "$fehler";
    8. }
    9. if($email==""){
    10. $fehler = "$fehler -Du hast keine Email Adresse angegeben !<br>";
    11. echo "$fehler";
    12. }
    13. if($password=="" or $password2!=="$password2"){
    14. $fehler = "$fehler -Ihre beiden Passwort eingaben sind unterschiedlich:<BR>";
    15. echo "$fehler";
    16. }
    17. $get = mysql_query("select * from user where lcase(benutzername) = lcase('$user')");
    18. if(mysql_num_rows($get) == 1){
    19. $fehler = "$fehler -Dieser Benutzername wird bereits benutzt<br>";
    20. echo "$fehler";
    21. }
    22. $got = mysql_query("select * from user where lcase(email) = lcase('$email')");
    23. if(mysql_num_rows($got) == 1){
    24. $fehler = "$fehler -Diese email wird bereits benutzt !";
    25. echo "$fehler";
    26. }
    27. else
    28. {
    29. mysql_query("INSERT INTO user (benutzername, email, password, rang) VALUES ('".$user."','".$email."','".$password."','2')") OR die('Fehler:'.mysql_error());
    30. echo "Du wirst eine Email von uns erhalten";
    31. }
    32. ?>
    Alles anzeigen

    Also bei email(wenn email schon in db existiert) echot er normal ohne einzutragen ! Aber bei user name nicht ! und er trägt in db ein !
  • erstmal solltest du diese variable anders nennen, sonst gibt es probleme wenn email und user leer sind.

    include('connect.inc.php');
    $fehler = "folgende Fehler traten auf:<br>";

    Hier hast du ein zeichen zu viel - anführungszeichen kannst du weg lassen
    und falsche if bedingung:
    if($password=="" <span style='color:green'>||</span> <span style='color:green'>$password</span>!=<span style='color:red'>="</span>$password2<span style='color:red'>"</span>){

    sicher ist sicher:
    if(mysql_num_rows($get) <span style='color:green'>>=</span> 1){

    und..
    echo <span style='color:red'>"</span>$fehler<span style='color:red'>"</span>;

    und das letzte else.... das tritt nur in einem fall ein.
    was zu tun ist....
    überall wo du echo $fehler hast, setzt du eine variable $errorlog = 1;
    und ganz unten setzt du dann eine bedingung
    if($errorlog<1) {
    // query eintragen
  • *push* damit es uebersichtlich bleibt !
    So hab jetzt nen login geschrieben der net ganz funzt...
    versteh das mit sessions uch noch net ganz....
    So die daten werden von einem formulaer per POST an dieses script hier geschickt:

    Quellcode

    1. <?php
    2. session_start();
    3. include('connect.inc.php');
    4. $got = mysql_query("select * from user where lcase(benutzername) = lcase('$user') AND password = '". md5($password) ."'");
    5. if(mysql_num_rows($got) == 1)
    6. {
    7. $result = mysql_fetch_array($got);
    8. /* sessionwerte registrieren */
    9. $user = $result['user'];
    10. $password = $result['password'];
    11. session_register("user");
    12. session_register("password");
    13. $userid = $result['id'];
    14. $rang = $result['rang'];
    15. $email = $result['email'];
    16. header("location:../index.php");
    17. }
    18. else
    19. {
    20. $rang = "0";
    21. }
    22. ?>
    Alles anzeigen

    So wenn ich nun die daten absende komme ich nicht zur location....
    bekomme nur ein leeres fenster was mich schliessen laesst das es net gefunzt hat....
    greetz marv
  • das passwort brauchst du nicht zu registrieren, nur den User...
    und was funktioniert nicht?
    gibts vielleicht einen "Header already sent" fehler?
    dann müsstest du auf eone JS umleitung umstellen

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. include('connect.inc.php');
    4. $got = mysql_query("select * from user where lcase(benutzername) = lcase('$_POST[user]') AND password = '". md5($_POST[password]) ."'");
    5. if(mysql_num_rows($got) == 1)
    6. {
    7. $result = mysql_fetch_array($got);
    8. /* sessionwerte registrieren */
    9. $user = $result['user'];
    10. session_register('user');
    11. header("location:index.php");
    12. } else {
    13. $rang = "0";
    14. }
    15. ?>
    Alles anzeigen


    das ist deine login.php
    und wie sieht deine index.php aus?

    Quellcode

    1. <?
    2. session_start();
    3. if(!session_is_registered('user') || $_SESSION['user'] == "")
    4. {
    5. header("location:login.php");
    6. } else {
    7. echo "SECURE AREA.... Willkommen ".$_SESSION['user'];
    8. }
    9. ?>