PHP-Einfach.de PHP lernen leicht gemacht

Navigation
» Startseite
» Newsübersicht
» Kontakt
» Impressum

Community
» Forum
» Gästebuch

Tutorial
» PHP Tutorial
» MySQL Tutorial
» PHP
» MySQL
» Codeschnipsel

Downloads
» Einführung
» Scripts
» Command Board

Sonstiges
» md5-Generator
» Generator
» Wissenswertes

PHP lernen


Dieses Projekt wird unterstützt von
Lichteffekte Shop

 
Partner:
PHP Forum
Mathe Nachhilfe
Suchmaschinenoptimierung

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 &nbsp;<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 &nbsp;<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

News
13.08 - » Spam im Gästebuch
Endlich Schluss mit dem Spam

08.12 - » Clanletter 2.0
Clanletter wurde komplett neu programmiert

01.09 - » Command Board 1.0 - 2.0
Das Command Board 1.0 Beta 2.0 ist erschienen


Mehr

Forum
» Entwickler Forum

» insert nach login

» Tabellenzelle zu groß







© PHP-Einfach.de 2003 - 2012