|
|
|
referer counter
Zurück zur Übersicht Dieser Codeschnipsel überprüft, wie oft ein beworbener Link aufgerufen wurde.
hallo,
hier ist es: mein referer counter (=> links zum weiterleiten, es wird gezählt wie oft der beworbene link schon aufgerufen wurde)
luki.k ist schuld => wegen ihm hab ichs gemacht
ham zwar einige schon per pm gekriegt aber ich machs jetz offiziell in nem codeschnipsel
[FEATURES]
-einmalige nutzung einer ip
-sicher (soweit ich weis)
-mit php/mysql
-keine text/... dateien
-verschlüsselung des passwortes über md5
-erweiterbar
[/FEATURES]
ich bitte darum, dass nichts geändert wird.
der benutzer soll sich anmelden :
index.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
|
<?php /*** INDEX.PHP ***/
include_once("functions.php");
if($_GET["page"] != ""){
$_SESSION["page"] = mysql_real_escape_string($_GET["page"]);
}
else{
$_SESSION["page"] = "index";
}
$page = $_SESSION["page"];
if($_POST["login"] != ""){
$msg = login(mysql_real_escape_string($_POST["username"]),mysql_real_escape_string($_POST["passwort"]));
$_POST["login"] = "";
}
if($_POST["register"] != ""){
$msg = new_user(mysql_real_escape_string($_POST["username_r"]),mysql_real_escape_string($_POST["passwort_r"]));
$_POST["register"] == "";
}
$sitecontent =
'<html>
<head>
<title>'.title($page).'</title>
</head>
<body>
Hallo,<br><a href="?page=index">index</a><br><a href="?page=login">Login</a><br><a href="?page=register">Register</a><br><br><u>Aktuelle Seite: </u>
'.content($page).'
'.$msg.'
</body>
</html>';
echo $sitecontent;
?>
|
|
dann auch noch eine seite, in der die funktionen ausgelagert werden, aber wenn man die seite aufruft, wird nichts ausgegeben.
functions.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
|
<?php /*** FUNCTIONS.PHP ***/
include_once("mysqlconn.php");
function username($user){
$username3 = mysql_query("SELECT * FROM main WHERE username = '$user' LIMIT 1");
$row2 = mysql_fetch_object($username3);
if($row2->username == ""){
return false;
}else{
return true;
}
}
function new_user($username,$password){
$refs = 0;
$username = mysql_real_escape_string($username);
if(username($username) == true){
return "username schon vorhanden";
}else{
mysql_query("INSERT INTO main
(username, userpass, referer)
VALUES
('".$username."', '".$password."', '".$refs."')
") or die(mysql_error());
return "username registriert";
}
}
function login($username,$password){
$username = mysql_real_escape_string($username);
if(username($username) == true){
$username2 = mysql_query("SELECT * FROM main WHERE username = '$username' LIMIT 1");
$row = mysql_fetch_object($username2);
if($row->username == $username && $row->userpass == $password){
$_SESSION["username"] = $username;
$_SESSION["refs"] = $row->referer;
$_SESSION["id"] = $row->id;
return "eingeloggt";
}
else return "falsches pw ".$row->username."--".$row->userpass;
}else{
return "username nicht vorhanden";
}
}
function title($page){
switch($page){
case "index": $title ="Index";break;
case "index": $title ="";break;
default : $title ="Index";break;
}
return $title;
}
function content($page){
switch($page){
case "index": $content ='';break;
case "login": {
if(!isset($_SESSION["username"])){
$content ='Login<br><br><form action="" method="post">
Username <input type="text" name="username"><br>
Passwort <input type="password" name="passwort"><br>
<input type="submit" value="Login" name="login">
</form>';
}else{
$seite = $_SERVER["PHP_SELF"];
$dir = dirname($seite);
$content = 'Verwaltung<br>Username : '.$_SESSION["username"].'<br>
Referer : '.$_SESSION["refs"].'<br>
Dein Link: <input type="text" style="width:400px" value="http://'.$_SERVER["HTTP_HOST"].$dir.'/ref.php?id='.$_SESSION["id"].'" >';
}
};break;
case "register": $content ='Registrieren<br><br><form action="" method="post">
Username <input type="text" name="username_r"><br>
Passwort <input type="password" name="passwort_r"><br>
<input type="submit" value="Register" name="register">
</form>';break;
default : $content ='';break;
}
return $content;
}
?>
|
|
dann noch die benötigte mysql_connectionseite die ausgelagert wird.
mysql_conn.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
|
<?php
session_start(); // einer der ersten seiten, die includet werden, also macht es sinn, damit nicht jede seite extra braucht
include_once("config.php");
mysql_connect ($dbhost,$dbusername,$dbpass) or die (mysql_error());
mysql_select_db($db) or die ("Die Datenbank ' $db ' existiert nicht.");
?>
|
|
und die config seite:
config.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
|
<?php
//datenbank host (meist localhost)
$dbhost = "localhost";
//datenbank username
$dbusername = "";
//datenbank passwort
$dbpass = "";
//datenbank name
$db = "";
?>
|
|
dann die letzte seite, die die referer points hinzufügt und die ip adresse sperrt
ref.php
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
|
<?php
include_once("mysqlconn.php");
$username35 = mysql_query("SELECT * FROM ips");
$used = false;
while($row34 = mysql_fetch_object($username35)){
if($row34->ip == $_SERVER["REMOTE_ADDR"]){
$used = true;
break;
}
}
if($used == false){
$id = $_GET["id"];
$id = mysql_real_escape_string($id);
$ip = $_SERVER["REMOTE_ADDR"];
$username34 = mysql_query("SELECT * FROM main WHERE id = '$id' LIMIT 1");
$row34 = mysql_fetch_object($username34);
if($row34->id != 0){
$old_refs = $row34->referer;
$new_refs = $old_refs + 1;
$update = mysql_query("UPDATE main SET referer = '$new_refs' WHERE id = '$id' LIMIT 1");
$ip_sperren = mysql_query("INSERT INTO ips
(ip)
VALUES
('".$ip."')
") or die(mysql_error());
echo "id ".$id." got referred from ".$ip;
}
}
else{
echo "this ip: <font size='8'><b>".$_SERVER["REMOTE_ADDR"]."</b></font> was alrdy used.";
}
?>
|
|
und zuguterletzt auch noch die
sql datei zum importieren in die eigene datenbank
refproject.sql
| PHP |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
|
CREATE TABLE IF NOT EXISTS `ips` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`ip` varchar(12) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
CREATE TABLE IF NOT EXISTS `main` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(15) NOT NULL,
`userpass` varchar(15) NOT NULL,
`referer` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
|
|
alles gepackt zum runterladen auf :
http://rapidshare.com/files/266542850/refproject.rar
passwort ist: "spooooongqpwnz" (natürlich ohne die "")
und: fertig!
Kommentare
Zurück zur Übersicht
Autor spooooongq
|
|
|
|