Avatar billede Slettet bruger
30. marts 2005 - 21:30 Der er 7 kommentarer og
1 løsning

Javascript på PHP-side ændrer i design

Jeg har følgende java-script, som jeg bruger til at kamuflere e-mail adresser med:

<script language="JavaScript" type="text/javascript"><!--
  var navn = "test";
  var domain = "test.dk";
  document.write('<a class="link" href="mailto:' + navn + '@' + domain + '">' + navn + '@' + domain + '</'+'a>');
// --></script>

Min side er opbygget i php, og her er javakoden placeret på følgende måde:

$indhold =("
<script language=\"JavaScript\" type=\"text/javascript\"><!--
  var navn = \"test\";
  var domain = \"test.dk\";
  document.write('<a class=\"link\" href=\"mailto:' + navn + '@' + domain + '\">' + navn + '@' + domain + '</'+'a>');
// --></script>
");
echo $indhold;

Når hele siden (lavet i css), ligger i en index.htm, så er siden som den skal være.

Når den samme kode er placeret i index.php (dog er " erstattet med \"), så kan jeg få siden til at ændre sig, ved at sidde og trykke på opdater.

Ved at bruge udelukkelsesmetoden, har jeg fundet frem til, at hvis jeg fjerner ovenstående java-script fra min php-kode, så virker siden som den skal.

Hvad har jeg gjort forkert, og/eller, er der andre smartere måde at kamuflere email-adresser på?
Avatar billede jaw Nybegynder
30. marts 2005 - 23:48 #1
Hvad er forskellen på dit javascript og på:

$navn = "test";
$domain = "test.dk";

echo"<a href='mailto:".$navn."@".$domain.">".$navn."@".$domain."</a>";

?
Avatar billede jaw Nybegynder
30. marts 2005 - 23:52 #2
Dumt spørgsmål - jeg er træt, beklager :)
Avatar billede knudx Nybegynder
31. marts 2005 - 00:31 #3
1. view->source or find ud af hvad der er galt...
2. Til lange strenge (fx dit javascript) i php kan man bruge følgende skrivemåde i stedet for "":

$indhold = <<<SLUTting
<script language="JavaScript" type="text/javascript"><!--
  var navn = "test";
  var domain = "test.dk";
  document.write('<a class="link" href="mailto:' + navn + '@' + domain + '">' + navn + '@' + domain + '</'+'a>');
// --></script>
SLUTting;

det heder 'heredoc' notation, der står noget om det et sted i php dokumentationen. det er smart fordi du slipper for at skrive \", men du kan stadig skrive $vaiable ud inde i strengen à la:
var test = "$test";
Avatar billede Slettet bruger
31. marts 2005 - 09:16 #4
Der er ikke noget at se i sourcen. Den er fuldstændig identisk ned til mindste gnyf.

Jeg prøvet at kigge på 'heredoc' i aften når jeg kommer hjem, for at se om det løser mit problem.
Avatar billede Slettet bruger
31. marts 2005 - 19:54 #5
Det er simpelthen til at få spat af.

Jeg fandt ud af at heredoc ikke kan bruges i mit eksempel, jeg havde ikke lige tænkt mig om.

Jeg har en funktion, der indeholder det meste af mit sideindhold (mainpage), når jeg så går ind på en underside gør jeg følgende:
<?php
$title = "Test";
include 'mainpage.php';
$indhold = file_get_contents($_SERVER["DOCUMENT_ROOT"]."/html/velkommen.htm");

mainpage($title, $indhold);
?>

Mainpage.php indeholder kun en variabel der echoes til skærmen.
Min velkommen.htm indeholder noget ganske alm. html + tekst, samt ovenstående javascript.

Fjerner jeg javascriptet helt fra htm-filen, så fungerer siden som den skal.
Lader jeg følgende stå:
<script type="text/javascript">
</script>

Så ser min side rigtig ud det meste af tiden, men trykker jeg på opdater, ændrer den en gang i mellem på sidelængeden.

Jeg har checket "view source" både når siden ser forkert og rigtig ud, og de er 100% identiske.
Avatar billede Slettet bruger
31. marts 2005 - 20:14 #6
Har fundet frem til siden også lave fejlen i html'en, dog bare ikke så ofte.

Siden kan ses her: http://test.tkdc.dk
Tryk tilpas mange gange på opdater, og du kan se at siden ændrer længde.

Den blå lodrette streg, er en spacer jeg bruger, når indholdet ikke er lang nok.
Jeg opdagede først fejlen på undersiden "Kontakt", her er den endnu værre.

Anyone med en ide til hvad problemet kan være?

Som sagt så forsvinder problemet når javascript'et pilles væk.
Avatar billede Slettet bruger
31. marts 2005 - 21:58 #7
Har helt droppet javascript'et og brugt en encoding løsning i stedet.

knudx...> Synes du skal have halvdelen af pointene for forsøget med at hjælpe. Læg venligst et svar og der er point på vej.
Avatar billede Slettet bruger
02. april 2005 - 23:46 #8
Lukker...
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