1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Deutsch
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Bitte um hilfe bei meiner acc register page

  • Tota
  • 29. September 2007 um 17:09
  • Unerledigt
  • Tota
    2
    Tota
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 29. September 2007 um 17:09
    • #1

    habe da ein kleines problem mit meiner acc register page
    hoffe mir kann da wer behilflich sein
    ich selbst habe nicht wirklich viel ahnung in sachen php :?

    zur zeit sieht es so aus wenn ich einen acc erstelle schaut er in die db ob der username schon existiert
    dieses möchte ich auch für die e-mail adresse machen
    und das er durchsucht ob die ip schonmal benutzt wurde
    also man soll maximal einmal die selbe e-mail benutzen können und maximal 2 mal die selbe ip
    ist das möglich?
    hoffe mir kann hier wer helfen


    also meine sql datenbank sieht so aus

    Zitat

    INSERT INTO accounts
    (`acct`, `login`, `password`, `gm`, `banned`, `lastlogin`, `lastip`, `email`, `flags`)
    VALUES
    (18, 'test', 'test', '', 0, "9/29/2007 16:24:59", 'xx.xxx.xxx.xx', 'xxxx@xxxxxx.de', 8);

    so und hier der php code für die page

    Zitat

    <?php

    #################
    # #
    # #
    # Enjoy! #
    # #
    # #
    #################

    include("config.php");

    error_reporting(E_ALL ^ E_NOTICE);

    session_start();

    $msg = Array();
    $error = Array();

    function addUser(){
    if (empty($_POST)) return false;
    global $config, $msg, $error;
    if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';
    if (empty($_POST['password'][0]) :tired_face: empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';
    if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';
    if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';
    if (!empty($error)) return false;
    $db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
    if (!$db) return $error[] = 'Database: '.mysql_error();
    if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
    $query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
    $res = mysql_query($query, $db);
    if (!$res) return $error[] = 'Database: '.mysql_error();
    if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';
    $query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `email`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_POST['email'])."', '8')";
    $res = mysql_query($query, $db);
    if (!$res) return $error[] = 'Database: '.mysql_error();
    $msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POST['login']).'</strong></span> has been created!';
    $msg[] = 'In about 1-2 minutes you will be able to log in.';
    $msg[] = 'In ca. 1-2 minuten kannst du dich einloggen.';
    mysql_close($db);
    return true;
    }
    {
    addUser();
    }

    ?>


    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
    <title>Account Creation Page</title>
    <meta http-equiv="Pragma" content="no-cache"/>
    <meta http-equiv="Cache-Control" content="no-cache"/>
    <style type="text/css" media="screen">@import url(server_stats.css);</style>
    <!--[if lt IE 7.]>
    <script defer type="text/javascript" src="pngfix.js"></script>
    <![endif]-->
    </head>
    <body>
    <center>
    <div class="logo"></div>
    <div style="width:300px">
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
    <table width="100%" border="0" cellspacing="1" cellpadding="3">
    <tr class="head"><th colspan="2">Account Creation</th></tr>
    <tr>
    <th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
    </tr>
    <tr>
    <th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
    </tr>
    <tr>
    <th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
    </tr>
    <tr>
    <th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>
    </tr>
    </table>
    <input type="button" class="button" value="Back" onClick="history.go(-1)" />
    <input type="submit" value="Create" class="button"/>
    </form>

    <?php
    if (!empty($error)){
    echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';
    foreach($error as $text)
    echo $text.'</br>';
    echo '</td></tr></table>';
    };
    if (!empty($msg)){
    echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';
    foreach($msg as $text)
    echo $text.'</br>';
    echo '</td></tr></table>';
    exit();
    };
    ?>

    </div>
    <div class="footer">
    Original design by mmorpg4free.com, styling by NoriaC
    </div>
    </center>
    </body>
    </html>

    Alles anzeigen

    mfg Totatis

  • knackwurst
    2
    knackwurst
    Mitglied
    Punkte
    25
    Beiträge
    5
    • 29. September 2007 um 17:37
    • #2
    PHP
    <?php
    
    
    #################
    #               #
    #               #
    #     Enjoy!    #
    #               #
    #               #
    #################
    
    
    include("config.php");
    
    
    error_reporting(E_ALL ^ E_NOTICE);
    
    
    session_start();
    
    
    $msg = Array();
    $error = Array();
    
    
    function addUser(){
        if (empty($_POST)) return false;
        global $config, $msg, $error;
        if (empty($_POST['login'])) $error[] = 'Error, You forgot to enter a account name!';
        if (empty($_POST['password'][0]) || empty($_POST['password'][1])) $error[] = 'Error, You forgot to enter a password!';
        if ($_POST['password'][0] !== $_POST['password'][1]) $error[] = 'Password does not match!';
        if (empty($_POST['email'])) $error[] = 'Please fill in a valid email adress!';
        if (!empty($error)) return false;
        $db = @mysql_connect($config['mysql_host'], $config['mysql_user'], $config['mysql_pass']);
        if (!$db) return $error[] = 'Database: '.mysql_error();
        if (!@mysql_select_db($config['mysql_dbname'], $db)) return $error[] = 'Database: '.mysql_error();
        $query = "SELECT `acct` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
        $res = mysql_query($query, $db);
        if (!$res) return $error[] = 'Database: '.mysql_error();
        if (mysql_num_rows($res) > 0) return $error[] = 'Username already in use.';
    
    
    //
    // Abfrage ob EMail bekannt
    //
    
    
          $query = "SELECT `email` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
           $res = mysql_query($query, $db);
           if (!$res) return $error[] = 'Database: '.mysql_error();
           if (mysql_num_rows($res) > 0) return $error[] = 'E-Mail already in use.';
    
    
    
    
    $query = "INSERT INTO `accounts` (`login`,`password`,`lastip`, `email`, `flags`) VALUES ('".mysql_real_escape_string($_POST['login'])."', '".mysql_real_escape_string($_POST['password'][0])."', '".$_SERVER['REMOTE_ADDR']."', '".mysql_real_escape_string($_POST['email'])."', '8')";
        $res = mysql_query($query, $db);
        if (!$res) return $error[] = 'Database: '.mysql_error();
    $msg[] = 'The Account <span style="color:#00FF00"><strong>'.htmlentities($_POS T['login']).'</strong></span> has been created!';
        $msg[] = 'In about 1-2 minutes you will be able to log in.';
        $msg[] = 'In ca. 1-2 minuten kannst du dich einloggen.';
        mysql_close($db);
        return true;
    }
    {
    addUser();
    }
    
    
    ?>
    
    
    
    
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <title>Account Creation Page</title>
        <meta http-equiv="Pragma" content="no-cache"/>
        <meta http-equiv="Cache-Control" content="no-cache"/>
        <style type="text/css" media="screen">@import url(server_stats.css);</style>
        <!--[if lt IE 7.]>
        <script defer type="text/javascript" src="pngfix.js"></script>
        <![endif]-->
    </head>
    <body>
        <center>
        <div class="logo"></div>
        <div style="width:300px">
            <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
            <table width="100%" border="0" cellspacing="1" cellpadding="3">
                <tr class="head"><th colspan="2">Account Creation</th></tr>
                <tr>
    <th>Username: </th><td align="center"><input class="button" type="text" name="login" size="30" maxlength="16"/></td>
                </tr>
                <tr>
    <th>Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
                </tr>
                <tr>
    <th>Retype Password: </th><td align="center"><input class="button" type="password" name="password[]" size="30" maxlength="16"/></td>
                </tr>
                <tr>
    <th>E-mail: </th><td align="center"><input class="button" type="text" name="email" size="30" maxlength="30"/></td>
                </tr>
            </table>
            <input type="button" class="button" value="Back" onClick="history.go(-1)" />
            <input type="submit" value="Create" class="button"/>
            </form>
    
    
            <?php
            if (!empty($error)){
     echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td class="error" align="center">';
                foreach($error as $text)
                    echo $text.'</br>';
                echo '</td></tr></table>';
            };
            if (!empty($msg)){
                echo '<table width="100%" border="0" cellspacing="1" cellpadding="3"><tr><td align="center">';
                foreach($msg as $text)
                    echo $text.'</br>';
                echo '</td></tr></table>';
                exit();
            };
            ?>
    
    
        </div>
        <div class="footer">
            Original design by mmorpg4free.com, styling by NoriaC
        </div>
        </center>
    </body>
    </html>
    Alles anzeigen

    Habs zwar nicht getestet aber müsste so funktionieren

    lg Knackwurst

  • Tota
    2
    Tota
    Mitglied
    Punkte
    15
    Beiträge
    2
    • 29. September 2007 um 18:04
    • #3

    erstmal danke schön für diese schnelle antwort

    habe es gerade getestet aber er gibt mir

    Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\stats\register.php on line 49

    also da funzt noch irgend wat net so ganz *gg*

    sorry bin nicht so gut bewandert in sachen php scripting desshalb dachte ich ja auch ich such mir mal im forum hilfe
    liegts vllt darann das ich nciht alle dazugehörigen dateien mit gepostet habe?


    EDIT:
    habe jetzt mal nur deinen code
    in meins engefügt

    Zitat

    //
    // Abfrage ob EMail bekannt
    //

    $query = "SELECT `email` FROM `accounts` WHERE `login` = '".mysql_real_escape_string($_POST['login'])."'";
    $res = mysql_query($query, $db);
    if (!$res) return $error[] = 'Database: '.mysql_error();
    if (mysql_num_rows($res) > 0) return $error[] = 'E-Mail already in use.';

    nun funktioniert zwar wieder die seite aber ich kann trozdem die selbe email doppelt benutzen XD

  • tomi1986
    1
    tomi1986
    Gast
    • 29. September 2007 um 19:18
    • #4
    Zitat von Tota

    erstmal danke schön für diese schnelle antwort

    habe es gerade getestet aber er gibt mir

    Parse error: syntax error, unexpected T_STRING in C:\xampp\htdocs\stats\register.php on line 49

    also da funzt noch irgend wat net so ganz *gg*

    sorry bin nicht so gut bewandert in sachen php scripting desshalb dachte ich ja auch ich such mir mal im forum hilfe
    liegts vllt darann das ich nciht alle dazugehörigen dateien mit gepostet habe?


    EDIT:
    habe jetzt mal nur deinen code
    in meins engefügt


    nun funktioniert zwar wieder die seite aber ich kann trozdem die selbe email doppelt benutzen XD

    Alles anzeigen

    da fehlt dir in zeile 49 ein "

  • knackwurst
    2
    knackwurst
    Mitglied
    Punkte
    25
    Beiträge
    5
    • 30. September 2007 um 11:13
    • #5

    Sorry bin grad draufgekommen das ich ne falsche sql anweisung verwendet habe

    Code
    //
    // Abfrage ob EMail bekannt
    //
    
    
          $query = "SELECT `email` FROM `accounts` WHERE `email` = '".mysql_real_escape_string($_POST['email'])."'";
           $res = mysql_query($query, $db);
           if (!$res) return $error[] = 'Database: '.mysql_error();
           if (mysql_num_rows($res) > 0) return $error[] = 'E-Mail already in use.';

    Probier das mal aus.

  • jimbeam
    11
    jimbeam
    Mitglied
    Reaktionen
    11
    Punkte
    1.201
    Beiträge
    204
    • 1. Oktober 2007 um 12:25
    • #6

    Mach in der DB auf die Spalte mit der Mail-Adresse bzw. IP eine Unique Constraint, je nach dem was eindeutig sein muss! Dann hättest du das Problem auch gelöst, und wie ich meine, sehr viel einfacher!

    Paddys, hm.....

  • Paulchen
    1
    Paulchen
    Gast
    • 1. Oktober 2007 um 13:21
    • #7
    Zitat von jimbeam

    Mach in der DB auf die Spalte mit der Mail-Adresse bzw. IP eine Unique Constraint, je nach dem was eindeutig sein muss!

    Angesichts dynamisch vergebener IP-Adressen macht ein Unique Constraint für die IP-Adresse wenig Sinn.

  • jimbeam
    11
    jimbeam
    Mitglied
    Reaktionen
    11
    Punkte
    1.201
    Beiträge
    204
    • 1. Oktober 2007 um 16:37
    • #8

    Ok, aber für die e-Mail-Adresse reicht ein Unique Constraint!

    Auf die IP würde ich gar nicht abfragen bei der Registrierung!

    Paddys, hm.....

  • Maximilian Rupp 27. Dezember 2024 um 12:04

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung

  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  • Deutsch
  • English
Zitat speichern