Groot Nieuws Systeem

Door Stefan , 22 jaar geleden, 6.513x bekeken

Een uitgebreid nieuws systeem met een aantal handige functies, waaronder:

- Items & Links posten
- Ledenlijst
- Profielen
- Ban systeem
- Zoeken
- Javascript validatie
- Statistieken
- 6 verschillende templates

Documentatie

Hier is een documentatie.

Downloaden & Instaleren

Je kunt hem hier downloaden.
http://phphulp.phpclub.nl/730_nieuws_v2_2.zip Mirror (Versie 2.2)

Ik zou graag willen weten of jullie nog wat bugs of veiligheids-risico's tegenkomen, ik heb hem geprobeerd zo veilig en goed mogelijk te maken maar ik kan natuurlijk altijd wat over het hoofd hebben gezien. Thanks! :)

Voorbeeld: http://www.sosite.nl/docs/news/

Gesponsorde koppelingen

PHP script bestanden

  1. groot-nieuws-systeem

 

Er zijn 18 reacties op 'Groot nieuws systeem'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Niek s
niek s
22 jaar geleden
 
0 +1 -0 -1
Ik heb het nog niet heel erg kunnen bekijken, maar het eerste wat me opvalt: geen onmouseover!! :p (javascript.. @bijdehandjes: of een hover).
Ik heb altijd de indruk dat het 'mooier' is met een hover/onmouseover. Dan krijg je meer de indruk dat de link ook daadwerkelijk 'werkt'.

Ik zal eens de code gaan bekijken etc.

Rest: mooi script!
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Hmm ja, je hebt gelijk. Nooit zo over nagedacht eigenlijk, hier op phphulp doen ze dat ook niet trouwens, die links met een hover.

Anyway je kunt het natuurlijk altijd zelf aanpassen als je het zo wil hebben, ik was een beetje lui geloof ik. :)
Kalle P
Kalle P
22 jaar geleden
 
0 +1 -0 -1
Quote:
Dan krijg je meer de indruk dat de link ook daadwerkelijk 'werkt'.

Dat zie je toch aan het handje.
Niek s
niek s
22 jaar geleden
 
0 +1 -0 -1
klopt, maar ik denk dat u (kalle) wel snapt wat ik bedoel ;-)
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Als mensen nog dit nieuws systeem gebruiken, post de link! :) Dan kan ik hem bij 'voorbeelden' zetten.
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Ohja ik heb alles geupdate naar versie 2.1, je kunt nu ook ubb gebruiken in de comments en de smilies worden nu niet meer met javascript maar gewoon met php geparsed. Op die manier heb je er meer controle over en zijn ze makkelijker aan te passen.

Succes.
Arjan Schuurman
Arjan Schuurman
22 jaar geleden
 
0 +1 -0 -1
Werking lijkt goed, alleen had de documentatie wat beter gemogen zoals "Item genereren", welk item? of menu: wat staat er allemaal in?

Trouwens, er worden hier wel hovers gebruikt wanneer je templates van een script levert, een duidelijk voorbeeld lijkt me Thomas' blog:: http://www.phphulp.nl/php/scripts/6/714/ ::.

Verder ben ik zeer tevreden over dit script, ik ben van plan om deze in de toekomst te gaan gebruiken.
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Sorry, ik ben nooit zo uitgebreid als het gaat om commentaar schrijven tussen de regels in, komt omdat ik, tja, alweer te lui ben :P.

Maar dat 'item en menu genereren' betekend dat alle gegevens van dat betreffende item uit de database wordt gehaald en in variabelen wordt gezet. Om vervolgens in de templates getekend te worden. Dat komt omdat ik HTML en PHP zo veel mogelijk heb gescheiden. De templates zijn ook gewoon php bestanden en alles wordt geinclude. Dus als ik uiteindelijk een variabele maak in bijvoorbeeld 'index.php' kan ik die later ergens in een template, bv. 'site.php' er weer uit lezen.

Daarom dus :)
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Ik heb nu alles geupdate naar versie 2.2! Zo'n beetje alle fouten zijn er nu uit en ik heb ondertussen ook wat handige nieuwe functies toegevoegd. Je kunt nu bijvoorbeeld je eigen comments aanpassen, ook al ben je niet ingelogd.

Als je je versie wil update naar 2.2 dan kun je het beste alle bestanden overschrijven want zo'n beetje alle bestanden zijn ook aangepast, ook 'settings.php'. Deze moet je dan even opnieuw instellen :)
Ruud
ruud
22 jaar geleden
 
0 +1 -0 -1
Ik heb het bestand gedownload, en alles geinstalleert en op mijn server gezet. Nou wil ik me gaan registreren, en dan gaat ie naar deze pagina: http://numenorean.phpnet.us/news_2_2/register/home/, maar ik heb helemaal geen map 'register' in de map 'news_2_2' staan. Hoe kan dat?
Stefan
Stefan
22 jaar geleden
 
0 +1 -0 -1
Aha, bij jou is het .htaccess bestand niet ondersteund. Normaal zou deze die url moeten doorverwijzen naar http://numenorean.phpnet.us/news_2_2/index.php?a=register&t=home achter de schermen. Dit gebeurt bij jouw niet, dus jou server ondersteund het .htaccess betand niet.

De oplossing hiervoor staat gewoon in de documentatie, op deze pagina onder 'algemeen' :
http://www.sosite.nl/docs/news/view/help/17/

Hopelijk lost dat je probleem op :)
Ruud
ruud
22 jaar geleden
 
0 +1 -0 -1
bedankt, nou werkt het wel
Ellen
Ellen
21 jaar geleden
 
0 +1 -0 -1
Het systeem doet het goed bij mij, alleen heb ik een paar vraagjes:

- Ik heb een hele smalle tabel waar de tekst in komt te staan. Het submenu neemt nu nogal veel ruimte in beslag: het nieuwsbericht staat er niet naast, maar onder. Hoe kan ik het submenu aan de rechterkant van de tabel neerzetten?
- het hoofdmenu is nu goed, maar er komen meer links bij. hoe kan ik het hoofdmenu aan de linkerkant neerzetten?
- ik wil graag meer dingen weten van mijn bezoekers. ik heb wat geknutseld, maar ik krijg het er niet uit. er komt onbekend uit als ik 1 ding kopieer en plak, en aanpas zoals ik denk dat ik het aan moet passen!
- de tags (plaatjes, link, code) doen het niet goed. de scipt prompt word wel uitgevoerd, maar niet doorgevoerd: er veranderd niks aan jouw bericht! kan ik het ook doen dat HTML ook werkt? 9(dat is nu niet zo)

de site waar het (super mooie) systeem opstaat is: http://www.ellntj.nl/the-fray/view/home/
en ik wil hem heel veel op http://www.ellntj.nl/get-frayed/ laten lijken!

Kan je me daarmee helpen? Alvast heel erg bedankt!
Groetjes
Niek Kasius
Niek Kasius
21 jaar geleden
 
0 +1 -0 -1
Het is niet volledig die download! want als ik in index op login of regstreer klik krijg ik een 404 pagina met als adres:
http://www.mijn site.nl/News_2_2/login/home/
en
http://www.mijn site.nl/News_2_2/register/home/
en in posting.php krijg ik dit:
X
Fout
Er is een fout opgetreden.
Er is een fout opgetreden
M Rodrigo
M Rodrigo
20 jaar geleden
 
0 +1 -0 -1
sorry maar dit script is gewoon niet compleet SHIFT+DELETE
Erwin Nieuwenhuis
Erwin Nieuwenhuis
20 jaar geleden
 
0 +1 -0 -1
wat is er mis mee dan??


20 jaar geleden
 
0 +1 -0 -1
Eskisehirli:
sorry maar dit script is gewoon niet compleet SHIFT+DELETE

Anders reageer je nog effe op een script wat drie jaar oud is, en dus wat waarschijnlijk fouten zal hebben...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Noppes
Noppes
20 jaar geleden
 
0 +1 -0 -1
Review naar aanleiding van post: Eskisehirli schreef op 08.06.2008 14:28

Antwoord: tja het verdient niet de schoonheidsprijs maar voor een beginner anno 2006 op php 4.2 kan je je verwachtingen niet te hoog inzetten.

Voor de rest wordt er ook geen onderhoud op gepleegd zip file is van:
20-8-2006

Installatie configuratie:

Stap 1:
-> Notice: Undefined index: p in D:\www\htdocs\6\news\setup\setup.php on line 80

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
/*
    -> Notice: Undefined index: p in D:\www\htdocs\6\news\setup\setup.php on line 80
*/

$uri_page = (strip_str_i($_GET['p']) != '') ? strip_str_i($_GET['p']) : -1;
/*
    -> fix
*/

$uri_page = (isset($_GET['p']) && strip_str_i($_GET['p']) != '') ? strip_str_i($_GET['p']) : -1;
?>


Stap 2:
Beetje ongelukkig dat je de setup.php script moet aanpassen $site_ gegevens
Handiger zal zijn om dit uit te vragen en weg te schrijven in een filetje zodat je het met parse_ini_file kunt benaderen

Stap 3:
-> Notice: Use of undefined constant install - assumed 'install' in D:\www\htdocs\6\news\setup\setup.php on line 146
-> Fatal error: Call to undefined function mysql_connect() in D:\www\htdocs\6\news\include\db.php on line 44

else if($uri_page == 3 && $_POST['assume'] == install)

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?php
/*
    -> Notice: Use of undefined constant install - assumed 'install' in D:\www\htdocs\6\news\setup\setup.php on line 146
*/

else if($uri_page == 3 && $_POST['assume'] == install)
/*
    -> fix
*/

elseif ($uri_page == 3 && ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['assume']) && $_POST['assume'] == 'install'))
?>



Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
/*
    -> Fatal error: Call to undefined function mysql_connect() in D:\www\htdocs\6\news\include\db.php on line 44
*/

$dbcon = mysql_connect($host,$user,$pass) or die(mysql_error());
/*
    -> fix
    
    Kan niet gefixed worden want mysql is niet geladen daar en tegen wel mysqli en pdo_mysql
    Dan toch maar een poging doen om mysql te laden, dan verkrijg je deze fout ook niet
    
    db.php function connect
        
*/


function dbconnect($host,$user,$pass,$data)
{

    if (!extension_loaded('mysql')) {
        
        switch(PHP_OS) {
            case
'WINNT':
                if (!dl('php_mysql.dll')) {
                    exit;
                }

                break;
            default:

                if (!dl('mysql.so')) {
                    exit;
                }

                break;
        }            
    }


    $dbcon = mysql_connect($host,$user,$pass) or die(mysql_error());
    mysql_select_db($data, $dbcon) or die(mysql_error());
}



?>




Bekijk uw site en overige

-> Notice: Undefined index: t in D:\www\htdocs\6\news\common.php on line 37
-> Notice: Undefined index: p in D:\www\htdocs\6\news\common.php on line 39
-> Notice: Undefined index: a in D:\www\htdocs\6\news\common.php on line 40
-> Notice: Undefined index: o in D:\www\htdocs\6\news\common.php on line 41
-> Notice: Undefined variable: ip in D:\www\htdocs\6\news\common.php on line 44
-> Notice: Undefined variable: REMOTE_ADDR in D:\www\htdocs\6\news\common.php on line 47

Wat de hel, weer overal vergeten controles toe te voegen......

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
/*
    -> Notice: Undefined index: t in D:\www\htdocs\6\news\common.php on line 37
*/

$uri_theme = (strip_str(strtolower($_GET['t'])) != '') ? strip_str($_GET['t']) : $page_theme_default;
/*
    -> fix
*/

$uri_theme = (isset($_GET['t']) && strip_str(strtolower($_GET['t'])) != '') ? strip_str($_GET['t']) : $page_theme_default;

/*
    -> Notice: Undefined index: p in D:\www\htdocs\6\news\common.php on line 39
*/

$uri_page = (strip_str_d($_GET['p']) != '') ? strip_str_p($_GET['p']) : -1;
/*
    -> fix
*/

$uri_page = (isset($_GET['p']) && strip_str_d($_GET['p']) != '') ? strip_str_p($_GET['p']) : -1;


/*
    -> Notice: Undefined index: a in D:\www\htdocs\6\news\common.php on line 40
*/

$uri_action = (strip_str(strtolower($_GET['a'])) != '') ? strip_str($_GET['a']) : 'view';
/*
    -> fix
*/

$uri_action = (isset($_GET['a']) && strip_str(strtolower($_GET['a'])) != '') ? strip_str($_GET['a']) : 'view';


/*
    -> Notice: Undefined index: o in D:\www\htdocs\6\news\common.php on line 41
*/

$uri_offset = (strip_str_d($_GET['o']) != '') ? strip_str($_GET['o']) : 0;
/*
    -> fix
*/

$uri_offset = (isset($_GET['o']) && strip_str_d($_GET['o']) != '') ? strip_str($_GET['o']) : 0;


/*
    -> Notice: Undefined variable: ip in D:\www\htdocs\6\news\common.php on line 44
*/

list($user_id,$user_name,$user_role,$user_flood) = get_login($ip);

/*
    Waar o waar komt $ip van weg........
    
    Het zal wel maar de function get_login verwacht geen parameters
    -> Fix
*/

list($user_id,$user_name,$user_role,$user_flood) = get_login();

/*
    -> Notice: Undefined variable: REMOTE_ADDR in D:\www\htdocs\6\news\common.php on line 47
*/

$user_ip = ''.gethostbyname($REMOTE_ADDR);

/*
    Waar o waar komt $REMOTE_ADDR van weg of wordt er soms bedoeld: $_SERVER['REMOTE_ADDRS']
    en wat doet ''. => niets dus weg er mee
    
    echter dan wordt gethostbyname() aangeroepen met een io adres terwijl het gerbuik is:
    -> gethostbyname('www.example.com');

    -> Fix
*/

$user_ip = $_SERVER['REMOTE_ADDR'];

?>


Bij het reageren op een x item vliegt er een PHP Notice: Use of undefined constant site_comment - assumed 'site_comment' in D:\www\htdocs\6\news\posting.php on line 91
door het beeld

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
/*
    -> PHP Notice:  Use of undefined constant site_comment - assumed 'site_comment' in D:\www\htdocs\6\news\posting.php on line 91
    
*/

else if($front == 'comment' && site_comment && ($user_id != -1 || $site_anonymous))
/*
    -> Fix
*/

else if($front == 'comment' && $site_comment && ($user_id != -1 || $site_anonymous))

/*
    -> PHP Notice:  Use of undefined constant site_register - assumed 'site_register' in D:\www\htdocs\6\news\posting.php on line 196
*/

/*
    Blijkbaar van variabelen constanten gemaakt maar vergeten dit om te zetten....... in
    Fix: settings.php
    
    define('site_comment',true);
    define('site_register',true);
    
    of fix het in posting.php
    
    
    site_register omzetten naar variabele $site_register
*/


?>


Andere aandachtspunten:
- SQL-Injection
- PHP variabelen buiten qoutes
- Script logica
- Scripting comments
- gebruik van variabelen en constanten
- controle van wat er van buitenaf kan komen kan beter

Advies voor degene die dit willen gebruiken:
Voer in ieder geval de fixes door welke ik hier gepost heb, overigens dekt dit niet alles af, ben er maar globaal door heen gefietst.

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. groot-nieuws-systeem

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.