Pomoć oko pravljenja instalacione skripte

Pomoć oko pravljenja instalacione skripte

offline
  • Pridružio: 22 Jun 2006
  • Poruke: 409

Pre neko vreme sam počeo da učim php, i trenutno radim na jednoj kvazi aplikaciji, i pokušavam da odradim instalacionu skriptu, i na samom početku sam došao do problema.

Ova skripta treba da se konektuje na MySQL server, napravi bazu, neke tabele, i popuni ih nekim podacima. Napravio sam formu u kojoj korisnik zadaje Username, Password (za SQL server) i ime baze koja treba da se kreira, i sve ovo lepo radi, ali problem nastaje kod toga što će različiti ljudi imati razlišite usernameove, passworde i imena baze, tako da aplikacija neće moći da se konektuje na bazu. Kao rešenje mi na pamet pada samo externi fajl, npr podesavanja_baze.php koji preko requesta moram pozvati na index, na kome, da kažem "leži" ostatak aplikacije (korisnik uvek učitava index). I u ovom podesavanja_baze.php bi se kao promenljive nalazili user, pass i ime baze (parametri za konekciju na bazu), u vidu promenljivih, koje će se znači učitavati uvek.

I sad konačno moje pitanje: Kako da se prilikom unosa tih parametara u formu, ne samo kreira baza, već se i izmeni fajl podešavanja_baze.php, tako da promenjive u njemu dobiju vrednosti koje je uneo korisnik, i da se to zapamti trajno (kako bi se skripta uvek kačila na bazu)? Ako znate neki lakši ili bolji način, molim vas kažite, lomim glavu već dugo na ovome Sad



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • igor86  Male
  • Stručni saradnik
    Web programiranje
  • Pridružio: 24 Maj 2006
  • Poruke: 1633

Pa koliko sam skontao ti bi htio da pises u file, koji bi kasnije includeovao.

Pogledaj fopen, i ostalo, a ako imas php5 dobro ce ti doci file_put_contents(); i file_get_contents();.

Usput kakvu aplikaciju pravis, da ne krenes u pogresnom pravcu.



offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Evo ti kod

 //otvara fajl za pisanje  $file=fopen("konfiguracija_baze.php","w");  //ime servera koje se dobija post metodom bez slashova  $server = stripslashes($_POST["server"]);  //ime datoteke  $datoteka = stripslashes($_POST["datoteka"]);  //korisnicko ime  $korisnik = stripslashes($_POST["korisnik"]);  //sifra  $sifra = stripslashes($_POST["sifra"]);  //kod za upis u fajl  $kod = '<?php $server="'.$server.'"; $database="'.$datoteka.'"; $user="'.$korisnik.'"; $pass="'.$sifra.'" ?> ';  //pisanje u fajl  fwrite ($file,$kod);  //zatvori fajl (ispravka by Rastafarii) : )  fclose ($file);

PS: Izvini ne znam prevod za slash Very Happy Smile uglavnom to ti je ovo /

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

@lnenad: na dobrom si putu, ali ce ovo tesko da ti prodadi, jer ce u konfig fajlu da dobije sledece:

<?php $server="localhost"; $datoteka="imebaze"; $korisnik="imekorisnika"; $sifra="sifra" ?>

sto ce posle, kad pozove fajl, da uzrokoje parse error in line 1, expecting ";" a i zaboravio si da zatvoris fajl koji si otvorio Smile

evo ispravljenog koda:

<?php $filename = "./podesavanja_baze.php"; $writable = false; //provera da li je moguce pisati u fajl, ukoliko testiras na localu commentuj do dela za otvaranje if (!is_writable($filename)) {    chmod($filename,0777);    $writable = true; } //otvara fajl za pisanje $file=fopen($filename,"w"); //ime servera koje se dobija post metodom bez slashova $server = stripslashes($_POST["server"]); //ime datoteke $datoteka = stripslashes($_POST["datoteka"]); //korisnicko ime $korisnik = stripslashes($_POST["korisnik"]); //sifra $sifra = stripslashes($_POST["sifra"]); //kod za upis u fajl $kod = '<?php\n'; $kod .= '$server="'.$server.'";\n'; $kod .= '$database="'.$datoteka.'";\n'; $kod .= '$user="'.$korisnik.'";\n'; $kod .= '$pass="'.$sifra.'";\n'; $kod .= '?>'; //pisanje u fajl fwrite ($file,$kod); //zatvara fajl fclose($file); //vraca dozvole za pristup fajlu u prvobitno stanje if ($writable) {    chmod($filename,0755); } ?>

btw, slash je "kosa crta" Mr. Green

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Da Smile ali meni ovo radi i generise fajl bas kako treba?

offline
  • Pridružio: 22 Jun 2006
  • Poruke: 409

OK hvala vam ljudi! Smile

Sad ću probati ovo, kod mi je skoro skroz jasan, ali zašto se koristi stripslashes()? Da se stringovi tipa "User's_hometown[]" ne bi deformisali?

@ Igor

Pravim sebi mali news system za svoj sajt, dosadilo mi je više da editujem HTML kod svaki put kad moram nešto da dodam. Neutral

offline
  • PHP developer
  • Pridružio: 22 Mar 2006
  • Poruke: 3747
  • Gde živiš: 127.0.0.1

@Wraith: http://www.php.net/stripslashes

Meni je stripslashes() preslo u naviku, kad god treba da zapisujem neki podatak dobijem preko $_GET i $_POST Smile

offline
  • lnenad  Male
  • Stručni saradnik
    Web
  • Nenad
  • Arhitetak
  • Pridružio: 16 Jan 2007
  • Poruke: 2860
  • Gde živiš: Bijeljina

Rastafarii ::@Wraith: http://www.php.net/stripslashes

Meni je stripslashes() preslo u naviku, kad god treba da zapisujem neki podatak dobijem preko $_GET i $_POST Smile


I meni isto, bolje je za svaki slusaj, da se ne bi nesto za*ebalo Very Happy

offline
  • Pridružio: 22 Jun 2006
  • Poruke: 409

OK hvala vam! Very Happy

Ko je trenutno na forumu
 

Ukupno su 1255 korisnika na forumu :: 52 registrovanih, 7 sakrivenih i 1196 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: A.R.Chafee.Jr., Acivi, amaterSRB, Andrija357, ArmyBoss, Battlehammer, Bobrock1, Boris90, BRATORIII, crnitrn, Dannyboy, darcaud, darkangel, Denaya, Djole, dragoljub11987, flash12, Georgius, Gosha101980, havoc995, Istman, karevski, Kibice, Kubovac, Levi, Lieutenant, madza, mgolub, mikrimaus, milenko crazy north, Misirac, Mixelotti, Ne doznajem se u oružje, operniki, Oscar, ozzy, Parker, pein, prle122, Rakenica, raso7, ruger357, savaskytec, SR-3m, Srki94, Srle993, suton, voja64, VP6919, wolverined4, YugoSlav, 1107