Avatar billede 080dk Nybegynder
26. oktober 2006 - 14:14 Der er 17 kommentarer og
1 løsning

Database install.

Database install.
En som kan lave mig sådan en install script, som også kan skrive til en config fil.

Alså det skal være sådan at mysql filen henter den og indsætter ind i databasen, og man skriver sine database oplysninger og de bliver gemt i db.cnf.php fil. der står lige nu.
<?php
$user = 'XX';
$pass = 'XX';
$host = 'XX';
$db = 'XX';

@mysql_connect($host,$user,$pass);
@mysql_select_db($db);
?>

Så hvis man kan lave sådan nogle felter så man skriver i også ligger den dem der ind, samt den connecter til mysql databasen og sætter en sql fil ind.
Avatar billede jakobdo Ekspert
26. oktober 2006 - 20:49 #1
Du skal jo lave følgende SQL for at oprette en bruger:

GRANT USAGE ON * . * TO '$BRUGERNAVN'@'$HOST' IDENTIFIED BY '$PASSWORD' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 ;
GRANT SELECT , INSERT , UPDATE , DELETE , CREATE , DROP , INDEX , ALTER , CREATE TEMPORARY TABLES ON `$DATABASE` . * TO '$BRUGERNAVN'@'$HOST';

$BRUGERNAVN er navn på brugeren
$PASSWORD er kodeordet
$HOST er hosten som der kan forbindes via, normalt bare LOCALHOST
$DATABASE, hvilken database skal brugeren have adgang til.

Selve skrivningen af en config fil, er "bare" at bruge funktionen: fwrite, se mere info på http://dk.php.net/fwrite
Avatar billede jakobdo Ekspert
26. oktober 2006 - 20:49 #2
Og du skal selvfølgelig oprette en database inden du laver de 2 SQL kald ovenover.
Avatar billede 080dk Nybegynder
26. oktober 2006 - 21:04 #3
Hvad snakker du om,! SKal sgu da ikke lave nogle bruger læs spørgsmåæet inden du skriver noget plader.
Avatar billede 080dk Nybegynder
26. oktober 2006 - 21:06 #4
Lukker du fatter ikke en skid, undskyld jeg siger det. flyttet til programmeringsopgave (grund forkert kategori)
Avatar billede jakobdo Ekspert
26. oktober 2006 - 21:12 #5
Det er da dig som ikke fatter noget din hat.
Avatar billede 080dk Nybegynder
26. oktober 2006 - 21:22 #6
Nej tror jeg ikke, gider sgu ikke diskutere sådan nogle latterlige ting med det. Men lad være med og skriv FØR du har læst spørgsmålet.!

"Du skal jo lave følgende SQL for at oprette en bruger:"

Har jeg bedt om det? nej vel.
Avatar billede jakobdo Ekspert
26. oktober 2006 - 21:34 #7
Du beder om følgende:
$user = 'XX';
$pass = 'XX';
$host = 'XX';
$db = 'XX';

Så jeg antog at man vi en formular angav en bruger, kodeord, host og database.
Derefter blev dette oprettet i databasen, samt skrevet en config fil.
Men du har ret, jeg har helt misforstået dig, og det er da bestemt den helt rigtige måde du gør mig opmærksom på det.
Avatar billede 080dk Nybegynder
26. oktober 2006 - 22:13 #8
Nå sorry lyder bare som om det i forige spørgsmål. Du må meget gerne lave det for mig,

Men skal bruge en hel php kode :)

Hvor jeg bare lige kan skrive filnavnet på .sql filen.
Avatar billede jakobdo Ekspert
27. oktober 2006 - 11:52 #9
Noget i denne stil:

<?php
//http://www.eksperten.dk/spm/740974

$filename = 'test.txt';
$error = '';

if(isset($_POST['save']))
{
    //Her skal du lave noget tjek af input...
    $content  = '<?php' . "\n";
    $content .= '$user = ' . $_POST['user'] . ";\n";
    $content .= '$pass = ' . $_POST['pass'] . ";\n";
    $content .= '$host = ' . $_POST['host'] . ";\n";
    $content .= '$db = ' . $_POST['date'] . ";\n";
    $content .= '@mysql_connect($host,$user,$pass);'. "\n";
    $content .= '@mysql_select_db($db);'. "\n";
   
    //Stjålet fra dk.php.net/fwrite
    if (is_writable($filename))
    {
        if (!$handle = fopen($filename, 'w'))
        {
            $error = "Det er ikke muligt at &aring;bne filen: ($filename)";
            exit;
        }
   
        if (fwrite($handle, $content) === FALSE)
        {
            $error = "Det er ikke muligt at skrive til filen: ($filename)";
            exit;
        }
     
        $error = "CONFIG blev skrevet til filen: ($filename)";
     
        fclose($handle);
    }
    else
    {
        $error = "Det er ikke muligt at skrive til filen: ($filename)";
    }
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html>
    <head>
        <title>MYSQL Config Writer</title>
        <style type="text/css">
            body {text-align: center; }
            div#content { margin: 0px auto; border: 2px #0000FF dotted; width:250px; text-align: left; }
            div#content input { width: 215px; }
        </style>
    </head>
<body>
    <div id="content">
        <form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
            <fieldset>
                <legend>Brugernavn</legend>
                <input type="text" name="user">
            </fieldset>
            <fieldset>
                <legend>Kodeord</legend>
                <input type="text" name="pass">
            </fieldset>
            <fieldset>
                <legend>Host</legend>
                <input type="text" name="host" value="localhost">
            </fieldset>
            <fieldset>
                <legend>Database</legend>
                <input type="text" name="data">
            </fieldset>
            <fieldset>
                <legend>Gem Config</legend>
                <input type="submit" name="save" value="GEM">
            </fieldset>
        </form>
    </body>
</html>
Avatar billede 080dk Nybegynder
27. oktober 2006 - 13:32 #10
Jo, men der skal også være så den sætter mysql fil ind i database.
Avatar billede 080dk Nybegynder
27. oktober 2006 - 13:42 #11
men det virker ikke helt. den skriver når man skriver i felter
<?php
$user = ss;
$pass = ja;
$host = localhost;
$db = ;
@mysql_connect($host,$user,$pass);
@mysql_select_db($db);

Den skriver ikke ?> til sidt, og den skriver åbentbart ikke til $db selvom jeg skrev i feltet og det skal også stå i "

Alså f.eks $host = "localhost";
Avatar billede 080dk Nybegynder
27. oktober 2006 - 13:43 #12
Sorry, den skal ikke skrive det med " men med '

alså f.eks $host = 'localhost';
Avatar billede 080dk Nybegynder
27. oktober 2006 - 14:09 #13
og den visser i øvrigt ikke den meddelse når den er færdig, med og skrive til filen. Kan du ikke bare gøre så den kører til en ny php side.

Alså så går den til install2.php

?
Avatar billede jakobdo Ekspert
27. oktober 2006 - 15:36 #14
<?php
//http://www.eksperten.dk/spm/740974

$filename = 'db.config.php';
$error = '';

if(isset($_POST['save']))
{
    //Her skal du lave noget tjek af input...
    $content  = '<?php' . "\n";
    $content .= '$user = "' . $_POST['user'] . "\";\n";
    $content .= '$pass = "' . $_POST['pass'] . "\";\n";
    $content .= '$host = "' . $_POST['host'] . "\";\n";
    $content .= '$db = "' . $_POST['data'] . "\";\n";
    $content .= '@mysql_connect($host,$user,$pass);'. "\n";
    $content .= '@mysql_select_db($db);'. "\n";
   
    //Stjålet fra dk.php.net/fwrite
    if (is_writable($filename))
    {
        if (!$handle = fopen($filename, 'w'))
        {
            $error = "Det er ikke muligt at &aring;bne filen: ($filename)";
            exit;
        }
   
        if (fwrite($handle, $content) === FALSE)
        {
            $error = "Det er ikke muligt at skrive til filen: ($filename)";
            exit;
        }
     
        $error = "CONFIG blev skrevet til filen: ($filename)";
     
        fclose($handle);
    }
    else
    {
        $error = "Det er ikke muligt at skrive til filen: ($filename)";
    }
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/strict.dtd">
<html>
    <head>
        <title>MYSQL Config Writer</title>
        <style type="text/css">
            body {text-align: center; }
            div#content { margin: 0px auto; border: 2px #0000FF dotted; width:250px; text-align: left; }
            div#content input { width: 215px; }
        </style>
    </head>
<body>
    <div id="content">
        <form action="<?=$_SERVER['PHP_SELF'];?>" method="post">
            <fieldset>
                <legend>Brugernavn</legend>
                <input type="text" name="user">
            </fieldset>
            <fieldset>
                <legend>Kodeord</legend>
                <input type="text" name="pass">
            </fieldset>
            <fieldset>
                <legend>Host</legend>
                <input type="text" name="host" value="localhost">
            </fieldset>
            <fieldset>
                <legend>Database</legend>
                <input type="text" name="data">
            </fieldset>
            <fieldset>
                <legend>Gem Config</legend>
                <input type="submit" name="save" value="GEM">
            </fieldset>
        </form>
    </body>
</html>

Hvad ønsker du indsat i MYSQL?
Det jeg forsøgte at fortælle dig tidligere, blev jo hurtigt fejet væk, da det jo slet ikke var det du skulle bruge.
Avatar billede 080dk Nybegynder
27. oktober 2006 - 16:53 #15
Der skal indsættes en mysql fil til databasen.

Alså selve koden skal ikke stå i php scriptet kun et link eller hvordan man nu gør, så den henter det fra filen.
Avatar billede jakobdo Ekspert
28. oktober 2006 - 11:41 #16
Det kommer helt an på hvad du ønsker indsætte.
Men du indsætte jo via: mysql_query("INSERT.....");
Og inden mysql_query() skal der lige forbindes mysql_connect() og vælges en database: mysql_select_db();
Avatar billede 080dk Nybegynder
28. oktober 2006 - 11:54 #17
Lidsom når man installere en oscommerce shop der er en .sql fil. Som bliver hentet når man kører installationen.

Alså så går den ind lidsom automatisk og impotere filen?

Kan du ikke gøre det?

Filnavnet til .sql filen er. data.sql

og den ligger jeg så med op sammen med install filen
Avatar billede jakobdo Ekspert
29. oktober 2006 - 14:15 #18
Den med data.sql må jeg desværre være dig svar skyldig.
Jeg tror jeg bare ville lave en masse: mysql_query()...
Det er jo i bund og grund det samme.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester