03. april 2007 - 10:43
Der er
29 kommentarer og 1 løsning
nyhedsbrev wysiwyg billede hjælp.
Hej eksperter Jeg har lavet et wysiwyg nyhedsbrev system, men det virker ikke helt efter planen. jeg kan ikke få den til at vise billederne rigtigt, jeg har prøvet med noget str_replace og preg_replace, men det virker ikke helt optimalt. det er lavet sådan her: <p><div id="wysiwyg" contentEditable="true" class="WYSIWYG" align="left"> <P><?print ("$row[indhold]");?> </div></p> <input TYPE="HIDDEN" NAME="indhold" VALUE> Og jeg har så en anden side hvor billederne ligger på, lavet som en popup, jeg kan så trække billederne over i editoren, men her kommer problemet, den laver flere height og flere width, når jeg trækker i billedet i editoren. eks hvis jeg vil lave billedet mindre. her er lidt af koden, til at sende mailen og rette indhold. require ('db_info.php'); $indhold = str_replace("HEIGHT:","height=",$indhold); $indhold = str_replace("WIDTH:","width=",$indhold); $indhold = preg_replace("/\\\/","\"",$indhold); $indhold = str_replace("/=\/","=",$indhold); $indhold = str_replace("\/","",$indhold); $indhold = str_replace("\"","",$indhold); $indhold = str_replace("\'","'",$indhold); $indhold = str_replace("\http","http",$indhold); $indhold = str_replace("\>",">",$indhold); if ($test_send == "1") { $query ="SELECT * FROM nyhedsbrev where admin='1';"; $result = mysql_db_query ($database, $query); while($row = mysql_fetch_array($result)){ $id = $row[id]; $email = $row[email]; $navn = $row[navn]; mail("$email","nyhedsbrev $hentdato"," $css $top <font size=4>Galleri Brænderigården nyhedsbrev $hentdato</font><br><br> Kære $navn<br> $indhold $bottom </font></html>","From: Galleri Brænderigården Horsens<$mail_fra>\nContent-type:text/html"); } $mysql_query = "UPDATE nyhedsbrev_indhold SET indhold='$indhold' where id='1'"; mysql_query("$mysql_query"); Her er så html fra det nyhedsbrev som jeg modtog, jeg viser kun <img> delen. <P align=center><IMG style=WIDTH: 485px; HEIGHT: 360px height=360 src=http://www.blop.dk/test/nyhedsbrev/images/upload/2352.jpg width=65 332 160px; 360px 821px; 333px; HEIGHT: 547px;> </P> Håber at der er nogen som kan hjælpe mig for lige nu er jeg gået fast. Måske der er en kode som sletter height= og width= på et billede, ved det ikke, men hjælp har jeg brug for. Jeg sætter 200 point på spil til en løsning.
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
03. april 2007 - 11:27
#1
må også gerne laves på en anden måde, hvis det er fordi jeg hiver billederne ind i min editor.
03. april 2007 - 11:42
#2
Dette virker da også helt forkert: width=65 332 160px; 360px 821px; 333px; HEIGHT: 547px; Kan det ikke tænkes det er en fejl i din wysiwyg ??
03. april 2007 - 11:43
#3
Hvilken editor bruger du? Hvad med at bruge fckeditor eller tinymce og så sende html'en ud med phpmailer() ?
03. april 2007 - 12:00
#4
det er noget hjemmestrikket noget + lidt fra andre editore. men prøv om du kan se hvad der er fejlen, jeg har en function valider i javascript, som jeg poster her. Vil helst ikke til at bruge en anden editor. Her kommer koden <script> function doFont(fName) { if(fName != '') document.execCommand('fontname', false, fName); } function doSize(fSize) { if(fSize != '') document.execCommand('fontsize', false, fSize); } </script> <H3>Galleri Brænderigården Nyhedsbrev</H3> <table cellpadding="0" cellspacing="0" border="0"> <div> <form NAME="forside" ACTION="show.php" METHOD="POST" OnSubmit="return valider();"> <script> function valider() { document.forside.indhold.value=wysiwyg.innerHTML; if (document.forside.indhold.value=="") { wysiwyg.focus(); alert("Du skal indtaste noget indhold!"); return (false); } return(true); } function newWin(str1, str2, str3){ win = window.open(str1, str2, str3) if(win.opener == null){ win.opener = self; } } </script> <p><div id="wysiwyg" contentEditable="true" class="adminWYSIWYG" align="left"> <P><?print ("$row[indhold]");?> </div></p> <input TYPE="HIDDEN" NAME="indhold" VALUE> Kan du gennemskue det ?
03. april 2007 - 12:00
#5
ved godt at det ikke rigtig har noget med php og gøre, det jeg har postet, men jeg tror stadig på at det er php som laver en fejl når inden det bliver indsat i databasen og sendt.
03. april 2007 - 12:31
#6
har lige prøvet at bruge fckeditor og der får jeg denne kode hvis jeg trækker i billedet jeg har indsat.
<p><img style="width: 225px; height: 561px" height="600" width="800" alt="" src="/_userfiles/image/1.jpg" />This is some <strong>sample text</strong>. You are using <a href="
http://www.fckeditor.net/">FCKeditor</a>.</p> Det er heller ikke helt rigtigt for der er 2 height og 2 width.
Det som jeg tror er at den henter billedets oprindelige størrelse og indsætter det i img style og bagefter indsætter den så størrelsen igen efter at man har trukket i billedet, og gør man det flere gange ja så står der mange height og width.
Kan det ikke laves på en anden måde. ?
03. april 2007 - 12:56
#7
Jo, det er rigtigt! Den ene height er direkte på img og den anden er via style.
03. april 2007 - 13:13
#8
kan med php kode slette height og width direkte på et billede, sådan at det kun er via style. ?
03. april 2007 - 13:17
#9
jeg mener selvfølgelig kan man med php kode slette height og width direkte på et billede, sådan at det kun er via style den styrer billede højde og bredde. ?
03. april 2007 - 13:37
#10
Ja, det kan du godt!
Prøv følgende kode:
$gammel = '<p><img style="width: 225px; height: 561px" height="600" width="800" alt="" src="/_userfiles/image/1.jpg" />This is some <strong>sample text</strong>. You are using <a href="
http://www.fckeditor.net/">FCKeditor</a>.</p>'; $ny = preg_replace('/(width|height)=".+?"\\s/si', '', $gammel);
03. april 2007 - 13:52
#11
ja det virker jo fint, men kan man også gøre sådan at det virker til forskellige billeder, det er jo ikke den samme højde og bredde billederne kommer ud med. lad os tage udgangspunkt i denne her, for det er jo sådan set samme fejl som i mit script. <P align=center><IMG style=WIDTH: 485px; HEIGHT: 360px height=360 src=http://www.blop.dk/test/nyhedsbrev/images/upload/2352.jpg width=65 332 160px; 360px 821px; 333px; HEIGHT: 547px;> </P> Håber at du kan hjælpe med det sidste :-)
03. april 2007 - 13:54
#12
den skal ligesom den øverste slette alt med width og height direkte, og gemme det som står i style.
03. april 2007 - 14:05
#13
Jeg kan nok godt rette det. Men du skal først sikre at følgende sættes i "" style=WIDTH: 485px; HEIGHT: 360px Det skal være: style="WIDTH: 485px; HEIGHT: 360px"
03. april 2007 - 14:06
#14
Og en anden ting, det er da dumt at fejlrette med en regexp efterfølgende. Du skal da hellere rette i den kode som laver det HTML kode. Der må jo være en fejl, da du har flere height og width i din kode.
03. april 2007 - 14:16
#15
hmmm. mig bekendt er det ikke noget jeg kan gøre. det er vel denne her som generere koden. div id="wysiwyg" contentEditable="true" class="WYSIWYG" align="left"> class WYSIWYG står der flg. .WYSIWYG { BORDER-RIGHT: gray 1px inset; PADDING-RIGHT: 3px; BORDER-TOP: gray 1px inset; PADDING-LEFT: 3px; PADDING-BOTTOM: 3px; FONT: 11px/14px Verdana, Arial; OVERFLOW: auto; BORDER-LEFT: gray 1px inset; WIDTH: 620px; COLOR: black; PADDING-TOP: 3px; BORDER-BOTTOM: gray 1px inset; scrollbar-3d-light-color: #669900; scrollbar-arrow-color: #000000; scrollbar-base-color: #000000; scrollbar-dark-shadow-color: #ffffff; scrollbar-face-color: #c5c5c5; scrollbar-highlight-color: #ffffff; scrollbar-shadow-color: #ffffff; HEIGHT: 500px; BACKGROUND-COLOR: white; TEXT-DECORATION: none } a:link, a:visited, a:active { background-color: transparent; color: #000000; text-decoration: underline; font-weight: bold; } a:hover { background-color: transparent; color: #777777; text-decoration: none; } Men syntes ellers ikke at jeg kan rette noget, så hvis du har en løsning med regexp så vil jeg gerne se den. Og tak for din hjælp :-)
03. april 2007 - 14:40
#16
Problemet er, at den editor du bruger, laver så dårlig kode, så man ikke vil kunne fjerne rigtige og forkert width og height. Hvordan skulle jeg kunne se forskel på: HEIGHT: 547px og HEIGHT: 360px Så skal man evt. udlæse style... og så fjerne alt og så klippe det ind igen.
03. april 2007 - 14:40
#17
Jeg ville nu nok overveje en anden editor, som laver korrekt HTML.
03. april 2007 - 14:45
#18
problemet er jo at det kun opstår hvis jeg trækker i billedet, og det gjorde det jo også når jeg brugte fckeditor, så det kan jo også være en generel fejl, her er koden fra et nyhedsbrev som jeg lige hurtigt sendte uden jeg har trukket i billedet.
<head><link rel="stylesheet" type="text/css" href="
http://www.blop.dk/test/nyhedsbrev/nyhedsbrev_style.css"></head> <body bgcolor="#c0c0c0"><center><img src="
http://www.blop.dk/test/html/email_top.jpg" BORDER="2" BORDERCOLOR="BLACK" WIDTH="620"></center><br>
<TABLE BORDER="1" BORDERCOLOR="BLACK" BGCOLOR="#cccccc" CELLSPACING="0" CELLPADDING="10" WIDTH="623" HEIGHT="570" ALIGN="CENTER">
<TR>
<TD VALIGN="TOP">
<font size=4>Galleri Brænderigården nyhedsbrev 03/04/2007</font><br><br>
Kære test navn<br>
<P><IMG style=width= 259px; height= 713px height=1200 src=http://www.blop.dk/test/nyhedsbrev/images/upload/Til%20avis%20271103.jpg width=828> </P>
</TR></TABLE>
<TABLE WIDTH="620" ALIGN="CENTER" CELLPADDING="2"><TR><TD><br><font size="2" color="#777777">Galleri Brænderigården Horsens - Søndergade 41 E - 8700 Horsens. Telefon 7625 1445 - Fax 7625 1448 <a href="mailto:info@gb-h.dk"><font color="#777777">info@gb-h.dk</font></a>
</TD></TR></TABLE>
</font></html>
Der er koden mig bekendt OK.
03. april 2007 - 14:47
#19
ups det var den forkerte jeg sendte.
her er den.
<head><link rel="stylesheet" type="text/css" href="
http://www.blop.dk/test/nyhedsbrev/nyhedsbrev_style.css"></head> <body bgcolor="#c0c0c0"><center><img src="
http://www.blop.dk/test/html/email_top.jpg" BORDER="2" BORDERCOLOR="BLACK" WIDTH="620"></center><br>
<TABLE BORDER="1" BORDERCOLOR="BLACK" BGCOLOR="#cccccc" CELLSPACING="0" CELLPADDING="10" WIDTH="623" HEIGHT="570" ALIGN="CENTER">
<TR>
<TD VALIGN="TOP">
<font size=4>Galleri Brænderigården nyhedsbrev 03/04/2007</font><br><br>
Kære test navn<br>
<P><IMG src=http://www.blop.dk/test/nyhedsbrev/images/upload/Til%20avis%20271103.jpg> </P>
</TR></TABLE>
<TABLE WIDTH="620" ALIGN="CENTER" CELLPADDING="2"><TR><TD><br><font size="2" color="#777777">Galleri Brænderigården Horsens - Søndergade 41 E - 8700 Horsens. Telefon 7625 1445 - Fax 7625 1448 <a href="mailto:info@gb-h.dk"><font color="#777777">info@gb-h.dk</font></a>
</TD></TR></TABLE>
</font></html>
03. april 2007 - 14:48
#20
prøv også lige at kigge på mine regexp, kan også være der det går galt for jeg har bare prøvet mig frem. $indhold = str_replace("HEIGHT:","height=",$indhold); $indhold = str_replace("WIDTH:","width=",$indhold); $indhold = preg_replace("/\\\/","\"",$indhold); $indhold = str_replace("/=\/","=",$indhold); $indhold = str_replace("\/","",$indhold); $indhold = str_replace("\"","",$indhold); $indhold = str_replace("\'","'",$indhold); $indhold = str_replace("\http","http",$indhold); $indhold = str_replace("\>",">",$indhold);
03. april 2007 - 14:51
#21
Den sidste kode ud har sendt, synes jeg nu ikke at se en masse height og width tags?
03. april 2007 - 14:55
#22
nej det er jo det jeg mener, hvis jeg ikke trækker i billedet (laver om på højden eller bredden) så kommer der ikke nogen height og width tags. så derfor tror jeg ikke det er editoren.
03. april 2007 - 14:56
#23
kan du prøve om du helt kan fjerne <img style> så kan jeg se om det skulle være det. ?
03. april 2007 - 15:21
#24
Jeg må melde pas. Det skal være korrekt kode, før jeg kan rette i det med regexp. Beklager.
03. april 2007 - 15:34
#25
ok, hvis det kan hjælpe dig poster jeg hele scriptet, ang editoren så tror det jeg det er noget indbygget MS jscript. here er scriptet. <? require ('db_info.php'); print "<img src=\"$url\" BORDER=\"2\" BORDERCOLOR=\"BLACK\" WIDTH=\"620\">"; $query ="SELECT indhold FROM nyhedsbrev_indhold where id='1';"; $result = mysql_db_query ($database, $query); while($row = mysql_fetch_array($result)){ ?> <html> <head> <link rel="stylesheet" type="text/css" href="style.css"> </head> <script> function doFont(fName) { if(fName != '') document.execCommand('fontname', false, fName); } function doSize(fSize) { if(fSize != '') document.execCommand('fontsize', false, fSize); } </script> <H3>Galleri Brænderigården Nyhedsbrev</H3> <table cellpadding="0" cellspacing="0" border="0"> <div> <form NAME="forside" ACTION="show.php" METHOD="POST" OnSubmit="return valider();"> <script> function valider() { document.forside.indhold.value=wysiwyg.innerHTML; if (document.forside.indhold.value=="") { wysiwyg.focus(); alert("Du skal indtaste noget indhold!"); return (false); } return(true); } function newWin(str1, str2, str3){ win = window.open(str1, str2, str3) if(win.opener == null){ win.opener = self; } } </script> <table WIDTH="100%" CELLSPACING="0" CELLPADDING="0" BORDER="0" ALIGN="CENTER"><tr> <td> </td> <td ALIGN="LEFT"> <table style="BORDER-RIGHT: black 1px solid; BORDER-TOP: black 1px solid; BACKGROUND: D6D3CE; MARGIN-BOTTOM: 3pt; OVERFLOW: hidden; BORDER-LEFT: black 1px solid; BORDER-BOTTOM: black 1px solid; HEIGHT: 28px" cellSpacing="2" cellPadding="0" bgColor="#D6D3CE" border="0"><tr> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('copy');" unselectable="On"><img alt="Kopier" src="images/copy.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('cut');" unselectable="On"><img alt="Klip" src="images/cut.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('paste');" unselectable="On"><img alt="Indsæt" src="images/paste.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifyleft', false, null);" unselectable="On"><img alt="Venstre stil" src="images/left.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifycenter', false, null);" unselectable="On"><img alt="Centere" src="images/center.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('justifyright', false, null);" unselectable="On"><img alt="Højre stil" src="images/right.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand("Bold");" unselectable="On"><img alt="Fed" src="images/bold.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand("Italic");" unselectable="On"><img alt="Kursiv" src="images/italic.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand("Underline");" unselectable="On"><img alt="Understreg" src="images/underline.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand("InsertUnorderedList");" unselectable="On"><img alt="Liste" src="images/purebullet.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="document.execCommand('createlink','true','true');" unselectable="On"><img alt="Link" src="images/link.gif" WIDTH="21" HEIGHT="20"></button></td> <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="java script:newWin('tilmeldte.php?info=vis','','width=500, height=600,scrollBars=1,resizable=0')"><img alt="Vis brugere" src="images/view.gif" WIDTH="21" HEIGHT="20" border="0"></button></td> <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onclick="java script:newWin('upload.php','','width=700, height=500,scrollBars=1')"><img alt="Upload Billeder" src="images/upload.gif" WIDTH="21" HEIGHT="20" border="0"></button></td> <td vAlign="center"><td vAlign="center"><button style="BORDER-TOP-WIDTH: 0px; BORDER-LEFT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-RIGHT-WIDTH: 0px" onClick="document.execCommand('InsertImage', true, 'images/upload/');" unselectable="On"><img alt="Link" src="images/link.gif" WIDTH="21" HEIGHT="20"></button></td> </td> </tr></table> <p><div id="wysiwyg" contentEditable="true" class="adminWYSIWYG" align="left"> <P><?print ("$row[indhold]");?> </div></p> <input TYPE="HIDDEN" NAME="indhold" VALUE> <select name="selFont" onChange="doFont(this.options[this.selectedIndex].value)"> <option value="">-- Skrift type --</option> <option value="Arial">Arial</option> <option value="Courier">Courier</option> <option value="Sans Serif">Sans Serif</option> <option value="Tahoma">Tahoma</option> <option value="Verdana">Verdana</option> <option value="Wingdings">Wingdings</option> </select> <select name="selSize" onChange="doSize(this.options[this.selectedIndex].value)"> <option value="">-- Skrift størrelse --</option> <option value="1">Meget lille</option> <option value="2">Lille</option> <option value="3">Mellem</option> <option value="4">Stor</option> <option value="5">Større</option> <option value="6">Meget Stor</option> </select> <br><br><FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="2">Send kun til mig:<input type="checkbox" name="test_send" value="1" checked="1"> <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1"><br><b>Fjern denne for at sende til alle på listen.</b></FONT><br><br> <b>Send til:</b> Private:<input type="checkbox" name="send_til" value="privat"> Firmaer:<input type="checkbox" name="send_til" value="virksomhed"> Maleri:<input type="checkbox" name="send_til" value="maleri"> Grafik:<input type="checkbox" name="send_til" value="grafik"> Skulptur:<input type="checkbox" name="send_til" value="skulptur"> Museum:<input type="checkbox" name="send_til" value="museum"> Kunstforening:<input type="checkbox" name="send_til" value="kunstforening"> <FONT FACE="Verdana, Arial, Helvetica, sans-serif" SIZE="1"><br><b>Hvis ingen vælges sendes til alle på listen med mindre at <i> Send kun til mig </i> er valgt</b></FONT><br><br> </FONT> <p><input type="submit" value="Send Nyhedsbrev"></p> </form> </div> </table></td> <? } ?>
03. april 2007 - 15:50
#26
Det ser ikke rigtigt ud her. Har du ikke et link jeg kan se live data på?
03. april 2007 - 20:00
#27
jeg har lavet en nu,
http://www.blop.dk/test/nyhed/nyhed.php har gjort sådan at den ikke sender nyhedsbreve ud pga. misbrug osv.
Men i stedet printer den teksten ud i en tom side.
Men jeg ikke lavet noget regexp, så kan du se hvad den gør.
Håber stadig at du vil hjælpe, nåede desværre ikke at oprette det før nu, pga arbejde.
03. april 2007 - 20:31
#28
Det kan jeg da godt se ja! Det bliver da helt galt.
10. april 2007 - 11:28
#29
er der ikke nogen som kan hjælpe, måske med en anden udvej mht. editoren, men skal være enkelt altså ikke noget med 10 php filer for en editor. ?
20. april 2007 - 01:19
#30
lukker fandt en anden løsning.
Vi tilbyder markedets bedste kurser inden for webudvikling