Arjan's Nieuwssysteem v2.5
Welkom bij versie 2.5 van mijn Nieuwssysteem. Het verschil met versie 2 van een maandje geleden is dat er nu een administratie systeem is bijgevoegd (net zoals v1 oorspronkelijk had) en er een aantal kleine dingetjes zijn toegevoegd en/of verbeterd.
Mogelijkheden:
Archief
Archief met als categorie 'nieuws'
Laatste nieuwsberichten met een aantal
Laatste nieuwsberichten met een aantal en een categorie
Één nieuwsbericht met de reacties
Inloggen
Uitloggen
Registreren
De admin vind je hier, afhankelijk van je rechten kan je een van de volgende taken uitvoeren:
(afbeeldingen)
Persoonlijke Gegevens Wijzigen (wachtwoord bijv)
Nieuws Toevoegen
Nieuws Wijzigen/Verwijderen
Reacties Modereren
Gebruikers Management (verwijderen en/of rechten)
Ipadres Bannen (dat ziet er dan zo uit)
Er zijn 5 type gebruikers;
-Gasten, staan niet in de database en moeten zelf hun naam/email & 'vraag' invullen om te kunnen reageren.
-Lezers, hoeven alleen in te loggen om te reageren. Zij hoeven niks op te geven.
-Posters kunnen nieuwsberichten plaatsen en hun _eigen_ berichten wijzigen.
-Redacteurs kunnen alle nieuwsberichten aanpassen en reacties weggooien.
-Admins kunnen ipadressen blokkeren maar ook de gebruikers een andere functie aanmeten of verwijderen.
Als redacteurs of moderators zijn ingelogd dan zien zij ook een kruisje naast een reactie om die direct te verwijderen. Als je de rechten heb om een bericht te editten zie je ook een knopje naast een 'titel' van een bericht om gelijk naar de juiste plek in de admin te komen...
In de configuratie.php kan je een aantal settings opgeven:
- Anoniem posten ja of nee, anonieme posters moeten een simpele vraag beantwoorden wat spam voorkomt.
- Berichten per pagina voor bijv. het Archief, dan krijg je een volgende/vorige knopje.
- Naam & gegevens van de website en jou naam als webmaster voor mooie foutmeldingen.
Verder zie je mooie ubb knopjes met dank aan Chris Wetherell en een gedeelte van de ubb erigi's heb ik ergens op het internet gevonden (orginele maker vergeten op te schrijven). De rest is wel volledig door mij zelf van de grond af aan gebouwd :).
Vind je het een cool systeem en wil je het gebruiken? Wees dan zo lief om hier mij te bedanken door 1 euro (via de telefoon) over te maken voor een goed doel. De Henzenrunners zamelen geld in voor kinderen met kanker die eigenlijk al opgegeven zijn. Hun motto is 'Trachten leven toe te voegen aan de dagen, waar geen dagen meer kunnen worden toegevoegd aan het leven.'. Bekijk hier de video waarin wij laten zien wat we doen, en waarom wij in 2 en een halve dag van Parijs naar Rotterdam rennen!
Succes, commentaar en onderbouwde kritiek is altijd welkom!
mvg,
Arjan
Voorbeeld: http://test.i-cey.net/nieuwssysteem/nieuws.php?actie=nieuwsb
Gesponsorde koppelingen
PHP script bestanden
251 reacties op 'Arjan's Nieuwssysteem v2.5'
Gesponsorde koppelingen
Als je er dus echt een probleem mee hebt kan je het inlog/uitlog gedeelte op een aparte webpagina plakken... dan heb je dat output buffering niet nodig :).
Nieuws Toevoegen
Nieuws Wijzigen/Verwijderen
Reacties Modereren
Gebruikers Management (verwijderen en/of rechten)
Ipadres Bannen (dat ziet er dan zo uit)
Dubbelop http://, bij firefox kom ik bij de eerste op Elsevier uit..
2
3
4
[/quote]
Het zou handig zijn dat het ergens wordt uitlegt ;) Dat je dat ook moet instellen.
Nu gebruik ik dit dus op de index2.php voor wat betreft de opmaak van de lay-out en dan ziet de link bij mij er zo uit:
http://www.bearded-collies.net/index2.php?id=68&actie=registreren
Nu vraag ik me dus af of op de pagina gebruikers.php dit:
2
3
echo '<a href="?actie=registreren">Registreren</a>? | Naam: <input type="text" title="Vul hier uw naam in." name="txtnaam" size="15">';
?>
ook verandert zou moeten worden?
EDIT: Als ik nieuws plaats en naar http://www.ngame.nl/nieuws.php ga zie ik niks.
En ik kom hier niet uit: SELECT * FROM tabel
Jeroen, eerst inloggen (?actie=inloggen) en daarna naar de admin.
Dit is id 1. Als je een nieuw bericht aanmaakt krijg je 2 (denk ik). Je moet dan toch telkens een andere link includen om het goede bericht te weergeven?
http://test.i-cey.net/nieuws.php?actie=nieuwsberichten&aantal=1
Dan krijg je het allerlaatste bericht. Eventueel kan je er ook categorie achter zetten, dan haal je het laatste bericht uit een bepaalde categorie. (voorbeeld: klik).
Daarbij... die CAPTCHA systemen zijn door spambots tegenwoordig helemaal geen probleem meer. Tenzij je ze heel moeilijk gaat maken maar dan snappen 'mensen' die plaatjes ook niet meer.
En handmatige spambots? Tot nu toe vind ik een bot vrij automatisch ;). Als je kijkt naar het patroon zie ik daar weinig handmatigs in. Uitzonderingen daargelaten hoor... Mijn 'vraag' systeem is niet eens zo heel erg gek. Iedereen weet het antwoord, het kost vrij weinig moeite en ik heb nog geen spam op mijn server gezien terwijl de url vrij verspreid is. Maar je zou die simpele vraag natuurlijk ook kunnen vervangen door een array van vragen, of eruit slopen... dat is aan jou.
Of je registreerd jezelf, dan hoef je helemaal geen gegevens meer in te vullen behalve een bericht ;).
http://www.freewebs.com/haampie/index.html
Ik moest één voor één de plaatjes uploaden :S, vandaar dat er maar 2 plaatjes zijn.. Verder kloppen er ook nog een aantal dingen niet.. als je em gaat checken kom je vast honderden fouten tegen want ik heb dit script niet van mezelf en heb heel snel overbodige code weggehaald
www.domein.be/admin/?pagina=wijzigen&nieuwsid=1
dus kan ik het bericht niet editten
want zo is mijn mappen structuur --> www.domein.be/nieuws/admin/index.php?...
De oplossing is simpel, registreer jezelf, en verander in phpmyadmin jou acount van lezer naar admin :).
Maar ff vraagje:
Heb je het registratie gedeeelte aangepast? Ik bedoel: ik zie geen mail() meer? Ik wou namelijk even alles wat gemaild werd echoen (ben nog aan het prutsen met mail() dus woe tijdeljk ff echo). Maar ik kon in verchlijking met versie 2 niet meer terugvinden zoals ik het toen had gedaan. heb je mischien een idee hoe ik alles wat gemaild kan worden nu moet echoen. Ik zie wel een aantal dinen staan maar ik weet niet welke ik moet echoen. Het gaat naar mijn weten om dit gedeelte: (nieuws.php)
2
3
4
5
6
7
8
9
10
11
12
13
14
15
if($_SERVER['REQUEST_METHOD'] == "POST")
{
if(isset($_SESSION['gebruiker']))
{
$gebruikerarray = $_SESSION['gebruiker'];
}else{
$gebruikerarray = array();
}
$gebruikerarray['naam'] = strip_tags($_POST['txtnaam']);
$gebruikerarray['email'] = strip_tags($_POST['txtemail']);
$_SESSION['gebruiker'] = $gebruikerarray;
}
registreren();
Ziet er goed uit, maar tis een beetje een vertakking waarin je niet snel en duidelijk kan terugspringen.
Ik loop vast met dit van de pagina: gebruikers.php regel 103
wat aan code dit is:
Geeft deze foutmelding:
Warning: Cannot modify header information - headers already sent by (output started at /vhosts/www/www.bearded-collies.net/index2.php:45) in /vhosts/www/www.bearded-collies.net/nieuwssysteem/inhoud/gebruikers.php on line 103
Heb je hulp voor mij?
Weet iemand of er een andere manier is om de juiste functies op te roepen als ik de nieuwsitems op mijn startpagina wil laten zien?
Met phpmyadmin heb ik de gebruiker op geactiveerd gezet. het wachtwoord ingevoerd ( gewoon dus geen sha1) maar volgens mij gaat er iets niet goed met de cookie.
Ik heb op mijn laptop PHP 4.4.2, Apache/2.0.55 (Win32) en mysql draaien. Ik zou (als redelijke newbe) niet weten hoe ik daar een mailserver op installeer
Maareh..waarom een nieuwssysteem als je al PhpBB hebt? Maak een subforum nieuws aan, lees dat subforum uit en pleur dat op de frontpage. Je kan prima de PhpBB database gebruiken namelijk.
ps: ben nog maar 1 maandje bezig met php maar ken er toch al genoeg van denk ik toch.
Maar ik krijg deze fout bij het aanmelden:
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /usr/export/www/hosting/fakher/nieuws/inhoud/gebruikers.php on line 274
Uw naam: Grean
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /usr/export/www/hosting/fakher/nieuws/inhoud/gebruikers.php on line 294
Wat is hier de fout?
Persoonlijk zou ik voor de laatste optie kiezen, en gewoon een net systeem schrijven om met de juiste GET variabelen de juiste pagina op te roepen. Zoals ook op http://www.arjaninkenia.nl/, klik maar op een link en kijk naar de url. Dat is helemaal niet moeilijk te maken.
Een show.php maken, deze show.php laat de laatste X laatste nieuwsberichten zien. Deze kan men dan makkelijk includen in zijn index.php
Of een list.php maken die het nieuws in het kort geeft, dus zeg maar de eerste X woorden van een nieuwsbericht! Dan een link met LEES MEER, en als men daarop klikt dan komt men in ?actie=nieuwsberichten&aantaal=X
Mss idee?
Super goed scriptje! werkt als een tierelier, alleen hoe kan ik de stijl aanpassen (ik heb al ontdekt dat je dat doet met javascript.js)? Je gebruikt heel de tijd een tabel met border 1.. alleen ik zie dit nergens staan.. nu is mijn vraag hoe kan ik dit aanpassen? en zorgen dat ik het grafisch helemaal kan inplementeren in mijn site?
Alvast bedankt!
Ben lokaal het een en ander aan het uitproberen.
Heb 2 vragen:
1. Hoe kan ik op de nieuws pagina, ipv bijv 5 volledige berichten, 1 volledig laten zien en de andere 4 voor een gedeelte met een lees meer mogelijkheid.
2. Kan ik via de admin ook foto's aan een bericht koppelen?
Al met al, puik werk man!
;-)
Het werkt nu perfect, mijn complimenten Arjan! :)
Dan heb ik nog 2 vragen:
Op dit moment moeten ongeregistreerde gebruikers de hoofdstad invullen bij het plaatsen van een reactie, dit zou ik graag uit willen zetten. Welke regels in de code moet ik hiervoor weghalen/veranderen?
En de 2e vraag, als je 1 keer hebt gereageerd, worden je ingevoerde gegevens (naam, email en antwoord) automatisch opgeslagen zodat je ze niet nog een keer in hoeft te vullen (bij niet-geregistreerde gebruikers). Hoe kan ik dit uitzetten, zodat iedere keer opnieuw de naam ingevuld moet worden?
Alvast bedankt.
Het is alleen jammer de functie lees meer er niet inzit! Dat zou pas helemaal geweldig zijn.
Dit script is eigenlijk niet te gebruiken voor echte nieuwssites. Als iemand een heel verhaal wil schrijven is dit niet echt pratkisch.
Een script waar je bijv de eerste 3 regels kan lezen en dan een link "lees meer" en dat je dan het hele bericht kan lezen. Dat zou pas echt mooi zijn.
Helaas heb ik niet zo veel kennis van PHP dat ik dit er bij kan scripten.
if(strlen($bericht) > 200)
{
$bericht = substr($bericht, 0, 200);
$bericht .= ' <a href="actie=nieuwsbericht&nieuwsid='.$nieuwsid.'">Klik voor meer...</a>';
}
Dat zet je in het nieuwsberichten gedeelte, en die verwijst vervolgens door naar één enkel bericht.
Jaap, de makkelijkste manier is om het veld om te zetten naar een 'hidden field' met als inhoud het correcte antwoord. Dat is de eenvoudigste manier. Met betrekking tot je 2e probleem. Of je slaat de array niet meer op in de sessie, of je verwijderd de sessie.
het enige wat ik zeg is dat ik het een super script vind maar dat ik het jammer vind dat het geen gebruik maakt van een lees verder methode omdat ik daar zelf naar opzoek ben.
ALS dat erin zou zitten was het script voor mij namelijk helemaal perfect geweest.
Ik denk dus dat je het verkeerd hebt opgevat! Miscommunicatie ... kan gebeuren!
Je post een bericht dat ik: if(strlen($bericht) > 200)
{
$bericht = substr($bericht, 0, 200);
$bericht .= ' <a href="actie=nieuwsbericht&nieuwsid='.$nieuwsid.'">Klik voor meer...</a>';
}
moet invoegen. Kun je me vertellen in welk bestand dat moet en vanaf welke regel?
Bedankt
Ik heb op mijn index pagina het laatste bericht en een menutje toegevoegd als dit:
<a href="?actie=archief">archief</a> | <a href="?actie=inloggen">inloggen</a> | <a href="?actie=registreren">registreren</a>
Na het inloggen komt netjes de melding dat je ingelogd bent en onder welke naam.
Afhankelijk van wat voor type gebruiker heeft ingelogd zou ik het menutje iets anders willen laten uitzien zoiets als:
<a href="?actie=archief">archief</a> | <a href="?actie=uitloggen">uitloggen</a> | <a href="?admin/?pagina=gebruikers">instellingen</a> en ergens je inlognaam.
Zoiets als wat hier op de site ook te zien is na het inloggen.
Ik begrijp dat je alleen de backbone hier wil behandelen, maar aangezien jij die beter kent dan ik, graag je advies.
zou ik ook de functie controleerinlog() daarvoor kunnen gebruiken en deze uitbreiden bij if($aantal == 1) met de hele switch om het menutje te echoen? Of doe ik daarmee afbreuk aan het doel van de functie?
de controleerinlog() wordt in de index pagina al aangeroepen, of is het netter de sessie en switch type in de index pagina op te nemen na deze controle
header("Location:?actie=inloggen");
Hierdoor blijf ik op dezelfde pagina staan omdat de laatste get de actie=inloggen is geweest.
Hoe kan ik terug gaan naar mijn vorige url? Dus de url voor het inloggen?
Kun je dat alleen met zoiets oplossen?
<script type=\"text/javascript\"> setTimeout ('history.go(-2)', 1000); </script>
het ziet er allemaal goed uit!
Maar nou wil ik naast nieuwslezer, -poster, redacteur en admin ook nog Moderator invoegen. (Deze kan alleen reacties modereren en ip bannen).
Ik heb al in het menu gezet dat dat moderators kunnen, en ook in de database 'Moderator' ingevoegd. En bij het gebruikersmanagment, alleen als ik dan een gebruiker moderator wil maken, pakt hij 'm niet..
Heb jij een tip voor me?
In mijn index haal ik nu 5 nieuwberichten op. Da's best wel een eind scrollen ;-)
Een gedeelte van de berichten laten zien met een lees meer is een goede oplossing. Hierboven ergens geef je daar wat advies over door het onderstaande in het nieuwsberichten gedeelte te stoppen:
if(strlen($bericht) > 200)
{
$bericht = substr($bericht, 0, 200);
$bericht .= ' <a href="?actie=nieuwsbericht&nieuwsid='.$nieuwsid.'">Klik voor meer...</a>';
}
In dat stuk is $bericht niet bekend, heb de query uitgebreid met nieuwsBericht en deze aan $bericht toegevoegd.
Daarna wordt nieuwsbericht($nieuwsid) aangeroepen voor het aantal berichten. De berichten worden dan geechoed, niet met 200 karakters maar het volledige bericht. Opzich is dat wel duidelijk omdat in nieuwsbericht $bericht volledig gevuld wordt en dus ook volledig weergegeven zal worden.
Als ik $bericht op dat moment in kort tot 200 karakters, dan....krijg ik het bericht nooit meer volledig te zien...
Graag een advies om het wel voor elkaar te krijgen, want ik zal geheid wel iets over het hoofd hebben gezien :-(
Na het toevoegen van een reaktie krijg je deze melding:
[Hieronder is de mogelijkheid om te reageren op het bovenstaande nieuwsbericht etc etc..
Uw reactie is succesvol toegevoegd, klik hier om deze te bekijken!]
Het liefst zou ik alleen de zin met succesvol willen zien, maar het lukt me niet om dat voorelkaar te krijgen.
De functie reactietoevoegen($nieuwsid) wordt in het formulier aangeroepen waar de eerste deel van de tekst in verwerkt is. Na het toevoegen wordt de zin met succesvol er onder gezet, vandaar de output zoals hierboven.
Hoe kan ik ervoor zorgen dat ik alleen de zin met succesvol geechoed krijg?
Heb 't bekeken maar tis nog niet gelukt.
Ik kijk verder, maar in de database heb ik het ook al veranderd..
Moet juist daarin nog meer veranderd worden of ligt het echt aan die switches?
Maar goed..
Daarnaast wil ik net als zackat de 'full-story' gaan gebruiken. Maar als ik de code invoeg op de plek dat ik het wil, en ik up' alles, ga naar de pagina van het nieuws en dan krijg ik een compleet witte pagina te zien..
Idee'tje?
Nog 1 laatste dingetje.. :P
Ik heb ook ergens van hier een pm systeem gedownload en al naar mijn stijl gezet.
Zou ik deze in het nieuwssysteem kunnen zetten? Zodat de posters onder elkaar ook nog contact kunnen hebben?
Met betrekking tot je PM systeem... ik heb complete cmsén, gastenboeken, fotoalbums en wat al niet meer erin geintergreerd. Dus ik neem aan dat een pm-systeem ook niet zo'n probleem moet zijn. De gebruikersdatabase is vrij recht-toe-recht-aan. Kwestie van een nieuwe tabel aanmaken met een uniek ID, userid van de verzender, ontvanger en het bericht/titel.
Gaat zoiets wel goed, of kan ik problemen verwachten als er tig mensen 'tegerlijkertijd' op verschillende berichten reageren?
Nu heb ik het geupload naar de hosting provider, werkt perfect op 1 ding na; pagina refreshed niet na het inloggen.
Voor het inloggen heb ik net als hier bij phphulp een link gemaakt op de pagina. Na het inloggen op de localhost kan ik opbv mijn gebruikersaccount berichten wijzigen etc.
Ook bij de versie bij de hosting provider kan ik na inloggen berichten wijzigen etc maar deze optie is alleen beschikbaar als ik de pagina handmatig refresh/reload
Waarom gebeurt dat niet automatisch net als op de localhost?? heeft dat iets met de provider te maken? Wat moet ik doen zodat de pagina niet handmatig geladen hoeft te worden?
Terwijl ik de tabels heb ingevoerd.
Warning: mysql_connect() [function.mysql-connect]: Access denied for user: 'tibiot.nl@localhost' (Using password: NO) in /customers/tibiot.nl/tibiot.nl/httpd.www/nieuws/admin/functies.php on line 9
Er kon geen verbinding met de server worden gemaakt.
wat moet ik doen?
Helaas kon de registratie email niet verstuurd worden! Neem contact op met de webmaster.
Moet ik ergens een smtp instellen of ergens een email adres neer zetten.
Het programma maakt wel een gebruiker aan in de database, maar ik kan dan nog niet inloggen.
Wie kan mij helpen?
"U bent niet correct ingelogd!"
en ik heb gelezen dat ik ?actie=registreren erachter moet zetten alleen als ik dat doe blijft het er staan.
het script staat hier: http://www.vak414.com/nieuwstest/mynews_1.6.4/admin/index.php
dus ik zet het er achter
http://www.vak414.com/nieuwstest/mynews_1.6.4/admin/index.php?actie=registreren
alleen het blijft het zelfde wat moet ik nu doen?
Waarschijnlijk kan je je zelf niet als admin registreren en zal je dit aan het begin ofzo moeten doen, bij de installatie misschien.
Staat dit niet een read-me file ofzo? Anders bij install ofzo.
Ik kreeg een forbidden als ik hier naar toe ga:
http://www.vak414.com/nieuwstest/mynews_1.6.4/
Misschien ff mapje CHMODDEN 777?
Warning: Supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/vak414.com/httpdocs/nieuwstest/mynews_1.6.4/inhoud/gebruikers.php on line 274
Uw naam: ***** ( prive )
Warning: Supplied argument is not a valid MySQL result resource in /home/httpd/vhosts/vak414.com/httpdocs/nieuwstest/mynews_1.6.4/inhoud/gebruikers.php on line 294
Uw emailadres: ***** (prive)
Fatal error: Call to undefined function: sha1() in /home/httpd/vhosts/vak414.com/httpdocs/nieuwstest/mynews_1.6.4/inhoud/gebruikers.php on line 317
wat kan ik hier aan doen?
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
include("configuratie.php");
$sQuery = "CREATE TABLE blokkeren (
blokkerenID int(4) NOT NULL auto_increment,
blokkerenIP varchar(20) NOT NULL default '',
blokkerenTot datetime default NULL,
blokkerenReden varchar(255) NOT NULL default '',
PRIMARY KEY (blokkerenID)
);";
if(!$sResult = MySQL_Query($sQuery))
{
echo "Error!- De 1e query kan niet uitgevoerd worden!";
echo "<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
echo "1e Query succesvol uitgevoerd!";
}
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
include("configuratie.php");
$sQuery = "CREATE TABLE gebruikers (
gebruikersID int(4) NOT NULL auto_increment,
gebruikersNaam varchar(255) NOT NULL default '',
gebruikersType enum('nieuwslezer','nieuwsposter','redacteur','admin') NOT NULL default 'nieuwslezer',
gebruikersWachtwoord varchar(40) NOT NULL default '',
gebruikersEmail varchar(255) NOT NULL default '',
gebruikersActivatie enum('j','n') NOT NULL default 'n',
gebruikersActivatieCode varchar(40) NOT NULL default '',
gebruikersCookieCode varchar(40) NOT NULL default '',
PRIMARY KEY (gebruikersID)
);";
if(!$sResult = MySQL_Query($sQuery))
{
echo "Error!- De 2de query kan niet uitgevoerd worden!";
echo "<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
echo "2de Query succesvol uitgevoerd!";
}
?>
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
include("configuratie.php");
$sQuery = "CREATE TABLE nieuws (
nieuwsID int(4) NOT NULL auto_increment,
gebruikersID int(4) NOT NULL default '0',
nieuwsTitel varchar(255) NOT NULL default '',
nieuwsBericht text NOT NULL,
nieuwsDatum datetime default NULL,
nieuwsCategorie varchar(255) NOT NULL default '',
nieuwsBron varchar(255) NOT NULL default '',
nieuwsBronUrl varchar(255) NOT NULL default '',
PRIMARY KEY (nieuwsID)
);";
if(!$sResult = MySQL_Query($sQuery))
{
echo "Error!- De 3de query kan niet uitgevoerd worden!";
echo "<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
echo "3de Query succesvol uitgevoerd!";
}
?>
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
include("configuratie.php");
$sQuery = "
CREATE TABLE reacties (
reactieID int(4) NOT NULL auto_increment,
gebruikersID int(4) NOT NULL default '0',
nieuwsID int(4) NOT NULL default '0',
reactiePoster varchar(255) NOT NULL default '',
reactiePosterEmail varchar(255) NOT NULL default '',
reactieDatum datetime default NULL,
reactieBericht text NOT NULL,
reactieIP varchar(20) NOT NULL default '',
PRIMARY KEY (reactieID)
);
";
if(!$sResult = MySQL_Query($sQuery))
{
echo "Error!- De 4de query kan niet uitgevoerd worden!";
echo "<BR>";
echo MySQL_Error();
echo "<BR>";
echo MySQL_Errno();
} else
{
echo "4de Query succesvol uitgevoerd!";
}
?>
sla op als install.php en voer deze voor het gebruik uit. Ik heb zelf alleen de pagina nog niet aan de praat gekregen / www.frankploeg.nl/nieuws als ik in admin selectie wil komen dan krijg ik verkeerde rechten als foutmelding met nog aan het kijken waarom ik dat krijg.
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
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
/*
Deze functie controlleerd of iemand is ingelogd, en zoniet of deze persoon wellicht een koekje heeft zodat we hem kunnen gaan inloggen.
*/
function controlleerinlog()
{
if(isset($_COOKIE['koekje']))
{
$koekje = mysql_real_escape_string($_COOKIE['koekje']);
$query = "SELECT * FROM gebruikers WHERE gebruikersCookieCode = '".$koekje."'";
$resultaat = mysql_query($query);
if ($resultaat)
{
$aantal = mysql_num_rows($resultaat);
}else{
$aantal = 0;
}
if($aantal == 1)
{
$rij = mysql_fetch_array($resultaat);
$id = $rij['gebruikersID'];
$naam = $rij['gebruikersNaam'];
$type = $rij['gebruikersType'];
$email = $rij['gebruikersEmail'];
$gebruikerarray['id'] = $id;
$gebruikerarray['naam'] = $naam;
$gebruikerarray['type'] = $type;
$gebruikerarray['email'] = $email;
$gebruikerarray['antwoord'] = "Amsterdam";
$_SESSION['gebruiker'] = $gebruikerarray;
//We gooien het koekje weg en vervangen hem met een nieuwe, bij iedere f5 dus...
$random = randomgenerator(18);
$random .= date('U');
setcookie("koekje", sha1($random), time()+60*60*24*30);
$query = "UPDATE gebruikers SET gebruikersCookieCode = '".sha1($random)."' WHERE gebruikersID = ".$id."";
$resultaat = mysql_query($query);
}
}
}
function inloggen($naam,$wachtwoord)
{
$naam = mysql_real_escape_string($naam);
$wachtwoord = mysql_real_escape_string(sha1($wachtwoord));
if(isset($_SESSION['gebruiker']))
{
$gebruikerarray = $_SESSION['gebruiker'];
}else{
$gebruikerarray = array();
}
$query = "SELECT * FROM gebruikers WHERE gebruikersNaam = '".$naam."'";
$resultaat = mysql_query($query);
if ($resultaat)
{
$aantal = mysql_num_rows($resultaat);
}else{
$aantal = 0;
}
if($aantal == 1)
{
$rij = mysql_fetch_array($resultaat);
$id = $rij['gebruikersID'];
$naam = $rij['gebruikersNaam'];
$type = $rij['gebruikersType'];
$email = $rij['gebruikersEmail'];
$dbwachtwoord = $rij['gebruikersWachtwoord'];
$activatie = $rij['gebruikersActivatie'];
if($activatie == "j")
{
if($dbwachtwoord == $wachtwoord)
{
$gebruikerarray['id'] = $id;
$gebruikerarray['naam'] = $naam;
$gebruikerarray['type'] = $type;
$gebruikerarray['email'] = $email;
$gebruikerarray['antwoord'] = "Amsterdam";
$_SESSION['gebruiker'] = $gebruikerarray;
$random = randomgenerator(18);
$random .= date('U');
setcookie("koekje", sha1($random), time()+60*60*24*30);
$query = "UPDATE gebruikers SET gebruikersCookieCode = '".sha1($random)."' WHERE gebruikersID = ".$id."";
$resultaat = mysql_query($query);
header("Location:?actie=inloggen");
echo 'U bent nu ingelogd!';
}else{
echo 'Sorry, uw wachtwoord is niet correct';
}
}else{
echo 'Sorry, deze account is nog niet geactiveerd!';
}
}else{
echo 'Sorry, ik kan geen gebruiker vinden!';
}
}
function overzichtinlog()
{
if(isset($_SESSION['gebruiker']))
{
$gebruikerarray = $_SESSION['gebruiker'];
}
if(isset($gebruikerarray['id']))
{
$id = $gebruikerarray['id'];
$naam = $gebruikerarray['naam'];
}else{
$id = NULL;
}
echo '<div id="inloggen"><div class="tekst">';
if(empty($id))
{
//Niet ingelogd.
echo '<form method="post" name="formulier" action="'.$_SERVER['PHP_SELF'].'?actie=inloggen">';
[/code]
echo '[b]<a href="?actie=registreren">Registreren</a>[/b]? | Naam: <input type="text" title="Vul hier uw naam in." name="txtnaam" size="15">';
moet ik bij dat dikgedrukte ook VOOR Actie bijv: nieuwssysteemv2/ neerzetten ipv dat vraagteken dus?
[code]
echo ' Wachtwoord: <input type="password" title="Vul hier uw wachtwoord in." name="txtwachtwoord" size="15">';
echo ' <input type="submit" value="Inloggen" name="verstuur" title="Inloggen">';
echo '</form>';
}else{
echo 'U bent ingelogd als '.$naam.', klik <a href="?actie=uitloggen">hier</a> om uit te loggen.';
}
echo '</div></div>';
}
function activeren($email,$activatiecode)
{
$activatiecode = mysql_real_escape_string($activatiecode);
$email = mysql_real_escape_string($email);
$query = "SELECT * FROM gebruikers WHERE gebruikersEmail = '".$email."'";
$resultaat = mysql_query($query);
if ($resultaat)
{
$aantal = mysql_num_rows($resultaat);
}else{
$aantal = 0;
}
if($aantal == 1)
{
$rij = mysql_fetch_array($resultaat);
{
$id = $rij['gebruikersID'];
$naam = $rij['gebruikersNaam'];
$geactiveerd = $rij['gebruikersActivatie'];
$gactivatiecode = $rij['gebruikersActivatieCode'];
if($geactiveerd == "n")
{
if($activatiecode == $gactivatiecode)
{
$wachtwoord = randomgenerator(10);
$query = "UPDATE gebruikers SET gebruikersWachtwoord = '".sha1($wachtwoord)."', gebruikersActivatie = 'j', gebruikersActivatieCode = '' WHERE gebruikersID = ".$id."";
$resultaat = mysql_query($query);
if($resultaat)
{
$titel = 'Gegevens Nieuwssysteem '.naamwebsite;
$datum = datumomzetten(date("d m Y"));
$bericht = "Geachte heer/mevrouw, \r\n \r\nOp ".$datum." is op de onze website ".naamwebsite." (".urlwebsite.") uw account geactiveerd. U kunt nu inloggen met de volgende gegevens:\r\n\r\nGebruikersnaam: ".$naam."\r\nWachtwoord: ".$wachtwoord."\r\n\r\nMvg\r\n".naamwebmaster."";
$headers = 'MIME-Version: 1.0'. "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1'. "\r\n";
$headers .= 'X-Priority: 3'. "\r\n";
$headers .= 'X-MSMail-Priority: Normal'. "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion().''."\r\n";
$headers .= 'From: '.naamwebmaster.' <'.emailwebmaster.'>'."\r\n";
$verstuur = mail($email, $titel, $bericht, $headers);
if($verstuur)
{
echo 'Uw activatie is gelukt, uw ontvangt automatisch een email met daarin uw nieuwe wachtwoord.';
}else{
echo 'Helaas kon de registratie email niet verstuurd worden! Neem contact op met de webmaster.';
}
}
}else{
echo 'Sorry, maar deze activatiecode is niet correct!';
}
}else{
echo 'Sorry, maar deze gebruiker is al geactiveerd!';
}
}
}else{
echo 'Sorry, ik heb geen gebruiker met uw emailadres kunnen vinden!';
}
}
function registreren()
{
if(isset($_SESSION['gebruiker']))
{
$gebruikerarray = $_SESSION['gebruiker'];
if(isset($gebruikerarray['naam']))
{
$naam = $gebruikerarray['naam'];
}else{
$naam = NULL;
}
if(isset($gebruikerarray['email']))
{
$email = $gebruikerarray['email'];
}else{
$email = NULL;
}
}else{
$naam = NULL;
$email = NULL;
}
$error = false;
if(isset($_POST['verstuurd']))
{
$verstuurd = $_POST['verstuurd'];
}else{
$verstuurd = false;
}
echo '<div id="registreren"><div class="tekst"><h2>Registreren:</h2>';
echo '<form method="post" name="formulier" action="'.$_SERVER['PHP_SELF'].'?actie=registreren">';
echo '<p>Op deze pagina kunt u zich registreren voor dit nieuwssysteem. Wat zijn daarvan de voordelen? Allereerst wordt uw nickname veiliggesteld. Anderen kunnen dus niet meer onder uw naam reageren. Verder krijgt u een kleine profielenpagina zodat u wat meer informatie over uzelf kwijt kunt. Verder krijgen geregistreerde gebruikers een mooi kleurtje waardoor u zich kunt onderscheiden van de rest!</p>';
echo '<input type="hidden" name="verstuurd" value="true">';
//Naam
if(empty($naam))
{
$error = true;
echo '<p><label for="txtnaam">Naam:</label><br><input type="text" title="Vul hier uw naam in." name="txtnaam" size="40" value="'.$naam.'"></p>';
}else{
$query = mysql_query("SELECT COUNT(*) FROM gebruikers WHERE gebruikersNaam = '".$naam."'");
$resultaat = mysql_result($query, 0, 0);
if($resultaat)
{
$error = true;
echo '<p><label for="txtnaam">Naam:</label><br><input type="text" title="Vul hier uw naam in." name="txtnaam" size="40" value="'.$naam.'"></p><p class="error">Deze naam is al in gebruik!</p>';
}else{
echo '<p>Uw naam: '.$naam.'</p><input type="hidden" title="Vul hier uw naam in." name="txtnaam" size="40" value="'.$naam.'">';
}
}
if(empty($email))
{
$error = true;
echo '<p><label for="txtemail">Emailadres:</label><br><input type="text" title="Vul hier uw emailadres in." name="txtemail" size="40" value="'.$email.'"></p>';
}else{
if(email_validator($email))
{
$query = mysql_query("SELECT COUNT(*) FROM gebruikers WHERE gebruikersEmail = '".$email."'");
$resultaat = mysql_result($query, 0, 0);
if($resultaat)
{
$error = true;
echo '<p><label for="txtemail">Emailadres:</label><br><input type="text" title="Vul hier uw emailadres in." name="txtemail" size="40" value="'.$email.'"></p>';
echo '<p class="error">Dit emailadres is al in gebruik!</p>';
}else{
echo '<p>Uw emailadres: '.$email.'</p><input type="hidden" title="Vul hier uw emailadres in." name="txtemail" size="40" value="'.$email.'">';
}
}else{
//email is fout
$error = true;
echo '<p><label for="txtemail">Emailadres:</label><br><input type="text" title="Vul hier uw emailadres in." name="txtemail" size="40" value="'.$email.'"></p>';
echo '<p class="error">Helaas kan ik dit emailadres niet goedkeuren.</p>';
}
}
if((isset($naam)) && (isset($email)) && ($error == false) && ($verstuurd == true))
{
$datum = datumomzetten(date("d m Y"));
$sessieid = strip_tags(session_id());
$activatiecode = sha1($sessieid);
$query = "INSERT INTO gebruikers (gebruikersNaam, gebruikersEmail, gebruikersActivatieCode) VALUES ('".mysql_real_escape_string($naam)."', '".mysql_real_escape_string($email)."', '".$activatiecode."')";
$resultaat = mysql_query($query);
if($resultaat)
{
$titel = 'Registratie Nieuwssysteem '.naamwebsite;
$bericht = "Geachte heer/mevrouw, \r\n \r\nOp ".$datum." is op de onze website ".naamwebsite." (".urlwebsite.") een account geregistreerd met uw emailadres. Mocht u zich niet geregistreerd hebben dan kunt u deze email als niet verstuurd beschouwen. \r\n \r\nIndien u zich wel geregistreerd heeft op onze website dan moet u uw registratie bevestigen door de onderstaande link te volgen: \r\n \r\n".urlnaarnieuws."?actie=activeren&email=".$email."&activatiecode=".$activatiecode."";
$headers = 'MIME-Version: 1.0'. "\r\n";
$headers .= 'Content-type: text/plain; charset=iso-8859-1'. "\r\n";
$headers .= 'X-Priority: 3'. "\r\n";
$headers .= 'X-MSMail-Priority: Normal'. "\r\n";
$headers .= 'X-Mailer: PHP/'.phpversion().''."\r\n";
$headers .= 'From: '.naamwebmaster.' <'.emailwebmaster.'>'."\r\n";
$verstuur = mail($email, $titel, $bericht, $headers);
if($verstuur)
{
echo '<b>Uw registratie is ontvangen</b>! Op uw emailadres krijgt u een email met daarin een registratie link. Dit is om te bevestigen dat het opgegeven emailadres echt wel van u is. Net het klikken op die link word uw account geactiveerd en krijgt u een wachtwoord opgestuurd.';
}else{
echo 'Helaas kon de registratie email niet verstuurd worden! Neem contact op met de webmaster.';
}
}else{
echo 'De registratie kon niet aan de database worden toegevoegd. Neem contact op met de webmaster.';
}
}else{
echo '<p><label title="Verstuur uw bericht."><input type="submit" value="Verstuur" name="verstuur"></p>';
echo '<p>Na het versturen van dit formulier krijgt u een e-mail met daarin een link om uw aanmelding te bevestigen. Vervolgens kunt u na het inloggen uw profiel aanpassen en een eigen wachtwoord invoeren.</p>';
}
echo '</form></div></div>';
}
?>
echo '<a href="?actie=registreren">Registreren</a>? | Naam: <input type="text" title="Vul hier uw naam in." name="txtnaam" size="15">';
moet ik bij dat dikgedrukte ook VOOR Actie bijv: nieuwssysteemv2/ neerzetten ipv dat vraagteken dus?
zou je me ook kunnen zeggen waar ik dat php-deeltje 'set locale' precies moet plaatsen? thnx
http://tdakforum.td.funpic.de/
Dit is mijn site... als je in het menu naar nieuws gaat, dan wil ik dat er net zoals bij de andere pagina's het nieuwsbericht met daaronder de reacties + links naar 5 andere nieuwsberichten in de tabel komt! Hoe kan ik dit includen bij mijn 'nieuws'pagina? Wat is hiervoor de code? Of hoe moet ik dit aanpakken?
Ik heb gemaakt dat als je op reacties klikt dat je dan gaat naar:
index.php?pagina=nieuwspagina&?actie=nieuwsbericht&nieuwsid=1#reacties
op index.php heb ik deze code staan:
maar dan krijg ik deze error,
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\wamp\www\Nieuwssysteemv2\index.php:6) in C:\wamp\www\Nieuwssysteemv2\nieuws\nieuws.php on line 2
hoe fix ik dit...?
Op dit gebied ben ik nog niet zo bekend op dit gebied.
Ik heb dit nieuwssysteem geinstalleerd en ook de query's uitgevoerd, nu is het probleem dat ik niet in het admin-paneel kan komen omdat hij zegt 'U bent niet correct ingelogt!'.
Wat moet ik hiermee doen?
Alvast bedankt voor de reactie.
Met vriendelijke groet,
Mark
Ik lever er geen standaard admin account bij omdat velen vergeten deze aantepassen/te verwijderen.
Alleen heb ik een vraag:
In de administratie. Kan daar ook meer ingevult worden? (bijv. woonplaats, website) En dat je het profiel kunt linken aan de naam als iemand een berichtje plaatst?
zo ja? ik welke richting moet ik zoeken om dat voor elkaar te krijgen?
heb wel configuratie.php ingevuld (kloppend)
Doe ik iets verkeer arjan?
www.digibak.nl/nieuws/nieuws.php
en www.digibak.nl/nieuws/admin
Ik heb het draaiend en werkt érg goed!
Nu heb ik 3 categorien voor het nieuws.
Hoofdnieuws
Kortnieuws
Evenementen
Dezen werkte ik altijd met de hand op de voorpagina bij.
Nu ik dit nieuwssysteem heb, wil ik dat dat ook automatisch gaat.
Ik heb het archief al aangepast zodat het zo geplaatst kan worden.
Archief pagina hoofdnieuws:
http://www.112zwaagwesteinde.nl/nieuws.php?actie=archief&aantal=5&categorie=hoofdnieuws
Wie o wie kan mij helpen.
Ik gebruik bij de nieuwe opzet frames en htm(l).
Alvast heeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeel erg bedankt!
Uw naam: *****
Warning: mysql_result(): supplied argument is not a valid MySQL result resource in /storage/mijndomein/users/065275/public/sites/www.arjennieuwenhuis.nl/Ajax/web/nieuw/inhoud/gebruikers.php on line 294
wat doe ik fout?
Om te reageren heb je een account nodig en je moet ingelogd zijn.
- Details
Door:
Arjan Kapteijn- 7 jaar geleden
- 3.078 x bekeken
- Labels
- Geen tags toegevoegd.
- PHP scripts opties
- Overig
- Nieuwste PHP scripts
- PHP script toevoegen



PHP hulp
0 seconden vanaf nu