frebjo Skrevet 26. juli 2009 Del Skrevet 26. juli 2009 Hei! Holder på å lage et enkelt CMS som baserer seg på en tekstfil med nyhetene i og 2 filer med selve nyheten(en fullstendig og en ingress). Jeg bruker tinyMCE til å legge ut nye artikler og den fungerer ganske bra når jeg kun skal ha en fullstendig versjon, uten ingress. Måten jeg har administrator skjema er sånn: <form method="POST" action="write_artikkel.php"> <p><b><font size="5">Tittel: </font></b> <input type="text" name="Tittel" size="40"> <p><b><font size="5">Bilde:</font></b> <input type="text" name="Bilde" size="30"> <p><b><font size="5">Dato: </font></b> <input type="text" name="Dato" size="12"> <p><b><font size="5">Ingress:</font></b><br><br> <textarea name="Ingress" rows="18" cols="60" style="width: 80%"> </textarea> <p><b><font size="5">Tekstområde + ingress:</font></b><br><br> <textarea id="elm1" name="Tekst" rows="25" cols="60" style="width: 80%"> </textarea> </div> <!-- Some integration calls --> <a href="java script:;" onmousedown="tinyMCE.get('elm1').show();">[Show]</a> <a href="java script:;" onmousedown="tinyMCE.get('elm1').hide();">[Hide]</a> <a href="java script:;" onmousedown="tinyMCE.get('elm1').execCommand('Bold');">[Bold]</a> <a href="java script:;" onmousedown="alert(tinyMCE.get('elm1').getContent());">[Get contents]</a> <a href="java script:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent());">[Get selected HTML]</a> <a href="java script:;" onmousedown="alert(tinyMCE.get('elm1').selection.getContent({format : 'text'}));">[Get selected text]</a> <a href="java script:;" onmousedown="alert(tinyMCE.get('elm1').selection.getNode().nodeName);">[Get selected element]</a> <a href="java script:;" onmousedown="tinyMCE.execCommand('mceInsertContent',false,'<b>Hello world!!</b>');">[Insert HTML]</a> <a href="java script:;" onmousedown="tinyMCE.execCommand('mceReplaceContent',false,'<b>{$selection}</b>');">[Replace selection]</a></p> <input type="submit" value="Send" name="B1"><input type="reset" value="Tilbakestill" name="B2"><p> </p> </form> Og da ser write_artikkel.php slik ut: <?php $tittel = $_REQUEST['Tittel']; $bilde = $_REQUEST['Bilde']; $ingress = $_REQUEST['Ingress']; $tekst = $_REQUEST['Tekst']; $dato = $_REQUEST['Dato']; $myFile = "{$tittel}.php"; $myFileingress = "{$tittel}_short.php"; $myFile = str_replace(' ', '', $myFile); $myFile = str_replace('æ', 'ae', $myFile); $myFile = str_replace('ø', 'o', $myFile); $myFile = str_replace('å', 'aa', $myFile); $myFileingress = str_replace(' ', '', $myFileingress); $myFileingress = str_replace('æ', 'ae', $myFileingress); $myFileingress = str_replace('ø', 'o', $myFileingress); $myFileingress = str_replace('å', 'aa', $myFileingress); $tekst = str_replace('\"', '"', $tekst); $ingress = str_replace('\"', '"', $tekst); $fi = fopen($myFileingress, 'w'); $bodyi = " <p align=\"right\"><font size=\"3\">{$dato}</font></p> <p align=\"center\"><font size=\"4\"><strong ><u>{$tittel}</u></strong></font></p> <p>{$ingress}</p>"; fwrite($fi, $bodyi); fclose($fi); $fh = fopen($myFile, 'w'); if(!empty($bilde)) { $body = " <p align=\"right\"><font size=\"3\">{$dato}</font></p> <p align=\"center\"><font size=\"4\"><strong ><u>{$tittel}</u></strong></font></p> <p> <div align=\"center\"><img src={$bilde} alt=\"Bilde kunne ikke vises\" </div> $tekst</p>"; } else { $body = " <p align=\"right\"><font size=\"3\">{$dato}</font></p> <p align=\"center\"><font size=\"4\"><strong ><u>{$tittel}</u></strong></font></p> <p>{$tekst}</p>"; } fwrite($fh, $body); fclose($fh); $fb = fopen('nyheter.txt', 'a'); $myFile = "\n{$myFile}"; fwrite($fb, $myFile); fclose($fb); header('Location:administrator.php'); die(); ?> Problemet er at skriptet legger samme data både i ingress fila og i hovedartikkelen, når den egentlig skulle ha lagtforskjellig. Jeg har søkt rundt for å se om det er begrensninger på antall textareas osv. eller begrensinger i tinymce, men har ikke funnet noe. Håper noen kan se over koden og gi meg en pekepinn på hvor feilen ligger. På forhånd takk Lenke til kommentar
funkyboy Skrevet 27. juli 2009 Del Skrevet 27. juli 2009 Ser ikke løsningen umiddelbart, men vil bare si du gjør dette forferdelig tungvint. Dette med tanke på blant annet: 1. Det er en fordel å også kunne endre artikler etter innlegging. Slik dette vil fungere, er at html- en du legger til filene vil vises i MCE- feltet når du skal redigere. Alternativt vil du kunne redigere, men skrive mer og mer regulære uttrykk som erstatter html etterhvert som siden utvikles. 2. Du mister/gjør mulighet for søk/sortering etc. svært tregt, da du eventuelt er nødt til å gå igjennom tesktfiler med ressurskrevende regulære uttrykk. 3. Skal nettstedet ha noen fremtid, må denne jobben uansett gjøres på nytt før eller siden. Følg derfor god praksis fra starten av. Det mest fordelaktige er altså i dette tilfellet å benytte en database (du er nok antakelig klar over dette). Men uansett; I de aller fleste tilfeller av god databehandling, skal kun dataen fra skjemaet lagres (i database eller fil). Du bør altså ikke skrive inn annet til filen på samme tidspunkt. NB: Du trenger forøvrig ikke erstatte æ, ø og å. Bruk heller riktig tegnsett. 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å