Beste cpers,
Ik heb me een tijd geleden aangemeld voor de api login van Gamecoll enkel lukt het mijn niet omdeze in mijn loginscript te verwerken nu is mijn vraag wie me er mee wil helpen.
Alvast bedankt
Zie hier onder de scripts
Login.php
PHP
<?php /* ------------------------- */
include("config.php");
if(isset($_POST['login'])) {
$dbres = mysql_query("SELECT * FROM `users` WHERE `login`='{$_POST['login']}' AND `pass`=MD5('{$_POST['pass']}')");
$num = mysql_num_rows($dbres);
if($num > 0) {
$naam = $_POST['login'];
$_POST['login'] = $naam;
$pass = $_POST['pass'];
$_POST['pass'] = $pass;
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
$_SESSION['IP'] = $_SERVER['REMOTE_ADDR'];
$dbres = mysql_query("SELECT *,UNIX_TIMESTAMP(`signup`) AS `signup` FROM `users` WHERE `login`='{$_SESSION['login']}'");
$_SESSION['data'] = mysql_fetch_object($dbres);
if($data->vakantie > 0){
header("Location: $sitelink/index2.php?vakantie");
exit;
}
/*if($data->vermoord > 0){
header("Location: inlogger.php?a=buycredits");
exit;
}*/
header("Location: inlogger.php?x={$_POST['login']}&pass={$_POST['pass']}");
}
else{
header("Location: $sitelink/index2.php?error");
}
}
else if($_GET['x'] == "logout") {
mysql_query("UPDATE `[users]` SET `online`='0000-00-00 00:00:00' WHERE `login`='{$data->login}'");
mysql_query("DELETE FROM `[online]` WHERE `login`='{$_COOKIE['login']}' AND `validate`='{$_COOKIE['validate']}' AND `IP`='{$_SERVER['REMOTE_ADDR']}'");
setcookie("login",'',time()-24*60*60,"/","");
setcookie("validate",'',time()-24*60*60,"/","");
session_destroy();
header("Location: $sitelink/index2.php");
}
/* ------------------------- */ ?>
Toon Meer
apilogin
PHP
<?php
//Algemene configuratie van je site
$sitecode = "geheim"; //Je unieke site code
$sitenaam = "World-of-maffia.nl"; //Enkel om aan je leden te tonen
$sitepass = "Geheim"; //Je unieke wachtwoord voor deze site om ons aan te spreken
$memberdbname = "users"; //De naam van je database die je leden bevat
$configfile = "config.php"; //Naam (en path) van je configuratie bestand - niet langer nodig
$thisfilename = "login.php"; //Naam van dit bestand
$aantalinlogseconden = "15"; //Hoeveel pogingen (+/- seconden) krijgen je leden voordat hun sessie vervalt
$dbhost="localhost";
$dbuser="Geheim";
$dbpass="Geheim";
$databasename="Geheim";
//Start van het script
ob_start();
session_start();
if(isset($_GET["type"]) && $_GET["type"]=="logincheck3" && isset($_GET["login"]) && isset($_GET["randcode"])){
//Het ip adres van onze antwoordserver opzoeken
$gcip2 = "http://gamecoll.com/api.php?type=gcip&sitecode=".urlencode($sitecode)."&sitepass=".urlencode($sitepass);
$gcip = file_get_contents($gcip2);
//Einde van het opzoeken van het ip van onze antwoordserver
if($_SERVER["REMOTE_ADDR"]!=$gcip){
echo "3";
exit;
}
//require_once($configfile); //include je configfile of maak zoals hieronder verbinding:
if(!(@mysql_connect($dbhost,$dbuser,$dbpass) && @mysql_select_db($databasename))) {
echo "Er is een fout opgetreden tijdens het verbinding maken met de database. Onze excuses voor het ongemak.";
exit;
}
$login=htmlspecialchars(addslashes($_GET["login"]));
$randcode2=htmlspecialchars(addslashes($_GET["randcode"]));
mysql_query("UPDATE apilogin SET canlogin='1',login='".$login."' WHERE randcode='".$randcode2."' LIMIT 1") or die('2'.mysql_error());
//echo '1'; //Sluit het venster van GameColl niet, laat de bezoeker het sluiten
echo "okclose"; //Sluit het GameColl venster vanzelf terug
exit;
}
//require_once($configfile); //include je configfile of maak zoals hieronder verbinding:
if(!(@mysql_connect($dbhost,$dbuser,$dbpass) && @mysql_select_db($databasename))) {
echo "Er is een fout opgetreden tijdens het verbinding maken met de database. Onze excuses voor het ongemak.";
exit;
}
if(!isset($_SESSION['randcode'])){
$randcode=rand(1,9999999999999999);
$_SESSION['randcode']=$randcode;
}else{
$randcode=$_SESSION['randcode'];
}
$domein='.'.$_SERVER[SERVER_NAME];
$domein = trim(str_replace("www.", "", $domein ));
if(isset($_GET['logout'])){ //start van het uitloggen
mysql_query("DELETE FROM apilogin WHERE login='" .$_COOKIE[c8393zrv_crime2]. "'");
mysql_query("DELETE FROM apilogin WHERE login='".$login."' OR `sessionid`='".session_id()."' OR `randcode`='".$randcode."' OR `ip`='".$_SERVER['REMOTE_ADDR']."'") or die("Ik kon de vorige sessies niet goed opkuisen. Is de tabel apilogin wel gemaakt in de database?".mysql_error());
//Zet hieronder wat je site moet doen als je uitgelogd wordt (cookies vernietigen, sessies vernietigen, ... ?)
setcookie("c8393zrv_crime2","", -1);
setcookie("hash","", -1);
//session
unset($_SESSION['login']);
unset($_SESSION['IP']);
unset($_SESSION['data']);
session_unset();
//destroy the session
session_destroy();
echo "<body style='margin: 0px; height:100%'>";
echo "<h3>Uitloggen › Uitgelogd</h3>";
echo "Je bent succesvol uitgelogd!";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=index.php\">";
exit;
} //einde van het uitloggen
//Controle of men niet al ingelogd is
if ($_COOKIE["c8393zrv_crime2"] != "" || $_COOKIE['hash'] != ""){
echo "<body style='margin: 0px; height:100%'>";
echo "<h3>Al ingelogd</h3>";
echo "Je bent al ingelogd, nog een keer inloggen is niet nodig.";
echo "<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=".$thisfilename."?logout\">";
exit;
}
//Einde van de al-ingelogd controle
if(isset($_GET['loginverification'])){
$randcode = htmlspecialchars(addslashes($_GET['loginverification']));
$sql=mysql_query("SELECT id,loginretry,canlogin,login FROM apilogin WHERE `randcode`='".$randcode."' AND sessionid='".session_id()
."' AND ip='".$_SERVER['REMOTE_ADDR']."' LIMIT 1 ");
if(mysql_num_rows($sql)==0){
mysql_query("DELETE FROM apilogin WHERE login='".$login."' OR `sessionid`='".session_id()."' OR `randcode`='".$randcode."' OR `ip`='".$_SERVER['REMOTE_ADDR']."'") or die("Ik kon de vorige sessies niet goed opkuisen. Is de tabel apilogin wel gemaakt in de database?".mysql_error());
mysql_query("INSERT INTO apilogin (login,date,loginretry,sessionid,ip,randcode) VALUES ('".$login."',NOW(),'".$aantalinlogseconden."','".session_id()
."','".$_SERVER['REMOTE_ADDR']."','".$randcode."')") or die(mysql_error());
$sql=mysql_query("SELECT id,loginretry,canlogin FROM apilogin WHERE randcode='".$randcode."' AND sessionid='".session_id()
."' AND ip='".$_SERVER['REMOTE_ADDR']."' LIMIT 1 ");
}else{
mysql_query("UPDATE apilogin SET loginretry=loginretry-'1' WHERE randcode='".$randcode."' AND sessionid='".session_id()
."' AND ip='".$_SERVER['REMOTE_ADDR']."' LIMIT 1 ");
$sql=mysql_query("SELECT id,loginretry,canlogin,login FROM apilogin WHERE `randcode`='".$randcode."' AND sessionid='".session_id()
."' AND ip='".$_SERVER['REMOTE_ADDR']."' LIMIT 1 ");
}
$logincheck=mysql_fetch_assoc($sql);
$login=$logincheck['login'];
if($logincheck['canlogin']=='1'){
//Je inloggegevens zijn ok!
$_SESSION['loginmislukt']++;
$dbres = mysql_query("SELECT `c8393zrv_crime2` FROM `".$memberdbname."` WHERE `c8393zrv_crime2`='".$login."' LIMIT 1") or die("FOUT : " . mysql_error());
$hieraantal = mysql_num_rows($dbres);
if($hieraantal == 0) {
// Het lid staat wel in GameColl db, maar niet in je eigen database
// Hieronder vragen we gegevens aan de GameColl server over uw nieuwste lid
$url2 = "http://gamecoll.com/api.php?".
"type=firstlogin&sitecode=".$sitecode."&sitepass=".$sitepass."&login=".urlencode($login);
$result2 = file_get_contents($url2);
$result2 = explode(",",$result2);
//Voeg het lid toe in je ledendatabase
mysql_query("INSERT INTO `".$memberdbname."` (`c8393zrv_crime2`, `crimedb`, `email`, `ip`, `activated`, `signup`) VALUES ('".$result2[0]."', '".$randcode."', '".$result2[1]."', '" . $_SERVER[REMOTE_ADDR] . "', '1', NOW())") or die("Gebruiker kan niet worden toegevoegd in je database, reden: <br>".mysql_error());
print '<tr><td class="mainTxt">Je nieuwe GameColl login is aangemaakt op '.$sitenaam.'!</tr></td>';
} //hieraantal=0
$dbres = mysql_query("SELECT `c8393zrv_crime2`,`crimedb` FROM `".$memberdbname."` WHERE `c8393zrv_crime2`='".$login."' LIMIT 1");
if(($list_lid = mysql_fetch_object($dbres))) {
//pass veranderd? pass= randcode
if($list_lid->crimedb!=$randcode){
mysql_query("UPDATE `".$memberdbname."` SET `crimedb`='".$randcode."' WHERE `c8393zrv_crime2`='" . $login . "' LIMIT 1");
$list_lid->crimedb=$randcode;
}
//Voorbeeldcode van wat er gedaan moet worden als ze worden ingelogd in je site (cookies en sessies zetten):
$_SESSION['login']=$list_lid->c8393zrv_crime2;
setcookie("c8393zrv_crime2", "$list_lid->c8393zrv_crime2", time() +604800);
setcookie("hash", "$list_lid->crimedb", time() +604800);
//Einde van de voorbeeldcode
echo "<h3>Ingelogd</h3>
Ingelogd als <b>$list_lid->c8393zrv_crime2</b>!
<META HTTP-EQUIV=\"REFRESH\" CONTENT=\"1; URL=index.php\">";
}
exit;
}
//Canlogin staat nog niet op 1
if($logincheck['loginretry']<='0' && $logincheck['canlogin']!='1'){
mysql_query("DELETE FROM apilogin WHERE login='".$login."' OR `sessionid`='".session_id()."' OR `randcode`='".$randcode."' OR `ip`='".$_SERVER['REMOTE_ADDR']."'") or die("Ik kon de vorige sessies niet goed opkuisen. Is de tabel apilogin wel gemaakt in de database?".mysql_error());
session_unset();
session_destroy();
unset($_GET);
unset($_POST);
echo "<a href='".$thisfilename."'>Uw inlog sessie is verlopen.<br>
Ga terug en probeer het opnieuw.</a>";
exit;
}
echo "Bezig met wachten tot je ingelogd bent...<br>Aantal seconden over: ".$logincheck['loginretry'].".<br>
<script language=\"javascript\">setTimeout('self.window.location.reload()',4000)</script>";
} else {
if(!isset($_SESSION['loginrequestsent']) || $logincheck['loginretry']==$aantalinlogseconden){
$sql=mysql_query("SELECT id FROM apilogin WHERE `randcode`='".$randcode."' AND sessionid='".session_id()."' AND ip='".$_SERVER['REMOTE_ADDR']."' LIMIT 1 ");
if(mysql_num_rows($sql)==0){
mysql_query("DELETE FROM apilogin WHERE login='".$login."' OR `sessionid`='".session_id()."' OR `randcode`='".$randcode."' OR `ip`='".$_SERVER['REMOTE_ADDR']."'") or die("Ik kon de vorige sessies niet goed opkuisen. Is de tabel apilogin wel gemaakt in de database?".mysql_error());
mysql_query("INSERT INTO apilogin (login,date,loginretry,sessionid,ip,randcode) VALUES ('".$login."',NOW(),'".$aantalinlogseconden."','".session_id()."','".$_SERVER['REMOTE_ADDR']."','".$randcode."')") or die(mysql_error());
}
echo '
<script type="text/javascript">
<!--
function open_window(popup)
{
var height_popup=620;
var H = (screen.height - height_popup) / 2;
var width_popup=500;
var L = (screen.width - width_popup) / 2;
pop_up = window.open(popup,"popup","status=no,scrollbars=no,resizable=no,height="+height_popup+",width="+width_popup+",top="+H+",left="+L);
}
//-->
</script>
</head>';
echo "<body OnLoad=\"open_window('http://gamecoll.com/popup.php?p=api&type=logincheck1&sitecode=".$sitecode."&randcode=".$randcode."');\">
<a href=\"".$thisfilename."?loginverification=".$randcode."\" target=\"_self\">De pop-up heeft mij ingelogd, ga nu verder.</a><br><br>";
$_SESSION['loginrequestsent']=1;
}
echo "
<SCRIPT>
function openTarget (form, features, windowName) {
if (!windowName)
windowName = 'formTarget' + (new Date().getTime());
form.target = windowName;
open ('', windowName, features);
window.location='".$thisfilename."?loginverification=' + formname.randcode.value;
}
</SCRIPT>
<form name='formname' action=\"http://gamecoll.com/popup.php?p=api\" method=\"post\" ONSUBMIT=\"openTarget(this, 'width=550,height=500,resizable=1,scrollbars=1'); return true;\" target=\"newpopup\" onSubmit=\"this.submit.disabled='true'\" style='width:100%; text-align:center;'>
<input type='hidden' name='type' value='logincheck1'>
<input type='hidden' name='sitecode' value='".$sitecode."'>
<input type='hidden' name='randcode' value='".$randcode."'>
<input type=\"submit\" name=\"inloggen\" value=\"Inlog pop-up tonen\" style=\"width: 150px; border:2px; background-image: url(http://gamecoll.com/favicon.ico); background-repeat: no-repeat;\"></form>";
}
?>
Toon Meer