oblomsoe Skrevet 22. mai 2005 Del Skrevet 22. mai 2005 (endret) Jeg holder på med en gjestebok og er helt ny i php og mysql osv...Har også tenkt å bruke noe av den samme koden som ett nyhetsscript. Og når har jeg fått laget det slik at når man trykker på knapper så kommer det opp sånn tag koder sånn som det gjør her i HW. Men problemet er at når det blir postet så blir meldingen som står i gjesteboken seende lik ut som det man skriver. Altså det blir ikke bold tekst men bodl taggene med tekst imellom..Koden jeg har nå er veeeeldig uoversiktlig, men her er den da: <? include ("config.php"); ?> <?php if((isset($_GET['VisMer']))&&(!empty($_GET['VisMer']))) { //Vis mer her! :) } ?> <?php $query = "select * from nyheter order by id desc"; $result = mysql_query($query); if(!mysql_num_rows($result)) print("Ingen nyheter er lagt til."); else { while($row = mysql_fetch_array($result)) { print(" <table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\"> <tr> <td>" . $row["overskrift"] . " - " . date("d.m.Y - H:i:s",$row["tidspunkt"]) . "</td> </tr> <tr> <td>" . nl2br($row["tekst"]) . "</td> </tr> </table> <hr /> "); } } ?> <?php if((isset($_GET['VisMer']))&&(!empty($_GET['VisMer']))) { //Vis mer her! :) } ?> <?php # Funksjon som skriver ut $errarr variabelen i form av en liste function errarr($array) { if(count($array)) { print("<ul>"); for($i = 0;$i < count($array);$i++) print("<li>" . $array[$i] . "</li>"); print("</ul>"); } } if(isset($_POST["submit"])) { # Opprette et array som beskjeder kan lagres i $errarr = array(); if($_POST["overskrift"] == "" || $_POST["message"] == "") array_push($errarr,"Du må fylle ut begge feltene."); # Ingen feil har skjedd. Sett inn nyhet i databasen if(!count($errarr)) { $query = "insert into nyheter( overskrift, tekst, tidspunkt ) values( '" . $_POST["overskrift"] . "', '" . $_POST["message"] . "', '" . time() . "' )"; if(!@mysql_query($query)) array_push($errarr,"Et eller annet gikk galt. Nyheten ble ikke lagt til. Feilmeldingen fra mysql er: " . mysql_error()); else array_push($errarr,"Nyheten ble lagt til."); } } ?> <html> <head> <title>Nyhetsform</title> </head> <body> <?php errarr($errarr); ?> <?php function hyperlink(&$text) { // match protocol://address/path/ $text = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "<a href=\"\\0\">\\0</a>", $text); // match www.something $text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>", $text); } ?> <script language="JavaScript" type="text/javascript"> <!-- // bbCode control by // subBlue design // www.subBlue.com // Startup variables var imageTag = false; var theSelection = false; // Check for Browser & Platform for PC & IE specific bits // More details from: http://www.mozilla.org/docs/web-developer/sniffer/browser_type.html var clientPC = navigator.userAgent.toLowerCase(); // Get client info var clientVer = parseInt(navigator.appVersion); // Get browser version var is_ie = ((clientPC.indexOf("msie") != -1) && (clientPC.indexOf("opera") == -1)); var is_nav = ((clientPC.indexOf('mozilla')!=-1) && (clientPC.indexOf('spoofer')==-1) && (clientPC.indexOf('compatible') == -1) && (clientPC.indexOf('opera')==-1) && (clientPC.indexOf('webtv')==-1) && (clientPC.indexOf('hotjava')==-1)); var is_moz = 0; var is_win = ((clientPC.indexOf("win")!=-1) || (clientPC.indexOf("16bit") != -1)); var is_mac = (clientPC.indexOf("mac")!=-1); // Define the bbCode tags bbcode = new Array(); bbtags = new Array('[b]','[/b]','[i]','[/i]','[u]','[/u]','[quote]','[/quote]','[code]','[//code]','[list]','[/list]','[list=]','[/list]','[img=',']','[url]','[/url]'); imageTag = false; // Replacement for arrayname.length property function getarraysize(thearray) { for (i = 0; i < thearray.length; i++) { if ((thearray[i] == "undefined") || (thearray[i] == "") || (thearray[i] == null)) return i; } return thearray.length; } // Replacement for arrayname.push(value) not implemented in IE until version 5.5 // Appends element to the array function arraypush(thearray,value) { thearray[ getarraysize(thearray) ] = value; } // Replacement for arrayname.pop() not implemented in IE until version 5.5 // Removes and returns the last element of an array function arraypop(thearray) { thearraysize = getarraysize(thearray); retval = thearray[thearraysize - 1]; delete thearray[thearraysize - 1]; return retval; } function bbstyle(bbnumber) { var txtarea = document.post.message; txtarea.focus(); donotinsert = false; theSelection = false; bblast = 0; if (bbnumber == -1) { // Close all open tags & default button names while (bbcode[0]) { butnumber = arraypop(bbcode) - 1; txtarea.value += bbtags[butnumber + 1]; buttext = eval('document.post.addbbcode' + butnumber + '.value'); eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); } imageTag = false; // All tags are closed including image tags :D txtarea.focus(); return; } if ((clientVer >= 4) && is_ie && is_win) { theSelection = document.selection.createRange().text; // Get text selection if (theSelection) { // Add tags around selection document.selection.createRange().text = bbtags[bbnumber] + theSelection + bbtags[bbnumber+1]; txtarea.focus(); theSelection = ''; return; } } else if (txtarea.selectionEnd && (txtarea.selectionEnd - txtarea.selectionStart > 0)) { mozWrap(txtarea, bbtags[bbnumber], bbtags[bbnumber+1]); return; } // Find last occurance of an open tag the same as the one just clicked for (i = 0; i < bbcode.length; i++) { if (bbcode[i] == bbnumber+1) { bblast = i; donotinsert = true; } } if (donotinsert) { // Close all open tags up to the one just clicked & default button names while (bbcode[bblast]) { butnumber = arraypop(bbcode) - 1; txtarea.value += bbtags[butnumber + 1]; buttext = eval('document.post.addbbcode' + butnumber + '.value'); eval('document.post.addbbcode' + butnumber + '.value ="' + buttext.substr(0,(buttext.length - 1)) + '"'); imageTag = false; } txtarea.focus(); return; } else { // Open tags if (imageTag && (bbnumber != 14)) { // Close image tag before adding another txtarea.value += bbtags[15]; lastValue = arraypop(bbcode) - 1; // Remove the close image tag from the list document.post.addbbcode14.value = "Img"; // Return button back to normal state imageTag = false; } // Open tag txtarea.value += bbtags[bbnumber]; if ((bbnumber == 14) && (imageTag == false)) imageTag = 1; // Check to stop additional tags after an unclosed image tag arraypush(bbcode,bbnumber+1); eval('document.post.addbbcode'+bbnumber+'.value += "*"'); txtarea.focus(); return; } storeCaret(txtarea); } // From http://www.massless.org/mozedit/ function mozWrap(txtarea, open, close) { var selLength = txtarea.textLength; var selStart = txtarea.selectionStart; var selEnd = txtarea.selectionEnd; if (selEnd == 1 || selEnd == 2) selEnd = selLength; var s1 = (txtarea.value).substring(0,selStart); var s2 = (txtarea.value).substring(selStart, selEnd) var s3 = (txtarea.value).substring(selEnd, selLength); txtarea.value = s1 + open + s2 + close + s3; return; } function storeCaret(textEl) { if (textEl.createTextRange) textEl.caretPos = document.selection.createRange().duplicate(); } //--> </script> <form action="<?php print($_SERVER["PHP_SELF"]); ?>" form name="post" method="post"> <p> <input type="button" name="addbbcode0" value=" B " style="font-weight:bold; width: 30px" onClick="bbstyle(0)" /> <input type="button" name="addbbcode2" value=" i " style="font-style:italic; width: 30px" onClick="bbstyle(2)" /> <input type="button" name="addbbcode4" value=" u " style="text-decoration: underline; width: 30px" onClick="bbstyle(4)" /> <input type="button" name="addbbcode6" value="Quote" style="width: 50px" onClick="bbstyle(6)" /> <input type="button" name="addbbcode8" value="Code" style="width: 40px" onClick="bbstyle(8)" /> <input type="button" name="addbbcode10" value="List" style="width: 40px" onClick="bbstyle(10)" /> <input type="button" name="addbbcode12" value="List=" style="width: 40px" onClick="bbstyle(12)" /> <input type="button" name="addbbcode14" value="Img" style="width: 40px" onClick="bbstyle(14)" /> <input type="button" name="addbbcode16" value="URL" style="text-decoration: underline; width: 40px" onClick="bbstyle(16)" /> <a href="javascript:bbstyle(-1)" class="genmed">Lukk Tagger</a></p> <p> <input name="overskrift" type="text" class="post" id="overskrift" style="width:450px" tabindex="3" onSelect="storeCaret(this);" onClick="storeCaret(this);" onKeyUp="storeCaret(this);" value="Ditt Navn" size="35"> <br /> <textarea name="message" cols="35" rows="10" wrap="PHYSICAL" class="post" style="width:450px" tabindex="3" onSelect="storeCaret(this);" onClick="storeCaret(this);" onKeyUp="storeCaret(this);">Melding</textarea> </p> </p> <input type="submit" name="submit" value="Legg til" /> <p align="left"> <h3></h3> </p></td> </tr> </table> </form> Jeg har fått til å lage slikt at jeg kan slette poster fra ett admin panel. Men så lurer jeg også på om dere vet en lett script for å redigere innleggene også? Takk for alle svar! Endret 22. mai 2005 av oblomsoe Lenke til kommentar
genstian Skrevet 22. mai 2005 Del Skrevet 22. mai 2005 last innlegget fra databasen. print innlegget i en text form og lage en submit knapp. når du submiter innlegget etter du har rediger det putter du alt på plass. the end. Lenke til kommentar
oblomsoe Skrevet 22. mai 2005 Forfatter Del Skrevet 22. mai 2005 (endret) Takk for svar! Hm..tror jeg skjønte det meste av det dær, men som sagt så er jeg ny i php:P Så vilken script skal jeg legge inn at skal skje når jeg trykker på submit knappen? Og noen som har svar på det andre spørsmålet mitt? takk Edit: Og gjerne slik at alle innlegg vises i en sånn dropp greia så velger jeg en av de som jeg kan endre på hvis det er mulig... Endret 22. mai 2005 av oblomsoe Lenke til kommentar
genstian Skrevet 22. mai 2005 Del Skrevet 22. mai 2005 hvis du kaller text formen innlegg(name="innlegg") bruker du $_POST['innlegg'] til og få innlegget til en streng. $innlegg = $_POST['innlegg'] etc. Lenke til kommentar
oblomsoe Skrevet 22. mai 2005 Forfatter Del Skrevet 22. mai 2005 Takk. Lurte også litt på å bruk den dær som en nyhetsscript. Her er koden jeg har i adminpanelet dær jeg legger inn nyheter: <? include ("config.php"); ?> <?php if((isset($_GET['VisMer']))&&(!empty($_GET['VisMer']))) { //Vis mer her! :) } ?> <?php # Funksjon som skriver ut $errarr variabelen i form av en liste function errarr($array) { if(count($array)) { print("<ul>"); for($i = 0;$i < count($array);$i++) print("<li>" . $array[$i] . "</li>"); print("</ul>"); } } if(isset($_POST["submit"])) { # Opprette et array som beskjeder kan lagres i $errarr = array(); if($_POST["overskrift"] == "" || $_POST["tekst"] == "") array_push($errarr,"Du må fylle ut begge feltene."); # Ingen feil har skjedd. Sett inn nyhet i databasen if(!count($errarr)) { $query = "insert into nyheter( overskrift, tekst, tidspunkt ) values( '" . $_POST["overskrift"] . "', '" . $_POST["tekst"] . "', '" . time() . "' )"; if(!@mysql_query($query)) array_push($errarr,"Et eller annet gikk galt. Nyheten ble ikke lagt til. Feilmeldingen fra mysql er: " . mysql_error()); else array_push($errarr,"Nyheten ble lagt til."); } } ?> <html> <head> <title>Nyhetsform</title> </head> <body> <?php errarr($errarr); ?> <?php function hyperlink(&$text) { // match protocol://address/path/ $text = ereg_replace("[a-zA-Z]+://([.]?[a-zA-Z0-9_/-])*", "<a href=\"\\0\">\\0</a>", $text); // match www.something $text = ereg_replace("(^| )(www([.]?[a-zA-Z0-9_/-])*)", "\\1<a href=\"http://\\2\">\\2</a>", $text); } ?> <form action="<?php print($_SERVER["PHP_SELF"]); ?>" method="post"> <table cellpadding="2" cellspacing="0"> <tr> <td>Overskrift</td> <td><input type="text" name="overskrift" maxlength="255" /></td> </tr> <tr> <td>Tekst</td> <td><textarea name="tekst" rows="8" cols="30"></textarea></td> </tr> <tr> <td colspan="2" align="center"> <p> <input type="submit" name="submit" value="Legg til" /> </p> <p align="left"> <h3></h3> </p></td> </tr> </table> </form> </body> </html> Og her er koden som jeg bruker der nyhetene skal ligge: <?php if((isset($_GET['VisMer']))&&(!empty($_GET['VisMer']))) { //Vis mer her! :) } ?> <?php $query = "select * from nyheter order by id desc"; $result = mysql_query($query); if(!mysql_num_rows($result)) print("Ingen nyheter er lagt til."); else { while($row = mysql_fetch_array($result)) { print(" <table width=\"100%\" cellpadding=\"2\" cellspacing=\"0\"> <tr> <td>" . $row["overskrift"] . " - " . date("d.m.Y - H:i:s",$row["tidspunkt"]) . "</td> </tr> <tr> <td>" . nl2br($row["tekst"]) . "</td> </tr> </table> <hr /> "); } } ?> Også lurte jeg på hva jeg skulle legge inn på de dær for at feks bare de 5 første poster ble vist og en link hvor det evt. sto Arkiv elns som man kan trykke på for å se de 5 neste osv...Og at det bare vistes litt av hver nyhet og at man måtte trykke på en Les mer knapp for å lese alt hvis det er mulig? Takk. Lenke til kommentar
oblomsoe Skrevet 22. mai 2005 Forfatter Del Skrevet 22. mai 2005 Evt. Noen som har en script som jeg kan bruke til det nyhetsgreien eller vet en tutorial til det? Takk 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å