ik heb getest op mijn server en ook localhost (nu werk ik even daarop, dat is minder werk om up te loaden enz, zeg maar als je het wilt zien)
kadertje
<div id="useroverview">
<?php
if(!isset($_SESSION['dispname'])){
?>
<img src="<?php echo $serverbase.$defpath; ?>img/sample-gravatar.jpg" alt="avatar" width="50" height="50">
<?php
echo $langa['gastbericht']."<br><a class=\"rpxnow\" onclick=\"return false;\" href=\"https://empees-website.rpxnow.com/openid/v2/signin?token_url=".$serverbase.$defpath."login.php?destpage=".$includefilesort."\">".$langa['registreer'].$langa['gastbericht2'].$langa['aanmelden']."</a>";
}else{
?>
<img src="<?php echo $_SESSION['photo']; ?>" alt="avatar" width="50" height="50"><br><br>
<?php
echo "<a href=\"index.php?action=logout\">".$langa['afmelden']."</a>";
}
?>
</div>
login.php
<?php
$mysqlverbonden="nee";
include_once("./system/config.php");
include_once("./system/auth.php");
$ignorevar=0;
if(isset($_COOKIE['empeeslang'])){
if($_COOKIE['empeeslang']=="nl" or $_COOKIE['empeeslang']=="en"){
$lang=$_COOKIE['empeeslang'];
}}else{
$lang="en";
}
if(isset($_GET['lang'])){
if($_GET['lang']=="nl" || $_GET['lang']=="en"){
$newlang=$_GET['lang'];
}else{
$ignorevar=1;
$newlang="en";
}
if($newlang!=$lang && !$ignorevar){
if($newlang=="nl" OR $newlang=="en"){
$lang=$newlang;
}}}
setcookie("empeeslang", $lang, time()+16070400);
$langfile=$lang.".php";
include_once("./system/".$langfile);
include_once("./system/functions.php");
if(!mysql_connect($db['server'],$db['user'],$db['pass'])){
die(foutverwerking("Could not connect to database server"));
}else{
if(!mysql_select_db($db['db'])){
die(foutverwerking("Database could not be opened"));
}else{
$mysqlverbonden="ja";
}
}
if(isset($_GET['step']) && isset($_GET['destpage'])){
if($_GET['step'] == 3){
setcookie("empeesuser", $_SESSION['userid']."and".$_SESSION['usercode'], time()+16070400);
}}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Created on: 25/08/2009 -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>empees homepage</title>
<meta name="description" content="the official website of empees">
<meta name="keywords" content="empees, music, website, rock, alternative">
<meta name="author" content="[email protected]">
<meta name="generator" content="AceHTML 6 Pro">
<link rel="stylesheet" type="text/css" href="<?php echo $serverbase.$defpath; ?>reset.css" media="screen">
<link rel="stylesheet" type="text/css" href="<?php echo $serverbase.$defpath; ?>style.css" media="screen">
<!--[if lte IE 7]><link rel="stylesheet" type="text/css" href="<?php echo $serverbase.$defpath; ?>ie_fixes.css" media="screen"><![endif]-->
<script language="JavaScript" type="text/javascript">
function checkform(form){
if(form.dispname.value == "" || form.dispname.value == null){
alert( "<?php echo $langa['submit2l']; ?>" );
form.dispname.focus();
return false;
}else if(form.email.value == "" || form.email.value == null){
alert( "<?php echo $langa['submit2l']; ?>" );
form.email.focus();
return false;
}else if((form.email.value.indexOf(".") < 2) || (form.email.value.indexOf("@") < 0)){
alert( "<?php echo $langa['submit2l']; ?>" );
form.email.focus();
return false;
}else{
return true;
}
}
</script>
</head>
<body>
<div id="paper_left">
<div id="paper_right">
<div id="layout_wrapper">
<div id="layout_container">
<div id="layout_content">
<div id="header_image">
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" width="716" height="300" id="slidesimple">
<param name="movie" value="<?php echo $serverbase.$defpath; ?>slidesimple.swf?xmlUrl=<?php echo $serverbase.$defpath; ?>topslide.php">
<param name="loop" value="false">
<param name="menu" value="false">
<param name="quality" value="high">
<param name="bgcolor" value="#000000">
<embed src="<?php echo $serverbase.$defpath; ?>slidesimple.swf?xmlUrl=<?php echo $serverbase.$defpath; ?>topslide.php" loop="false" menu="false" quality="high" bgcolor="#000000" width="716" height="300" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer">
</embed>
</object>
</div>
<div id="main">
<?php
if(isset($_GET['step']) && isset($_POST['dispname'])){
$result1 = mysql_query("SELECT * FROM `users` WHERE `dispname` = '".beveiliginput($_POST['dispname'])."';") or foutverwerking(mysql_error());
$number = mysql_num_rows($result1);
if($number > 0){
echo "<a href=\"javascript:history.go(-1);\">".$langa['username_exists']."</a>";
}else{
if($_GET['step'] != 2){
echo foutverwerking("Wrong paramaters");
}elseif(!filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
echo "<a href=\"javascript:history.go(-1);\">".$langa['submit3l']."</a>";
}elseif(!empty($_POST['photo']) && !filter_var($_POST['photo'], FILTER_VALIDATE_URL)){
echo "<a href=\"javascript:history.go(-1);\">".$langa['submit4l']."</a>";
}else{
$provider = beveiliginput($_POST['provider']);
$identifier = beveiliginput($_POST['identifier']);
$destination = beveiliginput($_GET['destpage']);
$dispname = beveiliginput($_POST['dispname']);
$email = beveiliginput($_POST['email']);
$country = beveiliginput($_POST['country']);
$zip = "";
$city = "";
$street = "";
$lastname = "";
$firstname = "";
if(isset($_POST['zip'])){
$zip = beveiliginput($_POST['zip']);
}
if(isset($_POST['city'])){
$city = beveiliginput($_POST['city']);
}
if(isset($_POST['street'])){
$street = beveiliginput($_POST['street']);
}
if(isset($_POST['lastname'])){
$lastname = beveiliginput($_POST['lastname']);
}
if(isset($_POST['firstname'])){
$firstname = beveiliginput($_POST['firstname']);
}
if(!isset($_POST['photo'])){
$photo = "default";
}elseif(!filter_var($_POST['photo'], FILTER_VALIDATE_URL)){
}elseif(!file_exists($photo)){
}else{
$photo = $_POST['photo'];
}
$number = 1;
while($number > 0){
$usercode = rand(10000, 99999);
$result1 = mysql_query("SELECT * FROM `users` WHERE `usercode` = '".$usercode."';") or foutverwerking(mysql_error());
$number = mysql_num_rows($result1);
}
mysql_query("INSERT INTO `users` (`dispname`, `email`, `photo`, `address`, `city`, `zip`, `country`, `firstname`, `lastname`, `provider`, `identifier`, `usercode`) VALUES ('".$dispname."', '".$email."', '".$photo."', '".$street."', '".$city."', '".$zip."', '".$country."', '".$firstname."', '".$lastname."', '".$provider."', '".$identifier."', '".$usercode."');") or foutverwerking(mysql_error());
$dbid = mysql_insert_id();
$_SESSION['userid'] = $dbid;
$_SESSION['dispname'] = $dispname;
$_SESSION['adminrights'] = 0;
$_SESSION['photo'] = $photo;
$_SESSION['email'] = $email;
$_SESSION['provider'] = $provider;
$_SESSION['identifier'] = $identifier;
$_SESSION['usercode'] = $usercode;
if($photo == "default"){
$photo = $serverbase.$defpath."img/sample-gravatar.jpg";
}
echo "<script type=\"text/javascript\">window.location = \"login.php?step=3&destpage=".$destination."\";</script>";
}}
}elseif(isset($_GET['step']) && isset($_GET['destpage'])){
if($_GET['step'] == 3){
echo "<script type=\"text/javascript\">window.location = \"index.php?page=".beveiliginput($_GET['destpage'])."\";</script>";
}
}else{
if(!isset($_POST['token'])){
echo foutverwerking("No token received");
}elseif(!isset($_GET['destpage'])){
echo foutverwerking("No destination set");
}else{
$post_data = array('token' => $_POST['token'],
'apiKey' => "0d8b920737c32280ac44fafe09d0da0ee2c64e7d",
'format' => 'json');
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_URL, 'https://rpxnow.com/api/v2/auth_info');
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
$raw_json = curl_exec($curl);
curl_close($curl);
$auth_info = json_decode($raw_json, true);
if($auth_info['stat'] == 'ok'){
$result1 = mysql_query("SELECT * FROM `users` WHERE `identifier` = '".$auth_info['profile']['identifier']."';");
if(mysql_num_rows($result1) != 1){
if($auth_info['profile']['providerName']=="Facebook"){
?>
<form method="post" action="login.php?step=2&destpage=<?php echo beveiliginput($_GET['destpage']); ?>" onsubmit="return checkform(this);">
<center>
<table border="0" cellpadding="15" cellspacing="0" width="98%">
<tr><td valign="middle" align="left" colspan="2"><i><?php echo $langa['loginmessage']; ?></i></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['providerl']; ?></b></td><td valign="middle" align="left"><img src="<?php echo $serverbase.$defpath; ?>img/facebook_logo.gif" width="100" height="38" alt="Facebook"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['identifierfbl']; ?></b></td><td valign="middle" align="left" nowrap><a href="<?php echo $auth_info['profile']['identifier']; ?>" target="_blank"><?php echo $auth_info['profile']['identifier']; ?></a></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['dispnamel']; ?></b></td><td valign="middle" align="left"><input type="text" name="dispname" size="20" maxlength="30" value="<?php if(isset($auth_info['profile']['preferredUsername'])){ echo $auth_info['profile']['preferredUsername']; } ?>">*</td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['firstnamel']; ?></b></td><td valign="middle" align="left"><input type="text" name="firstname" size="20" maxlength="30" value="<?php if(isset($auth_info['profile']['name']['givenName'])){ echo $auth_info['profile']['name']['givenName']; } ?>"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['lastnamel']; ?></b></td><td valign="middle" align="left"><input type="text" name="lastname" size="20" maxlength="30" value="<?php if(isset($auth_info['profile']['name']['familyName'])){ echo $auth_info['profile']['name']['familyName']; } ?>"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['emaill']; ?></b></td><td valign="middle" align="left"><input type="text" name="email" size="30" maxlength="40">*</td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['streetl']; ?></b></td><td valign="middle" align="left"><input type="text" name="street" size="30" maxlength="40"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['cityl']; ?></b></td><td valign="middle" align="left"><input type="text" name="city" size="20" maxlength="30" value="<?php if(isset($auth_info['profile']['address']['locality'])){ echo $auth_info['profile']['address']['locality']; } ?>"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['zipl']; ?></b></td><td valign="middle" align="left"><input type="text" name="zip" size="4" maxlength="8" value="<?php if(isset($auth_info['profile']['address']['postalCode'])){ echo $auth_info['profile']['address']['postalCode']; } ?>"></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['countryl']; ?></b></td><td valign="middle" align="left"><select name="country">
<?php
$countrylist = array(
"Afghanistan",
"Albania",
"Algeria",
"Andorra",
"Angola",
"Antigua and Barbuda",
"Argentina",
"Armenia",
"Australia",
"Austria",
"Azerbaijan",
"Bahamas",
"Bahrain",
"Bangladesh",
"Barbados",
"Belarus",
"Belgium",
"Belize",
"Benin",
"Bhutan",
"Bolivia",
"Bosnia and Herzegovina",
"Botswana",
"Brazil",
"Brunei",
"Bulgaria",
"Burkina Faso",
"Burundi",
"Cambodia",
"Cameroon",
"Canada",
"Cape Verde",
"Central African Republic",
"Chad",
"Chile",
"China",
"Colombi",
"Comoros",
"Congo (Brazzaville)",
"Congo",
"Costa Rica",
"Cote d'Ivoire",
"Croatia",
"Cuba",
"Cyprus",
"Czech Republic",
"Denmark",
"Djibouti",
"Dominica",
"Dominican Republic",
"East Timor (Timor Timur)",
"Ecuador",
"Egypt",
"El Salvador",
"Equatorial Guinea",
"Eritrea",
"Estonia",
"Ethiopia",
"Fiji",
"Finland",
"France",
"Gabon",
"Gambia, The",
"Georgia",
"Germany",
"Ghana",
"Greece",
"Grenada",
"Guatemala",
"Guinea",
"Guinea-Bissau",
"Guyana",
"Haiti",
"Honduras",
"Hungary",
"Iceland",
"India",
"Indonesia",
"Iran",
"Iraq",
"Ireland",
"Israel",
"Italy",
"Jamaica",
"Japan",
"Jordan",
"Kazakhstan",
"Kenya",
"Kiribati",
"Korea, North",
"Korea, South",
"Kuwait",
"Kyrgyzstan",
"Laos",
"Latvia",
"Lebanon",
"Lesotho",
"Liberia",
"Libya",
"Liechtenstein",
"Lithuania",
"Luxembourg",
"Macedonia",
"Madagascar",
"Malawi",
"Malaysia",
"Maldives",
"Mali",
"Malta",
"Marshall Islands",
"Mauritania",
"Mauritius",
"Mexico",
"Micronesia",
"Moldova",
"Monaco",
"Mongolia",
"Morocco",
"Mozambique",
"Myanmar",
"Namibia",
"Nauru",
"Nepa",
"Netherlands",
"New Zealand",
"Nicaragua",
"Niger",
"Nigeria",
"Norway",
"Oman",
"Pakistan",
"Palau",
"Panama",
"Papua New Guinea",
"Paraguay",
"Peru",
"Philippines",
"Poland",
"Portugal",
"Qatar",
"Romania",
"Russia",
"Rwanda",
"Saint Kitts and Nevis",
"Saint Lucia",
"Saint Vincent",
"Samoa",
"San Marino",
"Sao Tome and Principe",
"Saudi Arabia",
"Senegal",
"Serbia and Montenegro",
"Seychelles",
"Sierra Leone",
"Singapore",
"Slovakia",
"Slovenia",
"Solomon Islands",
"Somalia",
"South Africa",
"Spain",
"Sri Lanka",
"Sudan",
"Suriname",
"Swaziland",
"Sweden",
"Switzerland",
"Syria",
"Taiwan",
"Tajikistan",
"Tanzania",
"Thailand",
"Togo",
"Tonga",
"Trinidad and Tobago",
"Tunisia",
"Turkey",
"Turkmenistan",
"Tuvalu",
"Uganda",
"Ukraine",
"United Arab Emirates",
"United Kingdom",
"United States",
"Uruguay",
"Uzbekistan",
"Vanuatu",
"Vatican City",
"Venezuela",
"Vietnam",
"Yemen",
"Zambia",
"Zimbabwe"
);
foreach($countrylist as $country){
if($auth_info['profile']['address']['country']==$country){
echo "<option value=\"".$country."\" selected>".$country."</option>";
}else{
echo "<option value=\"".$country."\">".$country."</option>";
}
}
?>
</select></td></tr>
<tr><td valign="middle" align="left"><b><?php echo $langa['photol']; ?></b></td><td valign="middle" align="left"><input type="text" name="photo" size="30" maxlength="255" value="<?php if(isset($auth_info['profile']['photo'])){ echo $auth_info['profile']['photo']; } ?>"><br>
<img src="<?php if(isset($auth_info['profile']['photo'])){ echo $auth_info['profile']['photo']; } ?>" width="50" height="50" alt="avatar" border="0"></td></tr>
<tr><td colspan="2" align="center" valign="middle"><input type="submit" value="<?php echo $langa['submitl']; ?>"></td></tr>
</table>
</center>
<input type="hidden" name="provider" value="facebook">
<input type="hidden" name="identifier" value="<?php echo $auth_info['profile']['identifier']; ?>">
</form>
<?php
}
}else{
$destination = beveiliginput($_GET['destpage']);
$profile = mysql_fetch_assoc($result1);
$_SESSION['userid'] = beveiligdeinput($profile['id']);
$_SESSION['dispname'] = beveiligdeinput($profile['dispname']);
$_SESSION['adminrights'] = beveiligdeinput($profile['adminrights']);
if($profile['photo'] == "default"){
$photo = $serverbase.$defpath."img/sample-gravatar.jpg";
}else{
$photo = beveiligdeinput($profile['photo']);
if(!file_exists($photo)){
if(isset($auth_info['profile']['photo'])){
$photo = $auth_info['profile']['photo'];
$dbphoto = $auth_info['profile']['photo'];
}else{
$photo = $serverbase.$defpath."img/sample-gravatar.jpg";
$dbphoto = "default";
}
mysql_query("UPDATE `users` SET `photo` = '".$dbphoto."' WHERE `id` = '".$profile['id']."';");
}
}
$_SESSION['photo'] = $photo;
$_SESSION['email'] = beveiligdeinput($profile['email']);
$_SESSION['provider'] =beveiligdeinput($profile['provider']);
$_SESSION['identifier'] = beveiligdeinput($profile['identifier']);
$_SESSION['usercode'] = beveiligdeinput($profile['usercode']);
echo "<script type=\"text/javascript\">window.location = \"login.php?step=3&destpage=".$destination."\";</script>";
}
}else{
echo foutverwerking("Token error: ".$auth_info['err']['msg']);
}
}
}
?>
</div>
<div id="footer">
<div class="left">© copyright 2008-2009 empees</div>
<div class="right"><a href="./admin/index.php">Website</a> by <a href="mailto:[email protected]">empees</a> <a href="http://templates.arcsin.se/">Website template</a> by <a href="http://arcsin.se/">Arcsin</a></div>
<div class="clearer"> </div>
</div>
</div>
</div>
</div>
</div>
</div>
</body>
</html>
<?php
mysql_close();
?>
ik gebruik index.php als basis waarop ik het meeste include (login.php is wel een apart bestand)
waarschijnlijk wil je dit nog zien:
auth.php (komt op elke pagina)
<?php /* Created on: 3/08/2009 */
error_reporting(E_ALL);
ini_set("display_errors", 1);
session_start();
if(isset($_GET['action']) || isset($dologout)){
if($_GET['action'] == "logout" || isset($dologout)){
setcookie("empeesuser", "loggedout", time()-16070400);
$_SESSION=array();
$logoutdone = true;
}}
if(!isset($_SESSION['dispname']) || !isset($_SESSION['userid']) || !isset($_SESSION['adminrights']) || !isset($_SESSION['photo']) || !isset($_SESSION['email']) || !isset($_SESSION['provider']) || !isset($_SESSION['identifier']) || !isset($_SESSION['usercode']) && !isset($logoutdone)){
if(isset($_COOKIE['empeesuser'])){
if($_COOKIE['empeesuser'] != "loggedout"){
$temparray = explode("and", $_COOKIE['empeesuser'], 2);
$userid = $temparray[0];
$usercode = $temparray[1];
$result1 = mysql_query("SELECT * FROM `users` WHERE `id` = '".$userid."' AND `usercode` = '".$usercode."';");
$profile = mysql_fetch_assoc($result1);
$_SESSION['userid'] = beveiligdeinput($profile['id']);
$_SESSION['dispname'] = beveiligdeinput($profile['dispname']);
$_SESSION['adminrights'] = beveiligdeinput($profile['adminrights']);
if($profile['photo'] == "default"){
$photo = $serverbase.$defpath."img/sample-gravatar.jpg";
}else{
$photo = beveiligdeinput($profile['photo']);
}
$_SESSION['photo'] = $photo;
$_SESSION['email'] = beveiligdeinput($profile['email']);
$_SESSION['provider'] =beveiligdeinput($profile['provider']);
$_SESSION['identifier'] = beveiligdeinput($profile['identifier']);
$_SESSION['usercode'] = beveiligdeinput($profile['usercode']);
setcookie("empeesuser", $_SESSION['userid']."and".$_SESSION['usercode'], time()+16070400);
}}}
?>