Avatar billede kiwankow Nybegynder
23. august 2009 - 19:27 Der er 20 kommentarer og
1 løsning

kan man hente input value fra ekstern fil..??

Hej jeg har en side med 10 input felter af typen text, som gemmer gemmer det indtastede i en ekstern fil.
Jeg kunne godt tænke mig at vide hvordan man laver input felterne så de automatisk viser den værdi man gemte sidste gang, altså henter dem fra en anden fil.
Hvis du nu har udfyldt alle ti felter og gemt og så senere vil rette bare et af felterne, så ville det være rart hvis den automatisk viser hvad man skrev sidst..
Avatar billede webweaver Praktikant
23. august 2009 - 19:48 #1
<input type="text" name="navn" value="<? echo $_POST['variabel']; ?>">

Det kan gøres sådan. Så vil den vise den variabel i feltet.
Den hentes så ud ligesom fra en DB, her i dette tilfælde en tekstfil, og så gemmer man det som den variabel man bruger i input feltet.

Har du styr på hvordan man hente data fra en fil?
Hvorfor benytter du dig ikke af en database?
Avatar billede kiwankow Nybegynder
23. august 2009 - 19:59 #2
Nej jeg ved desværre ikke hvordan man henter fra en fil.

Grunden til at jeg skriver værdierne til en fil og ikke til en database er fordi værdierne er hex-farvekoder som skrives direkte ind i mit stylesheet.
Avatar billede w13 Novice
23. august 2009 - 20:01 #3
Det ville være meget nemmere med en database.

I dit nuværende tilfælde skal du finde en kode, der går ind i stylesheet'et og på en eller anden måde henter lige akkurat den ønskede værdi ud. Det bliver hurtigt ret uhensigtsmæssigt. Og det kunne skam sagtens laves let med database i stedet, så stylesheet'et bare henter farvekoderne fra den.
Avatar billede kiwankow Nybegynder
23. august 2009 - 20:12 #4
Det har jeg desværre ikke forstand på, men jeg kunne også bare skrive værdierne til to filer, altså både til stylesheetet og til en tekstfil som ikke indeholder andre oplysninger
Avatar billede webweaver Praktikant
23. august 2009 - 20:21 #5
Så kunne du lige så godt skrive dem til dit stylesheet, og samtidig smide dem i en DB evt. Istedet for 2 filer.
Avatar billede w13 Novice
23. august 2009 - 20:22 #6
Ja, det ville måske være nemmest for dig lige nu.

Du kan f.eks. udskrive indholdet af en tekstfil sådan her:

$fh = fopen('testFile.txt', 'r');
$theData = fread($fh, 5);
fclose($fh);

echo $theData;
Avatar billede kiwankow Nybegynder
23. august 2009 - 20:23 #7
jamen hvis det er nemt at lave vil jeg da gerne lære det :-)
Avatar billede webweaver Praktikant
23. august 2009 - 21:05 #8
Alt er nemt, når man først har lært det. Men ting tager sin tid :)
Du kan evt. købe "Start på PHP" eller "Start på PHP5". Der kan du lære en hel masse :)
Avatar billede kiwankow Nybegynder
23. august 2009 - 22:13 #9
til w13:

Jeg har lavet mit script så den gemmer således:
<?php
if (isset($_POST["Submit"])) {
$string = '
'. $_POST["bgbottom"]. '
'. $_POST["bgtop"]. '
'. $_POST["linkborder"]. '
'. $_POST["linkbg"]. '
'. $_POST["linkbghover"]. '
'. $_POST["shead"]. '
'. $_POST["bhead"]. '
'. $_POST["border"]. '
'. $_POST["footerlink"]. '
';
$fp = fopen("colorcodes.txt", "w");
fwrite($fp, $string);
fclose($fp);
}
?>

Dette giver en .txt fil som indeholder følgende:
#FFFFFF
#C5C5C5
#000000
#5C5C5C
#FFFFFF
#000000
#000000
#000000
#C5C5C5

Kan du tilpasse det du skrev før så disse værdier automatisk hentes ind som value i mine inputfelter. Jeg går ud fra det skal skrives noget mere i .txt filen..??
Avatar billede w13 Novice
24. august 2009 - 10:47 #10
<?php
if (isset($_POST["Submit"])) {
$string = '
'. $_POST["bgbottom"]. '
'. $_POST["bgtop"]. '
'. $_POST["linkborder"]. '
'. $_POST["linkbg"]. '
'. $_POST["linkbghover"]. '
'. $_POST["shead"]. '
'. $_POST["bhead"]. '
'. $_POST["border"]. '
'. $_POST["footerlink"]. '
';
$fp = fopen("colorcodes.txt", "w");
fwrite($fp, $string);
fclose($fp);
}

function writeColor($i, $s){
  $fh = fopen('color'.i.'.txt', 'w');
  fwrite($fp, $s);
  fclose($fp);
}

writeColor(1, $_POST["bgbottom"]);
writeColor(2, $_POST["bgtop"]);
writeColor(3, $_POST["linkborder"]);
writeColor(4, $_POST["linkbg"]);
writeColor(5, $_POST["linkbghover"]);
writeColor(6, $_POST["shead"]);
writeColor(7, $_POST["bhead"]);
writeColor(8, $_POST["border"]);
writeColor(9, $_POST["footerlink"]);

?>

Og så kan dine inputfelter evt. se sådan her ud:

<input type="text" name="bgbottom" value="<?php retrieveColor(1); ?>">

Så skal der bare også være følgende kode øverst på siden:

<?php

function retrieveColor($i){
  $fh = fopen('color'.$i.'.txt', 'r');
  echo fread($fh, 5);
  fclose($fh);
}

?>

Men stadig bliver det let lidt rodet. Database ville stadig være at foretrække!
Avatar billede kiwankow Nybegynder
25. august 2009 - 10:36 #11
Dette producerer følgende fejl.

Warning: fwrite(): supplied argument is not a valid stream resource

Warning: fclose(): supplied argument is not a valid stream resource

og er det nødvendigt at skrive til både colorcodes.txt og colori.txt..??
Avatar billede w13 Novice
25. august 2009 - 11:16 #12
Den første linje inde i function writeColor(...) skal begynde med $fp i stedet for $fh.

Og nej, du kangoft lave en kode, som aflæser et bestemt linje-nr., men det kan jeg ikke lige huske i hovedet.
Avatar billede kiwankow Nybegynder
25. august 2009 - 11:30 #13
Jeg mente nu mere om den øverste del ikke helt kunne udelades:
{
$string = '
'. $_POST["bgbottom"]. '
'. $_POST["bgtop"]. '
'. $_POST["linkborder"]. '
'. $_POST["linkbg"]. '
'. $_POST["linkbghover"]. '
'. $_POST["shead"]. '
'. $_POST["bhead"]. '
'. $_POST["border"]. '
'. $_POST["footerlink"]. '
';
$fp = fopen("colorcodes.txt", "w");
fwrite($fp, $string);
fclose($fp);
}

Scriptet gemmer fint nu, men det gemmer kun den sidste værdi fra det sidste input-field.
Avatar billede w13 Novice
25. august 2009 - 11:44 #14
Nå ja. Sagtens.
Avatar billede kiwankow Nybegynder
25. august 2009 - 11:49 #15
hvordan får du den så til at gemme fra alle inpufelter og ikke kun det sidste
Avatar billede w13 Novice
25. august 2009 - 12:39 #16
Jeg kan ikke se, hvorfor den kun skulle gemme fra det sidste.
Avatar billede kiwankow Nybegynder
25. august 2009 - 12:47 #17
det kan være den først gemmer felt 1 så felt 2 osv og derfor kunder ender op med det sidste felt. altså at den skriver oveni hver gang
Avatar billede w13 Novice
25. august 2009 - 13:05 #18
Hvilke filer bliver oprettet?
Avatar billede kiwankow Nybegynder
25. august 2009 - 13:07 #19
Ingen filer bliver oprettet af scriptet, det siger at der mangler en fil ved navn colori.txt den har jeg så oprettet manuelt, altså en tom fil og det er heri informationen gemmes
Avatar billede w13 Novice
25. august 2009 - 13:26 #20
Ah ja, du skal lige rette .i. til .$i.

Og så skal du oprette filerne:

color1.txt
color2.txt
...
color9.txt
Avatar billede w13 Novice
10. september 2009 - 08:59 #21
Tak for points! :)
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