Dialog mit MySQL ( E-Mail )

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Hallo,
    ich muss bei meinem MySQL Selfmade Script ( Ja, Selfmade! ) eine E-Mail bei der registration angeben.


    So, ich bin schon soweit.


    case DIALOG_EMAIL:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_EMAIL,DIALOG_STYLE_INPUT,"E-Mail","Deine E-Mail war zu kurz!\nBitte gebe deine E-Mail Adresse an.\n Diese wird für eine Anmeldung in unserem Forum gebraucht.","Absenden","Abbrechen");
    return 1;
    }
    else
    {
    new mail[128];
    mail = "inputtext";
    CreateAccount(playerid, inputtext);
    SetPVarInt(playerid,"Eingeloggt",1);
    SpawnPlayer(playerid);
    }

    }


    }


    Soo.


    Beim CreateAccount steht:


    stock CreateAccount(playerid, pass[])
    {
    new query[256],Name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    mysql_real_escape_string(mail,mail);
    format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort, Mail) VALUES ('%s', '%s', '%s')", Name, pass);
    mysql_query(query);
    return true;
    }




    Fehler:

    script(436): error 017: undefined symbol "mail"


    Zeile 436:


    mysql_real_escape_string(mail,mail);



    Liebe Grüße


  • mail = "inputtext" geht nicht so leicht. ;)
    format(mail, sizeof(mail), "%s", inputtext) wäre korrekter.


    Und mail musdt du auch als Parameter an CreateAccount übergeben - genauso, wie du es mit pass gemacht hast. ;)

    Ich bin Dittis Signatur.

  • Ich muss lernen, Code genau anzusehen...


    Das mit dem format stimmt.


    Der zweite Parameter von CreateAccount ist laut Definition jedoch pass, du übergibst aber Mail.


    Da ich nicht deinen ganzen Code kenne, weiß ich nicht, wie man es einbauen könnte, aber du musst irgendwie auch das Passwort speichern und dann CreateAccount(playerid, pass, mail aufrufen und Createaccount so definieren:
    CreateAccount(playerid, pass[], mail[])
    {
    //...
    }


    Hoffe, es ist jetzt noch verständlich. ^^

    Ich bin Dittis Signatur.


  • case DIALOG_EMAIL:
    {
    if(response)
    {
    if(strlen(inputtext) == 0)
    {
    ShowPlayerDialog(playerid,DIALOG_EMAIL,DIALOG_STYLE_INPUT,"E-Mail","Deine E-Mail war zu kurz!\nBitte gebe deine E-Mail Adresse an.\n Diese wird für eine Anmeldung in unserem Forum gebraucht.","Absenden","Abbrechen");
    return 1;
    }
    else
    {
    new mail[128];
    format(mail,sizeof(mail),"%s",inputtext);
    CreateAccount(playerid, inputtext);
    SetPVarInt(playerid,"Eingeloggt",1);
    SpawnPlayer(playerid);
    }

    }


    }



    stock CreateAccount(playerid, pass[], mail[])
    {
    new query[256],Name[MAX_PLAYER_NAME];

    GetPlayerName(playerid, Name, MAX_PLAYER_NAME);
    mysql_real_escape_string(Name,Name);
    mysql_real_escape_string(pass,pass);
    mysql_real_escape_string(mail,mail);
    format(query, sizeof(query), "INSERT INTO accounts (Name, Passwort, Mail) VALUES ('%s', '%s', '%s')", Name, pass,mail);
    mysql_query(query);
    return true;
    }


    Allerdings wäre dan Passwort net richtig da Passwort nicht im Dialog vorhanden ist...