Frage zu PHP & MYSQL Datenbank abfrage VIP oder nicht

02/25/2013 16:53 HisOwnFeet#1
Ich möchte ein Loginsystem mit VisualBasic, PHP & MySQL erstellen.
Das VisualBasic-Programm kann eine Registrierung abschließen & sich einloggen.

Die Datenbank wurde schon erstellt und soweit funktioniert alles.


Registrierungsscript:
Code:
<?php
// Skript geschrieben am 01.08.2009 von Neo

// Verbindungsinformationen zur Datenbank
$dbhost = "localhost";
$dbname = "XXXXXXX";
$dbuser = "XXXXXXXX";
$dbpass = "XXXXXX";

// Variablen festlegen
$email = $_GET['email'];
$username = $_GET['user'];
$password = $_GET['password'];

// Verbindung zur MySQL Datenbank herstellen und Daten überprüfen und eintragen
mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
$verb = mysql_select_db($dbname);
if ($verb)
{
    echo("Verbindung zu Datenbank aufgebaut!");
    if ($email == "" or $username == "" or $password == "")
        {
        if ($email == "")
            echo("<br>Errorcode: <b>2</b>");
        
        if ($username == "")
            echo("<br>Errorcode: <b>3</b>");
        
        if ($password == "")
            echo("<br>Errorcode: <b>4</b>");
        }
    else
        {
            $abfragen_email = "SELECT email FROM xxxxxxxxxxx WHERE email='$email'";
            $abfragen_user = "SELECT username FROM xxxxxxxxxx WHERE username='$username'";
            $ergebnis_email = mysql_query($abfragen_email);            
            $ergebnis_user = mysql_query($abfragen_user);
            if (mysql_num_rows($ergebnis_email) > 0 or mysql_num_rows($ergebnis_user) > 0)
            {
                echo("<br>Errorcode: <b>1</b><br>Username und/oder E-Mail Adresse existiert bereits");
            }
            else
            {
                $sql = "INSERT INTO ".
                "xxxxxxxxxxx (username, password, email) ".
                "VALUES ('".
                $username."', '".
                $password."', '".
                $email."')";
                    
                $eintrag = mysql_query($sql);
                if ($eintrag)
                    {echo('<br>FINISHED');}
                else
                    {die("<br>Errorcode: <b>5</b>");}
            }    
        }
}
else
    {
        die('<br>Errorcode: <b>6</b>');
    }
    
mysql_close();
?>
Loginscript:
Code:
<?php
// Skript erstellt von Neo am 14.01.2010


// Verbindungsinformationen zur Datenbank
$dbhost = "localhost";
$dbname = "XXXXXXXX";
$dbuser = "XXXXXXXXX";
$dbpass = "XXXXXXXX";

$user = $_GET['username'];
$pass = $_GET['password'];
$email = $_GET['email'];

mysql_connect($dbhost, $dbuser, $dbpass)or die("Could not connect: ".mysql_error());
$verb = mysql_select_db($dbname);

if ($verb)
{
        $sql = "SELECT * FROM xxxxxxxxxxx WHERE username='".$user."'"; //Test des Usernames
    $quer = mysql_query($sql) or die(mysql_error());
    $num = mysql_num_rows($quer);
    if ($num == 0)
    {
            echo("User does not exist");
            exit();
    }
    else
    {
             $sql = "SELECT * FROM xxxxxxxxxxxxxxx WHERE password='".$pass."'"; //Test des Passwortes
    $quer = mysql_query($sql) or die(mysql_error());
    $num = mysql_num_rows($quer);
    if ($num == 0)
            {
                  echo("failed");
            }

    else
            {
                 echo("success");
            }

    }
}

Ich möchte dass in der MYSQL-Datenbank einen Spalt für VIP gibt.

Der Wert von dem VIP Spalt ist bei jedem neu registrierten Benutzer "0".

Ich möchte selbst den Wert in der Datenbank auf "1" ändern.


Beim einloggen soll geprüft werden ob der Benutzer VIP (1) ist, wenn JA dann soll die nachricht an das programm, nicht nur "success" sein, sondern "successvip" . Somit würde es ein Adminpanel im Programm geben können.

Ich kenne mich leider nicht mit PHP aus, danke für die Hilfe!
02/25/2013 17:35 reCougar#2
Erstell dir nen query mit Select. Dann einfach vielleicht per num_rows abfragen
02/25/2013 17:55 .Marcel'#3
empty() !
02/25/2013 18:02 reCougar#4
Aja und einen C&P Code kannste vergessen.
02/27/2013 08:08 Hiris#5
mach ein fetch object anstatt num rows, pack dann in die erste if abfrage nen test ob der benutzername größer ans NULL ist und wenn das erfolgreich ist gibts nen test ob $object->vip == 1 ist, wenn true gibst halt nen succesvip oder sonst was aus, wenn nicht lässt du es sein... also effektiv im code:
PHP Code:
    $sql "SELECT * FROM xxxxxxxxxxxxxxx WHERE password='".$pass."'"//Test des Passwortes
    
$quer mysql_query($sql) or die(mysql_error());
    
$theEVILmasterOBJECT mysql_fetch_object($quer);
    if (
$theEVILmasterOBJECT->NUTZERNAMESPALTEXXX NULL)
    {
        if (
$theEVILmasterOBJECT->VIPRANDOMSTUFF == 1)
        {
            echo(
"succesvip");
        }
        else
        {
            echo(
"succes");
        }
    }

    else
    {
        echo(
"failed");
    }

    }

02/27/2013 10:49 Sedrika#6
Dein db ist injectable, wenn du nichts escapest.

Ich würde beim Login abfragen, wie viele Zeilen beim Login betroffen sind.