Tips voor ontwikkelen van CMS
Op dit moment ben ik bezig met de ontwikkeling van een CMS. Stel dat er 10 klanten zijn die hiervan gebruik maken, dan loggen deze allemaal in op www.aaa.nl. Vervolgens maken ze gebruik van de FCKeditor op www.aaa.nl en de gewijzigde content van hun pagina gaat vervolgens een MySQL database op www.aaa.nl in.
Hierbij liep ik tegen het volgende probleem aan:
Hoe kan ik ervoor zorgen dat men op hun eigen website de bijgewerkte inhoud te zien krijgt? Kortom: hoe lees ik de database van www.aaa.nl uit op bijvoorbeeld www.bbb.nl?
Bij mijn vorige CMS deed ik het volgende: ik sloeg de bijgewerkte content van een webpagina op in bijvoorbeeld overons.inc.php op de domeinnaam www.aaa.nl. Vervolgens kwam de content via include() tevoorschijn op andere domeinnamen. Hierbij maakte ik dus geen gebruik van een database. Ik vind dit nu echter een nogal omslachtige manier, en werk liever met een overzichtelijke database waar alle content in wordt opgeslagen (ook i.v.m. backups).
Iemand een idee hoe ik mijn probleem kan oplossen?
Ook algemene tips over beveiliging, inbouwen van functies en de do's en dont's van het ontwikkelen van een CMS zijn heel erg welkom.
Groetjes,
Anne
http://site1.nl/ (producten aanbieden en informatie geven over je bedrijf)
http://site2.nl/ (content uit MySQL database weergeven)
http://site2.nl/admin/ (klanten kunnen content invoeren)
of verbinding maken via een externe mysqlhost.
Er zit een abonnement aan verbonden, vandaar dat communicatie met de database van www.aaa.nl moet plaatsvinden. Als men dan niet betaalt kan ik met een druk op de knop het systeem afsluiten.
Kan ik niet op een of andere manier op www.bbb.nl verbinding maken met de database van www.aaa.nl??
Groeten,
Tim
Dan kan de client site via daarmee gegevens ophalen. Wanneer het abbo verlopen is, krijgt hij niet meer nieuwe gegevens maar de melding dat hij moet betalen ofzo. Voordeel bij dit systeem is dat de client site dan wel nog steeds kan werken, maar geen recente data meer kan tonen..
Nog even een vraagje: ligt het aan de host van www.aaa.nl of die het ondersteunt om verbinding te maken met een andere website? of ligt het aan de website waarvandaan de database wordt aangeroepen (dus bijvoorbeeld www.bbb.nl)?
EDIT: dat van die API klinkt ook wel aantrekkelijk!via google kan ik echter weinig vinden over het maken van api. Kan jij hier wellicht wel wat info over vinden? Heb er wel eens van gehoord, maar daar blijft het bij :p
Bedankt voor de tip, ga ik zeker verder mee aan de slag!
Gewijzigd op 01/01/1970 01:00:00 door Anne
Ik weet niet of je ergens tutorials kan vinden over het maken van een API, maar je zou als inleiding enkele API's van grote sites kunnen bekijken en daar wat uit leren hoe zij het doen.
De DB server van aaa moet ingesteld zijn om externe connecties toe te laten
www.bbb.nl. Dit moet echter wel veilig genoeg zijn..
Het makkelijkste lijkt mij om inderdaad een externe mysql connectie op te zetten naar de server van idd een API maken door bijv een webservice (met authenticatie). je maakt classes en functies die vervolgens weer gebruikt kunnen worden op de webpage.
Justin schreef op 09.09.2009 11:04:
Het makkelijkste lijkt mij om inderdaad een externe mysql connectie op te zetten naar de server van www.bbb.nl. Dit moet echter wel veilig genoeg zijn..
Is mogelijk, maar ik zou toch ook voor een API gaan, is een stuk veiliger!
Code (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
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
<?php
// Copyright 2005, Google Inc. All rights reserved.
/**
* sample code to create an Adsense account through Adsense API
*/
require_once('lib/nusoap.php');
require_once('common.php');
$server = 'https://sandbox.google.com';
// Comment out the line above and uncomment the line below to use
// the production API server
// $server = 'https://www.google.com';
$namespace = 'http://www.google.com/api/adsense/v3';
// Set up the authentication headers
$email = "<developer_email>REPLACE WITH DEVELOPER EMAIL</developer_email>";
$password = "<developer_password>REPLACE WITH DEVELOPER PASSWORD</developer_password>";
$client_id = "<client_id>NOT RELEVANT</client_id>";
$header = $email . $password . $client_id;
// creating soap client
$wsdl = $server . '/api/adsense/v3/AccountService?wsdl';
$client = new soapclient($wsdl, true);
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
$client->soap_defencoding = 'UTF-8';
// Set the headers; they are needed for authentication
$client->setHeaders($header);
if ($client->fault) {
showMyErrors($client);
return;
}
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
// setting the parameters
$param = "<loginEmail>[email protected]</loginEmail>";
$param .= "<entityType><value>Individual</value></entityType>";
$param .= "<websiteUrl>http://test.aaa.com</websiteUrl>";
$param .= "<websiteLocale>en</websiteLocale>";
$param .= "<usersPreferredLocale>en_US</usersPreferredLocale>";
$param .= "<emailPromotionPreferences>true</emailPromotionPreferences>";
$param .= "<synServiceTypes><value>ContentAds</value></synServiceTypes>";
$param .= "<developerUrl>code.google.com</developerUrl>";
$param = "<ns1:createAccount xmlns:ns1=\"$namespace\">" . $param . "</ns1:createAccount>";
// invoke web service
showCall('createAccount', $param);
$response = $client->call('createAccount', $param, $namespace);
if ($client->fault) {
showMyErrors($client);
return;
}
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
// get back the response
$response = $response['return'];
showCreatedPublisher($response);
// showing the soap
showRequestResponse($client);
?>
// Copyright 2005, Google Inc. All rights reserved.
/**
* sample code to create an Adsense account through Adsense API
*/
require_once('lib/nusoap.php');
require_once('common.php');
$server = 'https://sandbox.google.com';
// Comment out the line above and uncomment the line below to use
// the production API server
// $server = 'https://www.google.com';
$namespace = 'http://www.google.com/api/adsense/v3';
// Set up the authentication headers
$email = "<developer_email>REPLACE WITH DEVELOPER EMAIL</developer_email>";
$password = "<developer_password>REPLACE WITH DEVELOPER PASSWORD</developer_password>";
$client_id = "<client_id>NOT RELEVANT</client_id>";
$header = $email . $password . $client_id;
// creating soap client
$wsdl = $server . '/api/adsense/v3/AccountService?wsdl';
$client = new soapclient($wsdl, true);
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
$client->soap_defencoding = 'UTF-8';
// Set the headers; they are needed for authentication
$client->setHeaders($header);
if ($client->fault) {
showMyErrors($client);
return;
}
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
// setting the parameters
$param = "<loginEmail>[email protected]</loginEmail>";
$param .= "<entityType><value>Individual</value></entityType>";
$param .= "<websiteUrl>http://test.aaa.com</websiteUrl>";
$param .= "<websiteLocale>en</websiteLocale>";
$param .= "<usersPreferredLocale>en_US</usersPreferredLocale>";
$param .= "<emailPromotionPreferences>true</emailPromotionPreferences>";
$param .= "<synServiceTypes><value>ContentAds</value></synServiceTypes>";
$param .= "<developerUrl>code.google.com</developerUrl>";
$param = "<ns1:createAccount xmlns:ns1=\"$namespace\">" . $param . "</ns1:createAccount>";
// invoke web service
showCall('createAccount', $param);
$response = $client->call('createAccount', $param, $namespace);
if ($client->fault) {
showMyErrors($client);
return;
}
$err = $client->getError();
if ($err) {
showSoapClientError($err);
return;
}
// get back the response
$response = $response['return'];
showCreatedPublisher($response);
// showing the soap
showRequestResponse($client);
?>
Ik heb echter geen idee hoe ik hiermee moet omgaan. Ik heb gegevens staan in een MySQL database die ik dus in een API bestand zet? En vervolgens vraag ik dat API bestand op een of andere manier op bij een andere server? Weet iemand hoe ik dit precies kan doen? Of heeft iemand eventueel een klein voorbeeldje??
groetje,s
Anne
Gewijzigd op 01/01/1970 01:00:00 door Anne
je gebruikt een bestand om verbinding te maken met een script op de aaa.nl server. de gegevens die je terug krijg. laat je zien op bbb.nl.
aan de api van google heb je dus weinig. je kan het wel als voorbeeld gebruiken.
Gewijzigd op 01/01/1970 01:00:00 door Daniel H
Dat leverde mij pas ook erg veel gemak op (gewoon met een lokaal programma database bekijken, zonder phpmyadmin etc). En dan ook gewoon grafisch lekker werken.
Even je eigen query() schrijven zodat er steeds verbinding wordt gemaakt.
Eigenlijk niet een API, maar iets simpeler.
Wel even opletten dat je 'zuinige' queries maakt.