Avatar billede visto Guru
13. maj 2011 - 14:22 Der er 14 kommentarer og
1 løsning

Autoindsættelse af URL i link

Jeg ved ikke hvilket scriptsprog, der skal bruges, så det er muligt at spørgsmålet hører hjemme i anden kategori. Men da min server supporter PHP, vil det være fint, hvis det kan bruges.

I et link, som ligger i en menu (der er én fil, der includes på alle sider), har jeg brug for at URL'en tilhørende den side man aktuelt er inde på, hentes ind et bestemt sted i linket.

Placeringen af det på denne måde indhentede link fremgår her:
<a href="http://blabla.com/bla?u=
HER SKAL LINKET INDSÆTTES AUTOMATISK
&langpair=da%7Cit" rel="nofollow">.....</a>

Hvordan gøres det?
Avatar billede Authiel Nybegynder
13. maj 2011 - 14:33 #1
tror den her vil være rigtig god for dig:

http://www.phpf1.com/tutorial/get-current-page-url.html
Avatar billede visto Guru
13. maj 2011 - 15:28 #2
Tak for svar.
Jeg kan ikke skrive PHP, højst rette og indsætte diverse, hvis jeg er heldig. Så kan du ikke fortælle mig, hvad den præcise kode skal være på det sted, hvor jeg ovenfor har skrevet HER SKAL LINKET INDSÆTTES AUTOMATISK?
Jeg har prøvet mig lidt frem og tilbage på baggrund af den side du referer til, men da der kun skal et enkelt tegn til at det hele ikke virker, er det ikke lykkedes mig at få det til at virke.
Avatar billede wanze Nybegynder
13. maj 2011 - 17:35 #3
Jeg går ud fra, at du godt ved, hvad din side hedder, hvorfor det vil være spild at skulle udregne hver gang:
<?php
$url = urlencode($_SERVER['PHP_SELF]."?".$_SERVER['QUERY_STRING']);
?>
<a href="http://blabla.com/bla?u=<?php echo $url?>&langpair=da%7Cit" rel="nofollow">.....</a>
Avatar billede visto Guru
13. maj 2011 - 18:35 #4
>wanze: Jeg forstår ikke, hvad du mener med at du går ud fra at jeg godt ved hvad min side hedder. Og den kode du angiver viser fejl i min teksteditor.
I et forsøg på at fokusere og skrive kortfattet har det, som jeg har udeladt i mit oprindelige spørgsmål, muligvis forvirret mere end det har gavnet. Så derfor prøver jeg en gang til:

Hvis koden ser sådan ud:
<a href="http://translate.google.com/translate?u=http%3A%2F%2Fminside.dk%2Fsiden_der_skal_oversættes.htm&amp;langpair=da%7Cit" rel="nofollow">
<img .... /></a>
så sker der det at http%3A%2F%2Fminside.dk%2Fsiden_der_skal_oversættes.htm bliver oversat som den skal af google translate.

Men jeg har brug for, at ikke en bestemt side, men derimod den side, som man til enhver tid er på, kan blive oversat. Derfor skal der, der hvor den faste URL http%3A%2F%2Fminside.dk%2Fsiden_der_skal_oversættes.htm er i koden ovenfor, auto-indsættes den URL, der står i browserens adresselinje. Og det er det jeg har brug for sker via PHP.

På baggrund af det du skrev prøvede jeg med følgende:
<?php$url = urlencode($_SERVER['PHP_SELF]."?".$_SERVER['QUERY_STRING']);?>
<a href="http://translate.google.com/translateu=<?php echo $url?>&langpair=da%7Cit" rel="nofollow"><img ... /></a>

der ikke virker, men giver en 404-error.
Avatar billede repox Seniormester
14. maj 2011 - 22:06 #5
At koden giver fejl i din teksteditor betyder jo ikke at koden ikke virker?

Anyhuu, wanzes forslag bør virke efter hensigten. Du må gøre noget forkert - har du et link til siden?
Avatar billede visto Guru
14. maj 2011 - 23:23 #6
http://vinsiderne.dk/test_translate/startside_translate.htm

Et klik på flaget nederst til venstre skal udløse oversættelsen af siden, men som det ses får man en 404.

Det virker derimod på denne side med førstnævnte kode med fast URL:

http://vinsiderne.dk/test_translate/startside_translate1.htm
Avatar billede repox Seniormester
15. maj 2011 - 12:22 #7
Det er fordi du forsørger at eksekvere PHP i en HTML fil - det kan du (som udgangspunkt) ikke!

Prøve at omdøbe filendelse til .php istedet for .htm
Avatar billede visto Guru
15. maj 2011 - 13:49 #8
Så får jeg, når jeg loader siden:
Parse error: syntax error, unexpected T_STRING, expecting ']' in /home/virtual/vinsiderne.dk/public_html/test_translate/startside_translate.php on line 125

Så teksteditoren har nok ret i at der er kodefejl et sted.
Avatar billede repox Seniormester
15. maj 2011 - 13:56 #9
Prøv at vise os hvad der er på linie 125?
Avatar billede visto Guru
15. maj 2011 - 14:07 #10
<?php $url = urlencode($_SERVER['PHP_SELF]."?".$_SERVER['QUERY_STRING']);?>
Avatar billede visto Guru
16. maj 2011 - 22:22 #11
Jeg har nu selv fundet svar på http://translate.google.com/translate_tools

Tak for forsøg på hjælp.
Avatar billede wanze Nybegynder
16. maj 2011 - 22:28 #12
Hvis du havde kigget den linje kode igennem du fik kan du se, at det ganske simpelt er fordi der mangles et ' efter PHP_SELF.

Men godt du fik løst problemet.
Avatar billede visto Guru
17. maj 2011 - 10:57 #13
Ja, koden blev korrekt med '
Og jeg testede lige om det virker. Det gør det stadig ikke, giver stadig fejl 404.

Men som sagt nu har jeg fundet en løsning, og det er jo det vigtigste.
Avatar billede Authiel Nybegynder
18. maj 2011 - 09:45 #14
Kan vi evt. se den løsning?
Avatar billede visto Guru
18. maj 2011 - 10:43 #15
Som sagt fandt jeg en løsning der virker på http://translate.google.com/translate_tools, nederst på siden hvor der er links. Men ikke php, derimod javascript, som det fremgår.

<a href="java script:var t=((window.getSelection&&window.getSelection())||(document.getSelection&&document.getSelection())||(document.selection&&document.selection.createRange&&document.selection.createRange().text));var e=(document.charset||document.characterSet);if(t!=''){location.href='http://translate.google.com/?text='+t+'&hl=da&langpair=da|it&tbb=1&ie='+e;}else{location.href='http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=da&langpair=da|it&tbb=1&ie='+e;};" onclick="alert(document.getElementById('instructions').firstChild.nodeValue);return false;">
<img... />
</a>

Koden validerer dog ikke sammen med XHTML 1, så jeg bruger i stedet i <head>:
<script type="text/javascript">
/*<![CDATA[*/
function Translate(par) {
    var t = ((window.getSelection && window.getSelection()) ||
                (document.getSelection && document.getSelection()) ||
                (document.selection && document.selection.createRange && document.selection.createRange().text));
    var e = (document.charset || document.characterSet);
    if (t != '') {
        location.href = 'http://translate.google.com/?text='+t+'&hl=da&langpair='+par+'&tbb=1&ie='+e;
        }
    else{
        location.href = 'http://translate.google.com/translate?u='+encodeURIComponent(location.href)+'&hl=da&langpair='+par+'&tbb=1&ie='+e;
        }
    return false;
    }
/*]]>*/
</script>

i <body>:
<a href="#" onclick="Translate('da|it')">
<img... /></a>
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