PhP Login Help
Blitz3D Forums/Blitz3D Programming/PhP Login Help
| ||
Hi I've got this function...
Function LogIn()
name$ = Input("Enter name : ")
pass$ = Input("Enter password : ")
name = Replace(name," ","_")
pass = Replace(pass," ","_")
name = name + "|"
tcp = OpenTCPStream("alloidgames.com", 80)
If tcp Then
WriteLine tcp, "GET /PHPFILE?type=2&name=" + name$ + "&pass="+ pass + " HTTP/1.0"
WriteLine tcp, "HOST: alloidgames.com"
WriteLine tcp, ""
EndIf
CloseTCPStream tcp
tcp = OpenTCPStream("www.alloidgames.com",80)
If tcp Then
WriteLine tcp,"GET http://www.alloidgames.com/TEMPORARY HASH FILE"
WriteLine tcp,Chr$(10)
If Not Eof(tcp) Then
Repeat
lastline$ = ReadLine$(tcp)
Until Eof(tcp)
End If
End If
CloseTCPStream tcp
tcp = OpenTCPStream("www.alloidgames.com",80)
If tcp Then
WriteLine tcp,"GET http://www.alloidgames.com/DATABASE FILE"
WriteLine tcp,Chr$(10)
If Not Eof(tcp) Then
Repeat
curline$ = ReadLine$(tcp)
If curline$ = lastline$ Then
Print "Success"
WaitKey
Exit
End If
Until Eof(tcp)
End If
End If
CloseTCPStream tcp
WaitKey
End Function
And here's my php script... [code] <html> <body> <?php $reqType = $_REQUEST['type']; $newString = $_REQUEST['name']; $newPass = $_REQUEST['pass']; $newPass = md5($newPass); if($reqType == "2") $fp = fopen( "TEMPORARY HASH FILE" , "a+" ); //Holds the temporary hashed info to check against database elseif($reqType == "1") //Open data file to add new act info $fp = fopen( "DATABASE FILE.txt" , "a+" ); fwrite( $fp, $newString . $newPass); fwrite( $fp, "\n"); fclose($fp) ?> </body> </html> [code] The way it works, is the user first makes an account, and their name and password get sent to the php file, which hashes it and sends it to the database file. Then the user can login, and when they do that they enter their name and password. These then get sent to the php file with reqType of 2, meaning that they get hashed and sent to the temporary data file. Then Blitz opens the temp one, and ideally reads the most recent entry (this is where I start having problems). Then it opens the permanent database file, and cycles through each entry to see if it matches the temporary one. The problem seems to come with reading the temporary info, because it almost never comes up equal! Any help would be, as always, greatly appreciated. |
| ||
maybe the problem's somewhere here:If Not Eof(tcp) Then Repeat lastline$ = ReadLine$(tcp) Until Eof(tcp) End If servers seem to add a line after every line, containing the string length, if I recall correctly. Maybe you should try something like this înstead: If Not Eof(tcp) Then lastline$ = ReadLine$(tcp) Repeat dummy$ = ReadLine$(tcp) Until Eof(tcp) End If |
| ||
| But then it only reads the first line of the stream every time it is opened? Doesn't it need to repeat to get the most recent info every time? Sorry for the delay-for-reply/inability to test it for myself, I just got a new computer and have been busy transfering everything and setting it up and stuff. |