23. juli 2003 - 16:44
Der er
14 kommentarer og 1 løsning
problem med #-tegnet
Jeg sender en streng fra min Flash text editor til et PHP script der skal indsætte teksten i en database. Strengen kan f.eks. se sådan her ud: <P ALIGN="LEFT"><FONT FACE="_sans" SIZE="11" COLOR="#000000">Hej</FONT></P> , men det eneste der bliver indsat er: <P ALIGN="LEFT"><FONT FACE="_sans" SIZE="11" COLOR=" PHP stopper altså ved # tegnet. Hvorfor det? Jeg har uden held prøvet at lave # tegnet om til unicode: $indhold = ereg_replace("#", "\u23", $indhold);
Annonceindlæg tema
Cloud & AI
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
har du lavet nogle \ foran alle de gåseøjne ?
lad os se den fulde source code hvor problemet er.
Jeg laver en: $indhold = ereg_replace("\"", "\\\"", $indhold); først i scriptet. Er det godt nok?
tjaa .. jeg ville ikke gøre det sådan .. Jeg ville fra din text editor indsætte det sådan her $tekst = <<P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"11\" COLOR=\"#000000\">Hej</FONT></P>
Fuld source code (ikke at den er så lang): <?php include_once("config.php"); // tilslut til databasen: connectToDB(); $indhold = ereg_replace("\"", "\\\"", $indhold); $indhold = ereg_replace("#", "\u23", $indhold); // opbyg forspørgelsen $query = "INSERT INTO tekst (id, indhold) VALUES(NULL, '$indhold')"; // udfør forspørgelsen $result = @mysql_query($query); // hvis forspørgelsen blev udført ordenligt if ($query){ // fortæl brugeren at det var ok print "<b>Nyheden blev oprettet</b>"; }else{ // ellers fortæl brugeren at det ikke var ok print "<b>Der opstod en fejl</b>"; } // luk forbindelsen til databasen closeConnection(); ?>
hov .. en < for meget foran
er det altid samme skrifttype og størrelse osv du indsætter ?
hvis ja ville jeg nok bare gøre sådan her $indhold = "<P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"11\" COLOR=\"#000000\">" . $indhold . "</FONT></P>";
ellers kunne du jo bruge tekst værdier som farver i stedet for .. dvs black istedet for #000000
23. juli 2003 - 17:04
#10
Nu er alle "-tegn escaped. Så nu modtager scripet f.eks. en streng der hedder: $indhold = "<TEXTFORMAT LEADING=\"2\"><P ALIGN=\"LEFT\"><FONT FACE=\"_sans\" SIZE=\"11\" COLOR=\"#000000\"><B>tekst</B></FONT></P></TEXTFORMAT>"; men det stopper stadig ved #-tegnet.... og nej det er ikke altid den samme skrifttype og størrelse.
23. juli 2003 - 17:08
#11
i url'en ser det sådan her ud: indhold=<TEXTFORMAT%20LEADING=\"2\"><P%20ALIGN=\"CENTER\"><FONT%20FACE=\"_sans\"%20SIZE=\"11\"%20COLOR=\"#00FFFF\"><B>tekst</B></FONT></P></TEXTFORMAT> ,men hvis jeg echo'er det ud ser det sådan her ud: <FONT FACE=\\\"_sans\\\" SIZE=\\\"11\\\" COLOR=\\\" ??
23. juli 2003 - 17:10
#12
Det fordi # har en anden betydning når det er i url'en
23. juli 2003 - 17:26
#13
ahh ja, det er selvfølgelig til hash'en. Så hvis jeg laver #-tegnet om til noget andet i Flash og så laver det tilbage igen i PHP, så virker det. Ligger du et svar schaefner?
23. juli 2003 - 17:29
#14
svar' mvh. Jesper Sørensen
23. juli 2003 - 17:30
#15
Takker!
Vi tilbyder markedets bedste kurser inden for webudvikling