Is het niet een beetje nutteloos dat er voor elke gebruiker die zich registreerd mysql geinstalleerd word? Bedoel je niet dat er een nieuwe database voor die gebruiker word aangemaakt? Let wel op dat je wel de rechten nodig hebt om een nieuwe database aan te maken (als dit de bedoeling is). Onderstaande stukje code moet je dan ergens in ./includes/usercp_register.php verwerken, dacht ik.
<?php
//
// Maak een database aan met de username
// van nieuw geregistreede gebruiker, ALS
// dit NIET lukt geef hiervan een melding
// en breek script af.
////////////////////////////////////////////////
if (!mysql_query("CREATE DATABASE $username")) {
die('Aanmaken van database mislukt');
}
//
// Maak de map voor de nieuwe gebruiker
// ALS dit MISLUKT geef een melding
// en stop uitvoering van script.
/////////////////////////////////////
if (!mkdir('./users/' . $username)) {
die('Aanmaken van map mislukt');
}
?>
Volgens mij moet je eerst een leege map aanmaken, dan kan je er inhoud van een andere map instoppen, copieer zo de oude dir. bestand voor bestand. Ik weet niet waar je dit alles moet neerzetten, http://www.phpbbhacks.com/ kijk daar eens, lees de documentatie voor developers van phpBB en bestudeer de code.
Als je nog niet zo ervaren / bekend bent met php raad ik je aan dit eerst te leren, en dan pas dingen gaan willen maken. Het komt er op neer veel lezen en uizoekken dan is alles mogelijk.
Hallo,
Als iemand registreert dat er een map wordt gemaakt(lukt nu).
Maar nu de inhoud nog automatisch er in zetten.
En Database maken lukt ook.
Nu nog dat hij automatish mysql uitvoerd dus test.sql of iets in het register bestand zetten.
je hebt dit ook al op www.phpbb.nl gevraagt en daar vonden ze het ook heel vaag,wie wil er nou een map aan maken?
wat voor bestanden zitten er in?
kan je het niet beter zo doen bestant.php?=jouw gebruikers naam en dat hij dan de info die die moet weer geven uit te database haalt?
<?php
// Maak een database aan met de username
// van nieuw geregistreede gebruiker, ALS
// dit NIET lukt geef hiervan een melding
// en breek script af.
////////////////////////////////////////////////
if (!mysql_query("CREATE DATABASE $nickname"))
else (!mysql_query("CREATE TABLE members (id int(10) auto_increment not null, level int(1) not null, datum varchar(10) not null, nickname varchar(20) not null, password varchar(20) not null, voornaam varchar(20) not null, achternaam varchar(20) not null, emailadres varchar(50) not null, site varchar(100) not null, jaar int(4) not null, dag int(2) not null, maand int(2) not null, primary key(id))")) {
die('Aanmaken van database mislukt');
}
//
// Maak de map voor de nieuwe gebruiker
// ALS dit MISLUKT geef een melding
// en stop uitvoering van script.
/////////////////////////////////////
if (!mkdir('./users/' . $nickname)) {
die('Aanmaken van map mislukt');
}
?>
else(!mysql_query("CREATE TABLE members (id int(10) auto_increment not null, level int(1) not null, datum varchar(10) not null, nickname varchar(20) not null, password varchar(20) not null, voornaam varchar(20) not null, achternaam varchar(20) not null, emailadres varchar(50) not null, site varchar(100) not null, jaar int(4) not null, dag int(2) not null, maand int(2) not null, primary key(id))")){
knars, het is niet zo belachelijk om zoiets aan te maken. Als je PHP BB in zo'n mate aanpast dat het moet dienen binnen een project waarbij communities aangemaakt worden voor users waarbinnen ze hun eigen site mogen ontwikkelen, eigen CMS, file uploads, ... . Als dit zo'n project zou zijn dan stelt hij wel de juiste vragen en heeft het idd zin om op basis van een selectie die je maakt tijdens de registratie al die zaken automatisch uit te voeren.
Marly, ik hoop dat je een dergelijke structuur goed doordacht hebt. Om folders aan te maken moet je er enkel voor zorgen dat je de rechten hebt om het te doen. mkdir("/padnaam/") is de functie, maar let er wel op dat je het volledige pad definieert, dus beginnend vanaf de root tot de uiteindelijke folder.
Om een specifieke DB aan te maken zit je ook op de goeie weg.
Nog 1 ding, als je een database aan wilt maken moet je er wel voor zorgen dat je de root user gebruikt voor mysql, en niet een user die toegang heeft tot een database. Dat kan de reden zijn waarom je geen nieuwe database container binnen mysql kan aanmaken.
Hallo,
Het is wel een project met gebruikers die dingen kunnen maken en wijzigen.
Maar ik zal even verder kijken.
Wat bedoel je hier mee?
--
Marly, ik hoop dat je een dergelijke structuur goed doordacht hebt. Om folders aan te maken moet je er enkel voor zorgen dat je de rechten hebt om het te doen. mkdir("/padnaam/") is de functie, maar let er wel op dat je het volledige pad definieert, dus beginnend vanaf de root tot de uiteindelijke folder.
--
Om een specifieke DB aan te maken zit je ook op de goeie weg.
--
Klopt dat ook helemaal dan of niet?
Hallo,
Wat bedoel je hier mee?
--
Nog 1 ding, als je een database aan wilt maken moet je er wel voor zorgen dat je de root user gebruikt voor mysql, en niet een user die toegang heeft tot een database.
--
Hallo,
Of moet ik create TABLEs in de volgende stap zetten?
Dus eerst de eerste pagina doen.
Daar maakt hij database aan.
en stap 2
Maakt hij tables aan.
In mySQL heb je verschillende gebruikers en toegangsrechten.
De administrator gebruikt meestal een root user (root) met bijhorend paswoord. Die root user kan alles in de mysql server configureren. User accounts aanmaken, databases aanmaken, ... .
Naast de root account heb je user accounts. User accounts hebben vaak toegang tot 1 of meerdere databases waarin ze dan kunnen tabellen maken en statements uitvoeren (SELECT, INSERT, UPDATE, ...) Die users kunnen meestal geen Database aanmaken, alhoewel je ze wel dat recht kan geven.
Stel, je huurt hosting bij een service provider. Je krijgt 1 gb ruimte voor je site en een eigen database. In dit geval krijg je ook een account met paswoord om tabellen en zo aan te maken. In dit geval kan je GEEN database aanmaken omdat een service provider nooit een Root access aan klanten geeft. Dus als je mysql hosting huurt en dus zelf niet aan de root van de server kan, ga je er nooit in slagen om zelf databases aan te maken. Indien je wel de root access verkrijgt, dan moet je ervoor zorgen dat in je connectie instellingen die je dus in PHP gebruikt om te connecteren op mysql, je de root user gebruikt om databases aan te maken.
Wat ik bedoelde met op goeie weg zijn dan. Je denkwijze klopt wel, je maakt namelijk eerst de database aan, dan user accounts en dan tabellen. Belangrijk is dat je de juiste rechten toekent aan de users die je aanmaakt zodat ze enkel toegang hebben tot de hun toegewezen database. In jouw geval zou ik toch een iets meer doordachte structuur/procedure maken om dit uit te voeren. Ik ga het niet uitschrijven in PHP, dat moet je zelf doen, maar ik zal het neerpennen in tekst zodat je een idee hebt wat het ongeveer moet worden.
Stap 1: Maak de nieuwe DB aan. Test of dit gelukt is, indien niet, gooi een fout, indien wel, ga naar de Stap 2.
Stap 2: Maak de user account(s) aan, geef die de nodige rechten om met de nieuwe db te kunnen werken. Doe hetzelfde hier qua foutcontrole.
Stap 3: Maak eventuele tabellen aan. Ook hier weer foutcontrole.
Stap 4: Maak een folder aan op uw bestandssysteem voor de gebruiker.
Voor uw folders denk je best aan wat je wilt aanbieden en waar. Geef je ze een simpele folder, of maak je subfolders voor document, images, ... . Je kan hen dan bvb verplichten om enkel die folders te gebruiken zodat ze zelf geen folders kunnen aanmaken, enkel files uploaden.
Waar je die folders plaatst is heel belangrijk, vooral op het vlak van archivering/backups. Als je een dergelijk project maakt moet je zorgen voor een goeie backup. Dit houdt in dat alles op een makkelijk toegankelijke plaats te vinden moet zijn, zodat je snel backups kan maken en indien nodig, ze snel kan herstellen.
Er komt vrij veel werk kijken bij wat je wil doen en het is niet makkelijk om een kant en klare oplossing te vinden. Ik krijg ook zo het gevoel dat op basis van uw vragen je ervaring vrij laag is met dit soort zaken. Aangezien dit vrij diep gaat op het niveau van administratie en authenticatie zou ik je toch aanraden om je eerst wat dieper in te werken op dat vlak dan zo losweg aan een projectje te beginnen. Niemand hier zal je een kant en klare oplossing leveren maar we zullen je wel helpen met kleine problemen. Maar als je al de voorgestelde oplossing/raad niet begrijpt is het nogal zinloos om hier al je vragen voor te leggen.
Nu, hopelijk geraak je snel op goeie weg met dit alles.