ZoRaC Skrevet 28. juni 2006 Del Skrevet 28. juni 2006 phpBB har jo en tabell som ser slik ut: CREATE TABLE `phpbb_config` ( `config_name` varchar(255) NOT NULL default '', `config_value` varchar(255) NOT NULL default '', PRIMARY KEY (`config_name`) ) TYPE=MyISAM; Tenkte å benytte det samme for et script jeg har, for pr i dag har jeg en web-basert konfigurasjon som skriver til fil og lagrer innstillinger som $setting="verdi";, osv. Problemet er at jeg ikke på noen enkel måte kan hente ut bare en setting eller redigere en og lagre igjen. Lurer litt på hvordan jeg skal gjøre det med scriptet for å oppdatere innstillingene? Må jeg kjøre en "UPDATE table SET config-navn = '$config-verdi' WHERE config-navn='$config-navn'"; for hver eneste konfig-valg jeg endrer? Det blir fort en god del queries... Lenke til kommentar
hockey500 Skrevet 28. juni 2006 Del Skrevet 28. juni 2006 (endret) ja, du må vel nødvendigvis gjøre det. jeg har en funksjon som returnerer en slik tekstfil som et oversiktlig array, som funker bra hvis du ikke skal gjøre oppdateringer underveis i koden. hvis config ser slik ut: sidetittel = min hjemmeside vis_footer = true vil arrayet se ca sånn ut: array ( [sidetittel] => "min hjemmeside" [vis_footer] => true ) funksjonen kalles opp slik: $config = resourceFile('config' [, $skilletegn]); så kan du bare bruke $config['sidetittel'] f.eks. Jeg syns det er lettere enn å bruke en database til dette, men dette var kanskje akkurat det du hadde fra før? legger ved funksjonen uansett: function resourceFile($file, $split_symbol = '=') { $filename = $file; $array = file($filename); $count = count($array); for($i = 0; $i < $count; $i++) { $tmp = explode($split_symbol, $array[$i]); $key = trim($tmp[0]); $value = trim($tmp[1]); if(empty($key) || empty($value)) { $key = ++$i; $value = "No value"; $i--; } $resourceArray[$key] = $value; } return $resourceArray; } Endret 28. juni 2006 av hockey500 Lenke til kommentar
allyse Skrevet 28. juni 2006 Del Skrevet 28. juni 2006 (endret) Hvorfor i alle dager beholder du ikke bare en filbasert konfigurasjon? Tror det er mye kjappere å aksessere en fil for config enn databasen for config. Slik jeg brukt det atm i nextgen: $file = file_get_contents("config.php"); if (@$_GET['action'] == 'save'){ while (list($key, $val) = each($_POST)) { $file = preg_replace("[(\['$key'\]\s*?=\s*?)'.*?']", "$1'$val'", "$file"); } if(file_put_contents("config.php", "$file"))echo "Configuration updated"; else "Update failed!"; } Endret 28. juni 2006 av allyse Lenke til kommentar
ZoRaC Skrevet 28. juni 2006 Forfatter Del Skrevet 28. juni 2006 Bortsett fra at jeg ikke bruker array, så er det det samme, ja... Ulempen er når jeg skal legge inn nye config-valg, f.eks "$vis_fil = true;". Siden jeg bruker web-config må jeg opprette form-feltet, hente det ut etter submit, verifisere og skrive det til fil. Var her jeg så for meg at jeg kunne kanskje spare litt på den "skrive til fil" biten, for nå skriver jeg hele filen på nytt... Lenke til kommentar
hockey500 Skrevet 28. juni 2006 Del Skrevet 28. juni 2006 det er jo bare å lage en enkel funksjon som legger til den nye verdien i config-fila? Lenke til kommentar
ZoRaC Skrevet 28. juni 2006 Forfatter Del Skrevet 28. juni 2006 allyse: Den ser jo grei ut, da trenger jeg jo bare å legge den til i from'en så er det jo greit...? Skulle jo laget noe slikt fra starten av, men da var det ikke stort man kunne konfigurere, men det har bare "klabbet på seg" Lenke til kommentar
allyse Skrevet 28. juni 2006 Del Skrevet 28. juni 2006 allyse:Den ser jo grei ut, da trenger jeg jo bare å legge den til i from'en så er det jo greit...? Skulle jo laget noe slikt fra starten av, men da var det ikke stort man kunne konfigurere, men det har bare "klabbet på seg" 6398911[/snapback] Den tar resulatetet av formen ja. f.eks (veit elendig html, men tok den fra en testfil ) form id=\"form1\" name=\"form1\" method=\"post\" action=\"test.php?action=save\"> <table width=\"800\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> <tr><td>Database name</td> <td><input type=\"text\" id=\"dbname\" value=\"{$CONFIG['dbname']}\" name=\"dbname\" /></td> </tr> <tr> <td>Database user</td> <td><input type=\"text\" id=\"dbuser\" value=\"{$CONFIG['dbuser']}\" name=\"dbuser\" /></td> </tr> </table> <input type=\"submit\" name=\"Submit\" value=\"Submit\"> </form> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå