MySQL-database toevoegen

Pagina: 1
Acties:
  • 78 views sinds 30-01-2008

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 10-04 22:01

JorisPenders

Designer & Coder

Topicstarter
Hallo

ik heb een eigen server en het is irritant als mensen steeds vragen om een database te maken (om bijv phpbb) te installeren,
daarom ben ik zelf een script aan het schrijven, maar het lukt niet helemaal

Heb nu een form:
code:
1
2
3
4
5
6
7
8
9
<form name="form1" method="post" action="">
  <p>MySQL-databasenaam:</p>
  <p>
    <input name="database" type="text" id="database" value="">
  </p>
</form>
  <form name="form1" method="post" action="">
    <input type="submit" name="Submit" value="Maak Aan!">
  </form>


en script:

code:
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
<?
    $user = "root"; 
    $pass = ""; 
    $host = "localhost"; 

   if (!mysql_connect($host, $user, $pass)) 
    { 
        echo "Kan geen verbinding maken met de database."; 
        exit(); 
    } 
     
    unset($user); 
    unset($pass); 
    unset($host); 
    
if ($_POST['Submit']){

$query="CREATE DATABASE [IF NOT EXISTS] $database";   // in deze query zit dus een fout... 

;mysql_query($query) or die (mysql_error());
echo "Je Database is aangemaakt";
exit();
}
 
?>


MySQL geeft een error in de sql-code
$database pakt ie dus niet, maar hoe moet ik dan hetgene dat in het form ingevuld is daarin krijgen?

heb al gezocht op http://dev.mysql.com/doc/mysql/en/CREATE_DATABASE.html maar daar staat niets over deze functie

Wie kan me helpen :?

Jorizz

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

En wij mogen nu raden naar de error code en error melding? :)

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-05 14:53
PHP:
1
echo $FAQ->register_globals;

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 10-04 22:01

JorisPenders

Designer & Coder

Topicstarter
error code:
code:
1
You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '[IF NOT EXISTS]' at line 1


En DJluc.. wat bedoel je?

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

haal die haken eens weg bij IF NOT EXISTS

Blog [Stackoverflow] [LinkedIn]


  • Andre-85
  • Registratie: April 2003
  • Niet online

Andre-85

Sid

Kijk is naar je formulier. Dat klopt niet helemaal......
En wat krijg je verder voor foutmelding?
Echo je query is.

Ik zie ook nog een ";" op regel 20 die er volgens mij niet hoort...

[ Voor 24% gewijzigd door Andre-85 op 31-08-2004 21:37 ]

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


Verwijderd

Nazien of register_globals wel op on staat in php.ini

[ Voor 118% gewijzigd door Verwijderd op 31-08-2004 21:35 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Nu online

gorgi_19

Kruimeltjes zijn weer op :9

Dat tussen [ ] duidt aan dat het een optioneel gedeelte is; die blokhaken moet je niet meenemen dan.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 10-04 22:01

JorisPenders

Designer & Coder

Topicstarter
bij andere scripts doet ie het wel.. ik ga nu ff php.ini aanpassen
Wat klopt er in mn form niet? (met dreamweaver gemaakt)

voor de rest krijg ik geen meldingen

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 20:14
DJ_Jorizzz schreef op 31 augustus 2004 @ 21:29:

MySQL geeft een error in de sql-code
$database pakt ie dus niet, maar hoe moet ik dan hetgene dat in het form ingevuld is daarin krijgen?
Moet je jezelf ff afvragen hoe je informatie vanuit een HTML-form beschikbaar maakt in je PHP-code. Want waar moet $database vandaan komen? Je bent al aardig opweg, check nog maar eens het if-statement waar die query in staat.

  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 10-04 22:01

JorisPenders

Designer & Coder

Topicstarter
mijn php.ini
code:
1
2
3
4
; You should do your best to write your scripts so that they do not require
; register_globals to be on;  Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = On


Bij andere scripts werk ik op dezelfde manier

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • Andre-85
  • Registratie: April 2003
  • Niet online

Andre-85

Sid

code:
1
2
3
4
5
6
7
8
9
<form name="form1" method="post" action="">
  <p>MySQL-databasenaam:</p>
  <p>
    <input name="database" type="text" id="database" value="">
  </p>
</form> dit hoort hier niet
  <form name="form1" method="post" action=""> dit hoort hier niet
    <input type="submit" name="Submit" value="Maak Aan!">
  </form>


je hebt nu eigenlijk twee formulieren

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


  • Sosabowski
  • Registratie: Juni 2003
  • Laatst online: 18-04 11:49

Sosabowski

nerd

PHP:
1
2
3
4
5
<form name="form1" method="post" action="">
  <p>MySQL-databasenaam:</p>
    <input name="database" type="text" id="database" value="">
    <input type="submit" name="Submit" value="Maak Aan!">
  </form>


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
    $user = "root"; 
    $pass = ""; 
    $host = "localhost"; 

   if (!mysql_connect($host, $user, $pass)) 
    { 
        echo "Kan geen verbinding maken met de database."; 
        exit(); 
    } 
     
if (isset($_POST['Submit'])){
  $query="CREATE DATABASE " . $_POST[' database'];    
  mysql_query($query) or die (mysql_error());
  echo "Je Database is aangemaakt";
  exit();
}

The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts. -- Bertrand Russell


  • JorisPenders
  • Registratie: April 2004
  • Laatst online: 10-04 22:01

JorisPenders

Designer & Coder

Topicstarter
Thnxs Andre-85 het werkt

heb nu deze forums
code:
1
2
3
4
5
6
7
8
<form name="form1" method="post" action="">
  <p>MySQL-databasenaam:</p>
  <p>
    <input name="database" type="text" id="database" value="">
  </p>

    <input type="submit" name="Submit" value="Maak Aan!">
  </form>


Het lag dus aan de forms

Jorizz

(PHP was goed)

[ Voor 30% gewijzigd door JorisPenders op 31-08-2004 21:42 ]

SystemSpecs -- WebArea - Your Online Home -- Webdesign


  • djluc
  • Registratie: Oktober 2002
  • Laatst online: 23-05 14:53
(PHP was goed)
Nee dat is niet goed en waarom kan je lezen in de FAQ.

  • Sosabowski
  • Registratie: Juni 2003
  • Laatst online: 18-04 11:49

Sosabowski

nerd

idd, daarnaast hoop ik niet dat je dit kwakkeloos overneemt aangezien er totaal geen controle is op de invoer van de user. Qua beveiliging dus zo lek als een mandje.

The whole problem with the world is that fools and fanatics are always so certain of themselves, and wiser people so full of doubts. -- Bertrand Russell


Verwijderd

Ik wil niet vervelend zijn, maar zoals je php hier gebruikt zou ik het maar niet doen. Bovendien is een lesje HTML misschien ook wel handig voordat je aan iets als PHP begint.

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Nog afgezien van het feit dat de root user geen password heeft :? 8)7 (ik hoop dat je "gebruikers" niet meekijken ;))

Je kunt beter users die je hun eigen databases aan wilt laten maken gewoon de juiste rechten geven via GRANT. Zie ook http://dev.mysql.com/doc/...r_Account_Management.html. Zo kunnen ze zelf de CREATE TABLE queries uitvoeren.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • _Zedd_
  • Registratie: November 2001
  • Niet online
Ik zou de form parameters controleren om te voorkomen dat er meer in het form wordt gezet dan eigenlijk de bedoeling is. Een voorbeeld:

stel dat het database field via HTML een andere inhoud krijgt:
PHP:
1
$_POST['database']="database; SET PASSWORD FOR root = PASSWORD('some password')";

dan is
PHP:
1
$query="CREATE DATABASE database; SET PASSWORD FOR root = PASSWORD('some password')";

in eens heel anders. :*)

eventuele typos daargelaten, het gaat om het idee.

[ Voor 8% gewijzigd door _Zedd_ op 31-08-2004 22:22 ]

GMT-8


  • Andre-85
  • Registratie: April 2003
  • Niet online

Andre-85

Sid

_Zedd_ schreef op 31 augustus 2004 @ 22:22:

PHP:
1
$query="CREATE DATABASE database; SET PASSWORD FOR root = PASSWORD('some password')";

in eens heel anders. :*)

eventuele typos daargelaten, het gaat om het idee.
Het idee klopt. Maar het is volgens mij zo dat de functie mysql_query() niet toestaat meerdere queries uit te voeren. (ik heb het niet geprobeerd maar dat heb ik eens gelezen) SQL injection is zeker iets waar je voor moet oppassen, maar jouw voorbeeld zal volgens mij niet werken.

[ Voor 28% gewijzigd door Andre-85 op 01-09-2004 08:59 ]

Lorem
Whenever we feel the need to comment something, we write a method instead. - Martin Fowler
People who think they know everything really annoy those of us who know we don't - Bjarne Stroustrup


  • WPN
  • Registratie: Augustus 2003
  • Laatst online: 21-05 00:41

WPN

die injection kan ie oplossen door geen spaties to te laten en een maximum lengte te geven aan de in te voeren naam :7

Als ik denk zoals ik dacht, dan doe ik zoals ik deed, als ik doe zoals ik deed, dan denk ik zoals ik dacht! Cogito Ergo Sum


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

Peluso:
die injection kan ie oplossen door geen spaties to te laten en een maximum lengte te geven aan de in te voeren naam :7
Weet je hoe je ook injection kan voorkomen?
drm:
Je kunt beter users die je hun eigen databases aan wilt laten maken gewoon de juiste rechten geven via GRANT. Zie ook http://dev.mysql.com/doc/...r_Account_Management.html.
:z

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


Verwijderd

Peluso schreef op 01 september 2004 @ 09:41:
die injection kan ie oplossen door geen spaties to te laten en een maximum lengte te geven aan de in te voeren naam :7
Vaak is het beter om ipv dingen uit te sluiten, slechts bepaalde dingen toe te staan.

Bijvoorbeeld [a-z] en dan een max lengte.

  • klokop
  • Registratie: Juli 2001
  • Laatst online: 30-03 19:56

klokop

swiekie swoeng

Zo te zien mist er een werkwoord in bovenstaande zin... na 'is'. Is wat?
Ik zie dit nogal vaak de laaste tijd, 'is' gebruiken in plaats van 'eens' (of 'es'). Doe je dat expres, of snap je het verschil niet? Geen flame dit, gewoon interesse.
DJ-Jorizzz schreef
heb nu deze forums
Forums?

[ Voor 15% gewijzigd door klokop op 01-09-2004 09:53 ]

"Passing silhouettes of strange illuminated mannequins"


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

klokop:
Zo te zien mist er een werkwoord in bovenstaande zin... na 'is'. Is wat?
Ik zie dit nogal vaak de laaste tijd, 'is' gebruiken in plaats van 'eens' (of 'es'). Doe je dat expres, of snap je het verschil niet? Geen flame dit, gewoon interesse.
Da's gewoon spreektaal. En daarmee ook meteen het dieptepunt van dit topic bereikt. Blijf voortaan gewoon ontopic, ajb. Mochten er nog steeds onduidelijkheden zijn over dit probleem mag je een mailtje naar me sturen.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.