Welkom, Gast. Je bent niet ingelogd.

PHPbattle Nieuwssysteem

Syncie
Geplaatst op: 13 Oct 2007, 19:39
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

Ik heb aan de mysql class nog eventjes niets gedaan, dat denk ik waarschijnlijk op het laatst te doen.
Hier in ieder geval de basis versie van de news class:

[...]

en door die aan te roepen is de index natuurlijk ook wat gewijzigd, maar dat zijn maar 2 require'tjes meer en een classe meer. dus dat is nog niet de moeite om dat weer helemaal te posten.
Globals zijn niet zo sexy weet ik, maar daar ga ik nog is over brainstorme wat ik daarmee ga doen.


Over globals, dat is heel simpel.
Je maakt een constructor in de news class:
1
public function __construct(mysql $oDB){};

De functie moet je zelf maar ff invullen. Waarom mysql voor $oDB? Omdat ik weet dat jouw class mysql heet en $oDB moet natuurlijk wel een instantie zijn van de class mysql. Dit heet typehinting.
Net zoals ik met PDO doe, een voorbeeldje:
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
<?php

/**
 * @class noob
 */

class noob{
    
    /**
     * The instance of the PDO class.
     *
     * @var object
     */
    private $oDB;
    
    /**
     * Save the instance of the PDO class.
     * 
     * @param    Object    $p_oDB            The instance of the PDO class.
     * @throws    none
     * @returns nothing
     */
     public function __construct(PDO $p_oDB){
    
        $this->oDB                =    $p_oDB;
        // Save the instance of the PDO class.
        
    }
    
}

?>

[Laatst bewerkt door Syncie op zaterdag 13 oktober 2007, om 19:45]
Guz
Housejunkie
moderator
Geplaatst op: 13 Oct 2007, 23:10
PimpCoins: 0
💸+
Bewerken Quote

Komt het complete script gratis te downloaden? Ik vind het wel leuk

Rian
Geplaatst op: 13 Oct 2007, 23:35
PimpCoins: 0
💸+
Bewerken Quote

Guz schreef:

Komt het complete script gratis te downloaden? Ik vind het wel leuk

Is al op geantwoord...

Ja

HyperTesia
Webdeveloper
Geplaatst op: 14 Oct 2007, 09:35
PimpCoins: 0
💸+
Bewerken Quote

Basjee schreef:

PHPPlay = samen, PHPBattle = tegen elkaar..

Wat is het nu?

Of PHPColab = samen..
Met al jullie Battles, zeg toch gewoon colab

De scripting van Badeend is veel netter, en dat bekijk ik dan ook nog eens.. Die van joris bekijk ik geneens

[Laatst bewerkt door HyperTesia op zondag 14 oktober 2007, om 09:50]
Aar
Geplaatst op: 14 Oct 2007, 13:41
PimpCoins: 0
💸+
Bewerken Quote

Even 1 opmerking.
Waarom de DB pass in base64 encoden?

Syncie
Geplaatst op: 14 Oct 2007, 13:42
PimpCoins: 0
💸+
Bewerken Quote

Aar schreef:

Even 1 opmerking.
Waarom de DB pass in base64 encoden?

Als je het topic ff doorleest zie je dat Thaan dat al eens heeft gevraagd en Joris het al heeft beantwoord.

Joris
moderator
Geplaatst op: 16 Oct 2007, 13:23
PimpCoins: 0
💸+
Bewerken Quote

Vanavond komt door mij hier op het forum gepost:

- Het gehele nieuwssysteem
- Deel van het loginsysteem dat werkt via een PHP bestand (met F.Open).

Riciboy
GewoonBriljant
Geplaatst op: 16 Oct 2007, 15:19
PimpCoins: 0
💸+
Bewerken Quote

F.open ? ik ken alleen fopen() :'D

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Oct 2007, 17:37
PimpCoins: 0
💸+
Bewerken Quote

ff kleine update doen ,wat kleine aanpassing'kjes in me news class etc, een kleine functions.inc.php, wat dingetjes in de index.php. Ik ben momenteel bezig met de users class, deze zal ik dat eerste gedeelte alvast plaatsen

index.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
<?php

/**
 * @author badeendje
 * @copyright 2007
 */

//-----------------------------------------
// Check PHP Version
//-----------------------------------------
if(!version_compare(phpversion(), '5.2.0', '>=')){
    
    die('<b style="color:#FF0000">Critische systeem error:</b> De PHP Versie geinstalleerd op deze server(' . phpversion() . ') is niet hoog genoeg om dit systeem te draaien, PHP 5.2.0 is minstens benodigd.');
    
}


//-----------------------------------------
// Check userip
//-----------------------------------------
if(!filter_var($_SERVER['REMOTE_ADDR'], FILTER_VALIDATE_IP)){
            
    die('<b style="color:#FF0000">Geen toegang:</b> Ongeldig ip.');
            
}

//-----------------------------------------
// Define security signal
//-----------------------------------------
define('SAFE', true, true);

//-----------------------------------------
// Show us all errors
//-----------------------------------------
error_reporting(E_ALL ^ E_STRICT);

//-----------------------------------------
// if there isn't any session active start one
//-----------------------------------------
session_start();

//-----------------------------------------
// Assign some vars
//-----------------------------------------
date_default_timezone_set('Europe/Amsterdam');

$gebruikers    =    array(
                    'Badeendje', '67eb476492d65e7507ab44feaf23eb7413fa9fb1',
                    'tjaps', 'ca7798598f88979a685f92f29aabf757fa886e6a'
                );

//-----------------------------------------
// Require classes
//-----------------------------------------
require('inc/functions.inc.php');

require('inc/mysql.php');

require('inc/users.php');

require('inc/news.php');

//-----------------------------------------
// Init clases
//-----------------------------------------
$db        =    new mysql('localhost','user', 'password','database', 'prefix', true);
$news    =    new news($db);
$users    =    new users($db, $gebruikers, 'brutelog.php');

?>

functions.inc.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

/**
 * @author Badeendje
 * @copyright 2007
 */

function safedb($str){
    
    global $db;
        
    return mysql_real_escape_string($str, $db->connection);    
    
}

function out($str){
    
    return trim(htmlentities(stripslashes($str), ENT_QUOTES));
    
}

?>

mysql.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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
<?php

/**
 * @author badeendje
 * @copyright 2007
 */

if(!defined('SAFE')){
    
    die('<pre>Geen toegang.</pre>');
    
}

class mysql {
    
    //-----------------------------------------
    // Assign vars
    //-----------------------------------------        
    public $connection;

    private $tableFix            =    '';

    private $lastQueryString    =    '';

    private $lastQueryResult    =    '';

    public $useCounters            =    false;

    public $queryCount            =    '0';
    
    //-----------------------------------------
    // Connect to database
    //-----------------------------------------
    public function __construct($host, $username, $password, $dbname, $tableFix = '', $useCounters){

        //-----------------------------------------
        // Connect
        //-----------------------------------------                
        if(!$this->connection = mysql_connect($host, $username, $password)){
            
            die('No connection could be established.<br />
            MySQL returned:' . mysql_error());
            
        }

        //-----------------------------------------
        // Connect to database
        //-----------------------------------------        
        if(!mysql_select_db($dbname, $this->connection)){
            
            die('No connection could be established.<br />
            MySQL returned:' . mysql_error());
            
        }

        //-----------------------------------------
        // Save prefix
        //-----------------------------------------                
        $this->tableFix = empty($tableFix) ? '' : $tableFix;
        
        //-----------------------------------------
        // Connect to database
        //-----------------------------------------        
        if(is_bool($useCounters)){
            
            $this->useCounters = $useCounters;
            
        }
        
    }

    //-----------------------------------------
    // Place prefix for table
    //-----------------------------------------    
    public function tbl($tbl){
        
        return $this->tableFix . '_' . $tbl;
        
    }

    //-----------------------------------------
    // Execute query
    //-----------------------------------------
    public function query($queryString){
        
        if(!$return = mysql_query($queryString, $this->connection)){
        
            die('Query could not be executed.<br />
            MySQL returned:' . mysql_error());
            
        }

        //-----------------------------------------
        // Assign/update global vars
        //-----------------------------------------        
        $this->lastQueryString = $queryString;
        
        $this->lastQueryResult = $return;
        
        if($this->useCounters === true){
            
            $this->queryCount++;
        
        }
        
        return $return;    
        
    }

    //-----------------------------------------
    // Num rows
    //-----------------------------------------
    public function numRows($query = ''){
    
        if(empty($query)){
            
            $return = mysql_num_rows($this->lastQueryResult);
            
        }else{
        
            $return = mysql_num_rows($query);
                        
        }
            
        return $return;
        
    }

    //-----------------------------------------
    // Fetch result
    //-----------------------------------------
    public function fetch($query = '', $method = 'assoc'){
        
        if(empty($query)){
            
            if($method == 'assoc'){
                
                $return = mysql_fetch_assoc($this->lastQueryResult);
                
            }else{
                
                $return    =    mysql_fetch_array($this->lastQueryResult);
                
            }
            
        }else{
            
            if($method == 'assoc'){
            
                $return = mysql_fetch_assoc($query);
                
            }else{
                
                $return = mysql_fetch_array($query);
                
            }
                    
        }
        
        return $return;
        
    }
    
}

?>

(nope, ik heb nog ff niet van exceptions gebruik gemaakt ivo )

news.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
<?php

/**
 * @author badeendje
 * @copyright 2007
 */

if(!defined('SAFE')){
    
    die('<pre>Geen toegang.</pre>');
    
}

class news {

    public $db;

    public function __construct($db){
        
        $this->db    =    $db;
        
    }
    
    public function add($title, $content, $user){
        
        $ntitle        =    safedb($title);
        $ncontent    =    safedb($content);
        $nuser        =    safedb($user);
        
        $this->db->query("
            INSERT INTO 
                news 
            SET
                title    =    '" . $ntitle . "',
                content    =    '" . $ncontent . "',
                user    =    '" . $nuser . "',
                time    =    '" . time() . "'");
                
        return 'OK:';
        
    }
    
    public function del($id){
        
        $qcheck = $this->db->query("SELECT id FROM news WHERE id='" . safedb($id) . "'");
        $ncheck = $this->db->numRows($qcheck);
        
        if($ncheck != 0){
            
            $this->db->query("DELETE FROM news WHERE id='" . safedb($id) . "'");
            return 'OK:';
            
        }else{
            
            return 'FAIL:NotExists';
            
        }
        
    }
    
    public function edit($id, $title, $content, $user){
        
        $ntitle        =    safedb($title);
        $ncontent    =    safedb($content);
        $nuser        =    safedb($user);    
            
        $qcheck = $this->db->query("SELECT id FROM news WHERE id='" . safedb($id) . "'");
        $ncheck = $this->db->numRows($qcheck);
        
        if($ncheck != 0){
            
            $this->db->query("
                    UPDATE
                        news 
                    SET
                        title    =    '" . $ntitle . "',
                        content    =    '" . $ncontent . "',
                        user    =    '" . $nuser . "'
                    WHERE 
                        id='" . safedb($id) . "'");
            return 'OK:';
            
        }else{
            
            return 'FAIL:NotExists';
            
        }
                
    }
    
}

?>

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Oct 2007, 17:38
PimpCoins: 0
💸+
Bewerken Quote

En ivm de max van 2000 tekens is hier de basis van users.php:

[code]

beginnetje waarmee ik bezig ben users.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
<?php

/**
 * @author Badeendje
 * @copyright 2007
 */

class users {

    public $db;
    
    public $users    =    array();
    
    public $logf;
    
    public function __construct($db, $users, $logfile    =    ''){
        
        $this->db    =    $db;
        
        $this->users=     $users;
        
        $this->logf    =    $logfile;
        
    }
    
    public function login($user, $password){
    
        $pass    =    sha1($password);
        
        if(in_array($user, $this->users)){
        
            if($this->users[1] == $pass){
            
                return 'OK:';
            
            }else{
            
                return 'FAIL:Wrongpass';
            
            }
        
        }else{
        
            return 'FAIL:nouser';
        
        }
    
    }
    
    public function bruteupdate(){
    
        if(!empty($this->logf)){
        
            require($this->logf);
            
            if(in_array($_SERVER['REMOTE_ADDR'], $brutef)){
            
                if($brutef[1] == '1'){
                
                    return 'FAIL:brute1';
                
                }elseif($brutef[1] == '2'){
                
                
                }elseif($brutef[1] == '3'){
                
                    return 'FAIL:bruted';
                    
                    exit();
                
                }
            
            } 
        
        }
    
    }

}

?>

Hoe het eruit ziet kan je nog altijd hier bekijken :
[url]http://urbanstreetforum.nl/yannick/nieuws/[/url]

Rinaldo
Geplaatst op: 16 Oct 2007, 17:40
PimpCoins: 0
💸+
Bewerken Quote

BadDuck BadDuck!!

sandr
aka Chuck Norris
Geplaatst op: 16 Oct 2007, 17:45
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

Hoe het eruit ziet kan je nog altijd hier bekijken :
[url]http://urbanstreetforum.nl/yannick/nieuws/[/url]

Die pagina is leeg?

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Oct 2007, 17:50
PimpCoins: 0
💸+
Bewerken Quote

sandr schreef:

[...]
Die pagina is leeg?

Like d0h, als je de source had bekeken dan zie je waarom....
stel niet van die domme vragen

Thaan schreef:

[...]
Oh my god, you're right!

[Laatst bewerkt door Badeendje op dinsdag 16 oktober 2007, om 17:52]
Thaan
Aka "Gerwin"
moderator
Geplaatst op: 16 Oct 2007, 17:51
PimpCoins: 0
💸+
Bewerken Quote

sandr schreef:

[...]
Die pagina is leeg?

Oh my god, you're right!

Syncie
Geplaatst op: 16 Oct 2007, 18:01
PimpCoins: 0
💸+
Bewerken Quote

//-----------------------------------------
// if there isn't any session active start one
//-----------------------------------------
session_start();

Je commentaar klopt niet met de onderstaande functie.

Misschien is het handig om van functions.php een class te maken en dan $db opslaan, dus geen global meer?

En in news.php is net netter om in de constructor mysql $db neer te zetten. Als $db dan geen instantie van de class mysql is dan gaat PHP erroren.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Oct 2007, 18:05
PimpCoins: 0
💸+
Bewerken Quote

woopz dat commentaar klopt inderdaad niet echt nee daarbij .
en van functions.php een class maken is inderdaad nog geen slecht idee.

En verder van news.php, die $db die houdt ik gewoon een instantie van de mysql class, waarom zouden mensen die wijzigen, zolang dat niet gebeurt ontstaan er geen fouten in.
Want anders zou ik net zo goed bij iedere class de mysql class wel kunnen extenden om in de constructor $db te voorkomen toch ?

Syncie
Geplaatst op: 16 Oct 2007, 18:08
PimpCoins: 0
💸+
Bewerken Quote

Misschien doet iemand een keer in die constructor new news($sString) i.p.v. new news($oDB). En als je dan typehinting hebt dat krijg je een error bij de 1e want dat is geen instantie van mysql.

---

Is niet zo netjes he, dat extenden.

class news extends mysql

Wat heeft news met mysql te maken? Helemaal niets. 't is misschien een oplossing tegen global maar niet de goede.

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 16 Oct 2007, 18:13
PimpCoins: 0
💸+
Bewerken Quote

Syncie schreef:

Misschien doet iemand een keer in die constructor new news($sString) i.p.v. new news($oDB). En als je dan typehinting hebt dat krijg je een error bij de 1e want dat is geen instantie van mysql.

oke zal ik dan wel is doen als ik zin heb als iets goed werkt moet je er vanaf blijven zegt me opa(ofzoiets) altijd dusja, ik zie het nut er niet van in om het in te bouwen, ze moeten er dan maar afblijven

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 17 Oct 2007, 20:51
PimpCoins: 0
💸+
Bewerken Quote

Hee joris, wanneer komt jouw zet, je F.open() die zou toch gisterenavond komen wel een beetje aan je eigen afspraken houden eh.

Maarten
Geplaatst op: 17 Oct 2007, 20:53
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

Hee joris, wanneer komt jouw zet, je F.open() die zou toch gisterenavond komen wel een beetje aan je eigen afspraken houden eh.

Hij zit diep in een hokje te janken dat hij dik afgemaakt word door jouw.

Firebird
Zo zit dat.
Geplaatst op: 17 Oct 2007, 20:53
PimpCoins: 0
💸+
Bewerken Quote

Badeendje schreef:

Hee joris, wanneer komt jouw zet, je F.open() die zou toch gisterenavond komen wel een beetje aan je eigen afspraken houden eh.

U ziet het de volgende keer!
Gaat Joris zich terugtrekken (niet doordenken dank u) of zet hij door, in een hopeloze kans om Badeendje te verslaan?

Joris
moderator
Geplaatst op: 18 Oct 2007, 17:33
PimpCoins: 0
💸+
Bewerken Quote

Nee! ik trek mij niet terug, ik had het alleen druk met het opnemen van een nieuwe film...

Binnen een paar uur staat alles online

Maarten
Geplaatst op: 21 Oct 2007, 16:02
PimpCoins: 0
💸+
Bewerken Quote

Oké, laten we zeggen dat Joris zich terug trekt en Badeendje heeft gewonnen?

Rian
Geplaatst op: 21 Oct 2007, 16:11
PimpCoins: 0
💸+
Bewerken Quote

Hij zei ik trek me niet terug

Badeendje
Pompehdompehdom
moderator
Geplaatst op: 21 Oct 2007, 16:13
PimpCoins: 0
💸+
Bewerken Quote

Rian schreef:

Hij zei ik trek me niet terug

En hij zei ook dat de 4 dagen geleden zijn script zou posten, dan is die al flink te laat...

en in de vakantie heb je geen school, dus die eis die joris heeft gesteld is nu niet van toepassing.

Dus persoonlijk heb ik ook het idee dat die niks kan, want hetgene wat die had geplaatst was niet van toepassing, want de users mag geen mysql gebruikt worden zoals in de starpost te zien worden.

📫

Nieuw privébericht

🔥

Registreren


Login