/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Links i php
Fra : Sofie


Dato : 25-06-03 20:38

Når jeg lave en else-if funktion i php kan jeg ikke få mine links
til at virke.


<?php

$hjemmeside = $_REQUEST["hjemmeside"];

if($hjemmeside == "http://") {
echo "";
} else {
echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
<br>";
}

?>


Hvad har jeg gjort forkert og hvorfor virker det ikke?

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

 
 
Jacob Atzen (25-06-2003)
Kommentar
Fra : Jacob Atzen


Dato : 25-06-03 20:54

Sofie <sovfi@yahoo.dk> writes:

> Når jeg lave en else-if funktion i php kan jeg ikke få mine links
> til at virke.

Det har ikke noget med din if-then-else konstruktion at gøre.

> $hjemmeside = $_REQUEST["hjemmeside"];
>
> if($hjemmeside == "http://") {
> echo "";
> } else {
> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
> <br>";
> }

Hvad prøver du at gøre her? Din sammenligning i linie 3 giver kun
true, hvis hele $hjemmeside indeholder præcis "http://" - det er vel
ikke det du ønsker?

Parameteren til echo er en streng. Her skal du bruge:

echo "Hjemmeside: <a href=\"$hjemmeside\">$hjemmeside</a><br/>";

--
Med venlig hilsen
- Jacob Atzen

Peter Brodersen (26-06-2003)
Kommentar
Fra : Peter Brodersen


Dato : 26-06-03 01:19

On 25 Jun 2003 21:54:29 +0200, Jacob Atzen <jacob@aub.dk> wrote:

>> if($hjemmeside == "http://") {
>> echo "";
>> } else {
>> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
>> <br>";
>> }
>
>Hvad prøver du at gøre her? Din sammenligning i linie 3 giver kun
>true, hvis hele $hjemmeside indeholder præcis "http://" - det er vel
>ikke det du ønsker?

Det giver vel god mening i forhold til at have fx et inputfelt med
http:// forudfyldt. Hvis man blot lader det stå uberørt, skal der ikke
efterfølgende vises et link.

(jeg går ud fra at echo blot er for eksemplets skyld)

--
- Peter Brodersen

Jacob Atzen (26-06-2003)
Kommentar
Fra : Jacob Atzen


Dato : 26-06-03 17:54

Peter Brodersen <usenet@ter.dk> writes:

> On 25 Jun 2003 21:54:29 +0200, Jacob Atzen <jacob@aub.dk> wrote:
>
> >> if($hjemmeside == "http://") {
> >> echo "";
> >> } else {
> >> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
> >> <br>";
> >> }
> >
> >Hvad prøver du at gøre her? Din sammenligning i linie 3 giver kun
> >true, hvis hele $hjemmeside indeholder præcis "http://" - det er vel
> >ikke det du ønsker?
>
> Det giver vel god mening i forhold til at have fx et inputfelt med
> http:// forudfyldt. Hvis man blot lader det stå uberørt, skal der ikke
> efterfølgende vises et link.
>
> (jeg går ud fra at echo blot er for eksemplets skyld)

I så fald ville:
> >> if($hjemmeside == "http://") {
> >> echo "";
> >> } else {
> >> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
> >> <br>";
> >> }

--
Med venlig hilsen
- Jacob Atzen

Jacob Atzen (26-06-2003)
Kommentar
Fra : Jacob Atzen


Dato : 26-06-03 18:05

Jacob Atzen <jacob@aub.dk> writes:

> Peter Brodersen <usenet@ter.dk> writes:
>
> > On 25 Jun 2003 21:54:29 +0200, Jacob Atzen <jacob@aub.dk> wrote:
> >
> > >> if($hjemmeside == "http://") {
> > >> echo "";
> > >> } else {
> > >> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
> > >> <br>";
> > >> }
> > >
> > >Hvad prøver du at gøre her? Din sammenligning i linie 3 giver kun
> > >true, hvis hele $hjemmeside indeholder præcis "http://" - det er vel
> > >ikke det du ønsker?
> >
> > Det giver vel god mening i forhold til at have fx et inputfelt med
> > http:// forudfyldt. Hvis man blot lader det stå uberørt, skal der ikke
> > efterfølgende vises et link.
> >
> > (jeg går ud fra at echo blot er for eksemplets skyld)

Det var vist ikke lige det jeg ville sige. Jeg prøver igen:

I så fald ville:

if($hjemmeside != "http://") {
echo "Hjemmeside: <a href=\"$hjemmeside\">$hjemmeside</a><br>";
}

Være betydelig mere gennemskueligt.

--
Med venlig hilsen
- Jacob Atzen

Sofie (29-06-2003)
Kommentar
Fra : Sofie


Dato : 29-06-03 00:48

> Det var vist ikke lige det jeg ville sige. Jeg prøver igen:
>
> I så fald ville:
>
> if($hjemmeside != "http://") {
> echo "Hjemmeside: <a href=\"$hjemmeside\">$hjemmeside</a><br>";
> }
>
> Være betydelig mere gennemskueligt.
>
> --
> Med venlig hilsen
> - Jacob Atzen


Jah okay.. jeg er ikke så god til php...
Men uanset mo jeg skriver:

if($hjemmeside == "http://") {
echo "";
else {
echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a><br>";
}

eller:

if($hjemmeside != "http://") {
echo "Hjemmeside: <a href=\"$hjemmeside\">$hjemmeside</a><br>";
}

eller:

if($hjemmeside == "http://") {
echo "";
else {
echo 'Hjemmeside: <a href="'.$hjemmeside.'">'.$hjemmeside.'</a><br>';
}

Så kan jeg ikke få det til at virke så der kommer et link til hjemmesiden..
hvad gør jeg forkert?


--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Brunholm (29-06-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 29-06-03 07:59

Sofie wrote:

> if($hjemmeside == "http://") {
> echo "";
> else {
> echo 'Hjemmeside: <a href="'.$hjemmeside.'">'.$hjemmeside.'</a><br>';
> }
>
> Så kan jeg ikke få det til at virke så der kommer et link til hjemmesiden..
> hvad gør jeg forkert?

Det er et godt spørgsmål - jeg kan ikke se nogen problemer i de to
nederste (mit første svar forklarer hvad der er galt i den øverste).

Du har stadig

$hjemmeside = $_REQUEST["hjemmeside"];

med ovenfor, ikke?

Du kan eventuelt se om ikke du får det ud hvis du - bare som test nu her
- sætter

$hjemmeside = "www.testside.dk";

ind lige ovenover.


Har du andet php på siden som virker? (dvs: kan det være der det går
galt, med problemer som):

Har du kaldt filen for .php (eller hvad din udbyder nu synes at filer
skal hedde for at den afvikler php)?

har du "åbnet" php mode med fx <?php og lukket med ?> før og efter koden

mvh

Jesper Brunholm


Sofie (01-07-2003)
Kommentar
Fra : Sofie


Dato : 01-07-03 20:57

> Jesper Brunholm wrote in dk.edb.internet.webdesign.serverside.php:
> Det er et godt spørgsmål - jeg kan ikke se nogen problemer i de to
> nederste (mit første svar forklarer hvad der er galt i den øverste).


Mange tak for hjælpen!! Det virker nu!

Mvh. Sofie

--
Vil du lære at kode HTML, XHTML, CSS, SSI eller ASP?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials

Jesper Brunholm (25-06-2003)
Kommentar
Fra : Jesper Brunholm


Dato : 25-06-03 21:14

Sofie wrote:
> Når jeg lave en else-if funktion i php kan jeg ikke få mine links
> til at virke.

> <?php
>
> $hjemmeside = $_REQUEST["hjemmeside"];
>
> if($hjemmeside == "http://") {

/* Bemærk at den kun 'fanger' hvis det er _identisk med de 7 tegn http:// */

> echo "";
> } else {
> echo "Hjemmeside: <a href="$hjemmeside">$hjemmeside"</a>
> <br>";
> }

Du har fået en løsning på det egentlige problem af Jacob Atzen, men da
jeg var gået igang med at skrive den her mail inden jeg tog opvasken
, vil jeg lige gøre mit forslag til løsning af problemet færdigt:

En streng som defineres med " i enderne må kun indeholde " hvis de
escapes sådan som Jacob A viste dig.
Alternativt kan du bruge ' til at definere strengen, så får du godt nok
ikke afviklet variabler i den del af strengen, men så kan du bare sætte
den sammen. Styrken er at det bliver en smule mere tydeligt hvad og hvor
der er variabler, især i nogle editors som ikke er helt hårde til det
med at syntaksfarve variabler i strenge.

Det vil så blive til:
echo 'Hjemmeside: <a href="'.$hjemmeside.'">'.$hjemmeside.'</a>
<br>';

Bemærk at jeg afslutter den første streng efter a href, og sætter den
sammen med variablen med et punktum. Efter variablen sættes der endnu en
stump på osv.

'fysiske' linieskift i denne type streng bliver synlige i koden der
printes ud, i modsætning til strenge der er defineret med ", hvor du til
gengæld kan sætte et linieskift ind med \n.

Jeg håber det kan bruges

mvh

Jesper Brunholm


Søg
Reklame
Statistik
Spørgsmål : 177559
Tips : 31968
Nyheder : 719565
Indlæg : 6408935
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste