Problem mit MySQL Register (über Tool)

09/11/2014 00:07 BlueBasHeR#1
hey ich hab nen problem mit meiner Datenbank ...
und zwar ist es so: ich habe ein Tool mit Autoit gebaut und dies funktioniert zu 100% das problem ist halt nr wenn ich einen Neuen benutzer registriere dann haut der in der Datenbank: Benutzername: " " & Passwort: "(Hashed Code)"

ha es mit 10 benutzernamen versucht das ganze läuft nicht auf der gleichen Homepage ist ja eig auch egal MySQL & FTP sind 2 verschiedene sachen ..
also mein Problem ist wenn dies eingetragen wurde zeigt mein Tool mir an "Benutzer existiert bereits!"

wie kann ich das lösen?

PHP Code:
<?php
// PHP-Code Beginn

require_once('db_config.php');

mysql_connect($host$user$pass);
// Öffnet eine Verbindung zu dem MySql-Server

mysql_select_db($dbase);
// Wählt die Datenbank $dbase aus

$Benutzername mysql_real_escape_string($HTTP_GET_VARS['benutzername']);

$Passwort md5(mysql_real_escape_string($HTTP_GET_VARS['passwort']));


if (
$Benutzername != "" || $Passwort != "")
{
    
$result_select mysql_query("SELECT * FROM User_Daten WHERE Benutzername='" $Benutzername "'");

    
$row mysql_fetch_row($result_select);

    if (!
$row)
    {
        
$result_insert mysql_query("INSERT INTO User_Daten (`Benutzername`, `Passwort`) VALUES ('$Benutzername', '$Passwort')");

        if (
$result_insert)

        {
            echo 
1;

            exit;
        }
        else

        {
            echo 
0;

            exit;
        }
    }
    else

    {
        echo 
2;

        exit;
    }
}
else

{
    echo 
3;

    exit;
}
?>
echo 1; usw sind für mein tool damit es so übermittelt wird also z.b. wenn login.php 1 ausgibt dann erfolgreich registiert

hoffe jemand kann mir helfen! danke im vorraus
09/11/2014 08:12 Syc#2
1. Hör auf die ganzen veralteten Sachen zu benutzen. (z.b. http_get_vars (lieber $_GET oder am besten filter_input) genau wie mysql_connect usw. (lieber pdo benutzen))

2. funktioniert das script direkt im browser (ohne "tool")?
kannst ja mal als erstes prüfen, ob die der Benutzernamen und das Passwort korrekt übergeben werden.
09/11/2014 09:32 BlueBasHeR#3
sorry aber ich kann MySQL & Php nicht so gut höhstens 25 % ich bin neugierig ich hab mir hilfe gesucht und dann wurde es mir so erklärt und ich habs dann mit hilfe zusammen gebaut..

also es gibt die config.php da sind alle daten gespeichert, Host, User & passwort.. und in der register.php soll er ja zur datenband 'abc' verbinden und Benutzername & passwort einschreiben... in der Login.pho wird nach dem Benutzernamen gesucht wenn dieser existiert muss das passwort such passen usw.. wenn dies der fall ist gib eine 1 aus.. und diese 3 dateien muss ich auf meiner Webspace hochladen... das tool ruft die daten auf und gibt je nachdem was register sagt z.b. '2' und das tool übernimmt es und sagt mir dann Benutzer ist bereits registriert

denke aber eher die register.php ist fehlerhaft weil: Das funkt so
beispiel: [Only registered and activated users can see links. Click Here To Register...]
das ruft das tool auf natürlich wird über das tool der Benutzername in der Inputbox weiter gegeben (hab ich getestet mit messageboxen)

also ich denke mal da ist ein fehler im script ich gucke jetzt nochmal nach wahrscheinlich fehler in der variable oder so
09/11/2014 10:58 Mikesch01#4
Hi,

Registrierungs-Daten über GET-Parameter zu schicken ist sehr ungeschickt, da diese dann im Klartext jederzeit sichtbar sind.

Deshalb schickt man diese normalerweise per POST.

D.h. anstatt $_GET (bzw. der total veralteten Form $HTTP_GET_VARS) sollte man $_POST verwenden (im PHP)
und anstatt <form method="get"> nun <form method="post"> (im HTML)

Zudem hat deine Prüfung einen kleinen Fehler.
Code:
if ($Benutzername != "" || $Passwort != "")
Hier sagst du, dass nur ein Wert ausgefüllt sein muss. Lies sich so:
WENN $Benutzername NICHT LEER IST ODER $Passwort NICHT LEER IST, DANN...
d.h. wenn ein Wert ausgefüllt wird, dann kann schon weitergemacht werden. Ich denke mal, aber es sollen beide einen Wert besitzen.

Daher brauchst du anstatt || nun &&
09/11/2014 12:52 BlueBasHeR#5
Die 3 Dateien werden ja nur in meine webspace gestellt die können dann nur herausgefunden werden wenn man wie nach meinem beispiel mit .../login.php?Benutz... usw vorgeht.. es sollte eig nur eine methode sein das man sich mit meinem Tool registrieren kann und einloggen etc..

vielen dank :) ich werde es jetzt ausprobieren

EDIT: Funktioniert nicht wen es || ist dann erstellt es einen eintrag in der Datenbank und bei
&& Sagt mir mein Tool das Benutzer oder Passwort falsch ist, und dies kommt nur wenn nichts "eingegeben" wurde
09/11/2014 19:23 Mikesch01#6
Quote:
Originally Posted by BlueBasHeR View Post
EDIT: Funktioniert nicht wen es || ist dann erstellt es einen eintrag in der Datenbank und bei
&& Sagt mir mein Tool das Benutzer oder Passwort falsch ist, und dies kommt nur wenn nichts "eingegeben" wurde
Ist das nicht der Sinn? Du sollst doch Benutzername + PW IMMER ausfüllen müssen, sonst macht die Registrierung bei halben Daten ja keinen Sinn.
09/11/2014 19:29 BlueBasHeR#7
Ja aber das Funkt nicht mehr hab es ausprobiert, indem ich eine 2. Registrierungs datei erstellt habe & alles was mit dem passwort zu tun hatte gelöscht also das man nur mit dem benutzernamen "einloggt" und da geht es auch nicht...
09/11/2014 21:32 Mikesch01#8
Nochmals: Man soll sich doch nicht nur mit dem Benutzername oder dem Passwort anmelden oder sehe ich das falsch?

Es macht doch nur in der Kombination von beiden einen Sinn.

Gruß
09/12/2014 01:08 mydoom#9
Quote:
Originally Posted by Mikesch01 View Post
Hi,

Registrierungs-Daten über GET-Parameter zu schicken ist sehr ungeschickt, da diese dann im Klartext jederzeit sichtbar sind.

Deshalb schickt man diese normalerweise per POST.
Solange kein HTTPS o.Ä. verwendet wird, werden sowohl GET- als auch POST-Parameter als Klartext übertragen. Üblicherweise sollen GET-Anfragen Ressourcen abrufen, aber im Gegensatz zu POST-Requests keine Änderung bewirken. Außerdem haben Anfragen via POST eine wesentlich größere Kapazität für übertragene Parameter.
09/12/2014 04:16 Black Tiger ツ#10
Wenn wir gerade bei veraltet sind, informiere dich mal über MySQL^^
09/12/2014 11:30 BlueBasHeR#11
Quote:
Originally Posted by Mikesch01 View Post
Nochmals: Man soll sich doch nicht nur mit dem Benutzername oder dem Passwort anmelden oder sehe ich das falsch?

Es macht doch nur in der Kombination von beiden einen Sinn.

Gruß
Ja sicher soll man sich mit beiden anmelden.. Wie gesagt hab die Datei erstellt und das Problem ist der Benutzername wird nicht weiter gegeben... Deswegen war es ja auch ein 'Test' um zu gucken ob nur der Benutzername allein weitergegeben wird

Kann es vllt an der Datenbank liegen? Bei Zymic.com kann ich nicht in die DB da steht dann immer fehlgeschlagen..
Und bei Db4free.net speichert es den Benutzer nicht..

Ich hatte es eig mit Funpic oder Ohost da hat es ja geklappt.... Hab nichts daran geändert... Aber diese hoster sind ja jetzt beide down...
09/12/2014 15:42 Mikesch01#12
Wie schaut denn nun dein aktueller PHP Code aus + HTML?