Tips voor ontwikkelen van CMS

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Anne

Anne

08/09/2009 16:59:00
Quote Anchor link
Beste allemaal,

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
 
PHP hulp

PHP hulp

23/11/2024 10:15:39
 
Steen

steen

08/09/2009 17:25:00
Quote Anchor link
Gewoon een backend en frontend op een domein plaatsen, iets als:

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.
 
Anne

Anne

08/09/2009 17:34:00
Quote Anchor link
Bedankt voor je reactie!
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??
 
Tim

Tim

08/09/2009 17:36:00
Quote Anchor link
Dat ligt eraan of jouw host dat ondersteunt. Soms is het mogelijk, soms niet. Dit kan je doen door in mysql_connect() niet localhost mee te geven, maar de locatie van jouw database (www.aaa.nl of het IP-adres).


Groeten,
Tim
 
Hipska BE

Hipska BE

08/09/2009 17:43:00
Quote Anchor link
Wat je ook kan doen, zoals veel grote site's ook doen, is een API maken.

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..
 
Anne

Anne

08/09/2009 17:46:00
Quote Anchor link
Bedankt Tim!!
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
 
Hipska BE

Hipska BE

08/09/2009 22:41:00
Quote Anchor link
Kant en klare API systemen zijn er niet, reden daarvoor is dat die per website specifiek zijn en je dus zelf zult moeten bedenken. Je kan als startpunt ervan uitgaan dat je een soort XML of JSON zult moeten tonen aan de bbb website waar die vroeger SQL antwoord gegevens (de rijen) zou krijgen van de aaa server.

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
 
Justin S

Justin S

09/09/2009 11:04:00
Quote Anchor link
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..
 
Jurgen assaasas

Jurgen assaasas

09/09/2009 11:09:00
Quote Anchor link
idd een API maken door bijv een webservice (met authenticatie). je maakt classes en functies die vervolgens weer gebruikt kunnen worden op de webpage.
 

09/09/2009 13:37:00
Quote Anchor link
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!
 
Anne

Anne

10/09/2009 19:58:00
Quote Anchor link
Bedankt voor alle tips. Het is voor mij duidelijk dat ik het beste een API kan gebruiken. Heb de afgelopen 2 dagen lopen zoeken naar API's van grote bedrijven, zoals deze van Google:

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
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);

?>


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
 
Daniel H

Daniel H

10/09/2009 21:05:00
Quote Anchor link
een api moet je zien, als het include van je data op je site.
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
 
Eddy E

Eddy E

10/09/2009 21:19:00
Quote Anchor link
Je zou ook eens kunnen zoeken naar mysql tunnel.
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.
 



Overzicht Reageren

 
 

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.