Informationen von PHP zu BB senden?
Übersicht

bruce85Betreff: Informationen von PHP zu BB senden? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Hallo,
also ich arbeite grad an einem Programm indem man sich einloggen muss, wenn man auf einloggen klickt, dann soll geprüft werden, ob die Daten in der MySQL Datenbank existieren, also Nick + Password, dass habe ich ja per PHP Script gelößt. Aber ich weiss net wie ich es hinbekomme, das Blitz Basic dann eine Meldung ausgibt, wenn diese Daten richtig sind. Hier mal den PHP Script von mir: Code: [AUSKLAPPEN] <?PHP
$db_host = "**********"; $db_name = "**********"; $db_user = "**********"; $db_pw = "**********"; @mysql_connect($db_host, $db_user, $db_pw) or die ("0"); @mysql_select_db($db_name) or die ("1"); // abfrage der Daten $nick=$_GET["nick"]; $password=md5($_GET["password"]); $check_nickname = mysql_fetch_row(mysql_query("SELECT * FROM eintraege WHERE nick='$nick' AND password='$password'")); if($check_nickname) { echo "<font face='Arial' color='008000'>Alles OK!</font>"; } else { echo "<font face='Arial' color='FF0000'>Nickname oder Passwort ist falsch!</font>"; } ?> und hier den BB Code dazu: Code: [AUSKLAPPEN] If RectsOverlap(MouseX(),MouseY(),1,1,356,259,82,16) Then
If MouseHit(1) And MouseDown(1) Then stream=OpenTCPStream("test.cn.funpic.de",80) If stream=0 Then Print "konnte nicht verbinden" WriteLine stream, "GET /login.php nick="+nick$+"&password="+password$+" HTTP/1.1" WriteLine stream, "HOST: test.cn.funpic.de" WriteLine stream, "" While Not Eof(stream) DebugLog(ReadLine(stream)) Wend CloseTCPStream(stream) EndIf EndIf und dann soll in BB eine meldung ausgegeben werden, ob diese Daten korrekt sind. Ich weiss nur wie es in PHP geht, hab ich ja oben schon gepostet, aber wie überprüfe ich über BB, ob die daten korrekt sind? Vielen Dank schonmal. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
Vertex |
![]() Antworten mit Zitat ![]() |
---|---|---|
Dir ist aber schon klar, dass du mit PHP nicht gezwungen bist, HTML auszugeben?
Auch wenn es nicht zur Debatte steht: Code: [AUSKLAPPEN] "<font face='Arial' color='008000'>Alles OK!</font>
Den Font-Tag bitte nie wieder einsetzen ^^ Es ist quatsch per HTML die Ausgabe zu führen, da du einen HTML Parser benötigt. Riesen Sicherheitslücke: Der Nickname wird ohne Prüfung in den SQL Query eingeschleust. Hier mal ein Auszug aus meinem Server: Code: [AUSKLAPPEN] class cCheck
{ // ... const ERR_INVALIDEMAIL = "1005"; const ERR_INVALIDNAME = "1006"; const ERR_INVALIDDESCRIPTION = "1007"; // ... // ... // Prüft Namen static function Name($VarName, &$Value, $MinLength, $MaxLength) { if(!isset($Value) || !ereg("^([0-9a-zA-Z_-]{".$MinLength.",".$MaxLength."})$", $Value)) { cMeta::Error(self::ERR_INVALIDNAME." ".$VarName); return false; } return true; } // .. } Mit dieser cCheck Klasse prüfe ich alle Parameter bevor ich eine Verbindung zum MySQL Server herstelle. Weiterhin solltest du die POST Methode benutzen. Damit schließt du schonmal einen gewissen Teil der Scriptkiddies aus. Auch das Überprüfen von User-Agents ist nochmal ein kleiner Sicherheitszuwachs. Wer es geschafft hat, sich eine kleine HTML Datei mit Formular zu erstellen, wird erstmal nicht so schnell wissen, wie man den User-Agent von Mozilla o. ä. in XYZ umbennent. Und nun zur Ausgabe: Mach dir eine standardisierte Ausgabe, die du auch leicht verarbeiten kannst. Ich beispielsweise mache es so: [fmmeta] Status("OK" oder "ERROR") [Variable=Wert] [Variable=Wert] [...] [/fmmeta] So schließe ich aus, dass vom Provider eingeschleuste Zwangswerbung mit ausgewertet wird. Ich werte nur die Zeilen zwischen [fmmeta] und [/fmmeta] aus. mfg olli |
||
vertex.dreamfall.at | GitHub |
bruce85 |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Danke Dir,
aber ich muss erst eine verbindung zu MySQL herstellen um zu prüfen ob dieser Name in der Datenbank existiert mit dem Passwort. Ich weiss das ich die HTML tags nicht brauche, aber ich habe das über die adressleiste getestet und wollte es farbisch darstellen. MfG Andreas |
||
AMD Athlon(tm) II X2 250, 8 GB DDR, MSI MSI 770-C45, GeForce GTS 250 |
![]() |
Jolinah |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo,
Zitat: aber ich muss erst eine verbindung zu MySQL herstellen um zu prüfen ob dieser Name in der Datenbank existiert mit dem Passwort.
Das hast du doch oben schon gemacht mit PHP? Jetzt musst du nur noch mit BB die Ausgabe von PHP lesen, ob das Login OK ist oder nicht. Du sendest (hier mit GET, aber POST wäre schon besser): Code: [AUSKLAPPEN] GET /login.php?nick=nickname&password=passwort HTTP/1.1
Host: test.cn.funpic.de Und kriegst als Antwort z.B.: Code: [AUSKLAPPEN] HTTP/1.1 200 OK
Content-Length: 2 (Länge des Inhalts) Content-Type: text/plain (Typ des Inhalts) OK (Das ist der Inhalt selber den du bei PHP mit echo ausgegeben hast) Dann kannst du je nach Inhalt in BB die gewünschte Meldung ausgeben. |
||
![]() |
wunderkind |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vertex hat Recht! Eingaben, welcher Art auch immer, müssen geprüft werden, bevor sie an die Datenbank weitergegeben werden! Dazu gehört eigentlich auch ein isset() oder wenigstens ein empty() . | ||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group