/ 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
medsende argument til php
Fra : Pooh


Dato : 30-05-02 09:36

jeg prøver at sende argumentet $url_id til slet_favorit.php med :
slet_favorit.php?url_id=$url_id og jeg kan se at $url_id har en værdi i
adr-linien, men jeg får fejlmeddelelsen:
Undefined variable: url_id

kan $url_id inde i slet_favorit.php ikke bare bruges ved f.eks:
<?php
echo "med fra formen er sendt variablen: $url_id";
?>




 
 
Johan Holst Nielsen (30-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-05-02 09:43

> kan $url_id inde i slet_favorit.php ikke bare bruges ved f.eks:
> <?php
> echo "med fra formen er sendt variablen: $url_id";
> ?>

Måske... andet på hvilken version af PHP du bruger... prøv

echo "med fra formen er sendt variablen: ".$_GET["url_id"];

mvh
Johan


Pooh (30-05-2002)
Kommentar
Fra : Pooh


Dato : 30-05-02 09:51

jep så virker det....alletiders!
er der et sted man kan læse om syntaksen, for jeg forstår ikke helt
hvorfor der skal være "." før $_GET[] ved echo""....., men ikke noget
punktum ved direkte brug f.eks $url_id = $_GET[];

venlig hilsen
Peter

"Johan Holst Nielsen" <johan@weknowthewayout.com> wrote in message
news:3CF5E624.BE90ECFC@weknowthewayout.com...
> > kan $url_id inde i slet_favorit.php ikke bare bruges ved f.eks:
> > <?php
> > echo "med fra formen er sendt variablen: $url_id";
> > ?>
>
> Måske... andet på hvilken version af PHP du bruger... prøv
>
> echo "med fra formen er sendt variablen: ".$_GET["url_id"];
>
> mvh
> Johan
>



Thomas Lindgaard (30-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 30-05-02 10:50

"Pooh" <peter_pooh@sol.dk> wrote in
news:lLlJ8.12669$N46.521185@news010.worldonline.dk:

> er der et sted man kan læse om syntaksen, for jeg forstår ikke helt
> hvorfor der skal være "." før $_GET[] ved echo""....., men ikke noget
> punktum ved direkte brug f.eks $url_id = $_GET[];

Punktummet betyder konkatenation af strenge. Følgende statements er
ækvivalente:
   
   $dyr = "hund";
   echo "Der var engang en $dyr";
   echo "Der var engang en ".$dyr;

I første opdager PHP at værdien af variablen $dyr skal indsættes i strengen
- i den anden fortæller man eksplicit PHP at den skal udskrive "Der var
engang en " efterfulgt af variablen $dyr.

Jeg bruger altid den anden da UltraEdit kun farver variable, hvis de står
uden for tekststrenge, men betydningen er den samme.

PHP.net er din ven:
   http://www.php.net/manual/fi/language.operators.php
   http://www.php.net/manual/fi/language.operators.string.php

--
Thomas Lindgaard
thomas@it-snedkeren.BLACK_HOLE.dk

Fjern det sorte hul hvis du vil sende mig noget

Johan Holst Nielsen (30-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-05-02 11:14

> Punktummet betyder konkatenation af strenge. Følgende statements er
> ækvivalente:
>
> $dyr = "hund";
> echo "Der var engang en $dyr";
> echo "Der var engang en ".$dyr;
>
> I første opdager PHP at værdien af variablen $dyr skal indsættes i strengen
> - i den anden fortæller man eksplicit PHP at den skal udskrive "Der var
> engang en " efterfulgt af variablen $dyr.
>
> Jeg bruger altid den anden da UltraEdit kun farver variable, hvis de står
> uden for tekststrenge, men betydningen er den samme.

Ja, MEN

hvis du skriver
$dyr = 'hund';
echo 'Der var engang en $dyr';
//Udskrives Der ver engang en $dyr

Derfor vil jeg mene det er god skik at bruge punktum!
Men problemet optræder KUN hvis man bruger ' og ikke når man bruger "

mvh
Johan


Jonas Koch Bentzen (30-05-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 30-05-02 11:27

Johan Holst Nielsen skrev:
>
> hvis du skriver
> $dyr = 'hund';
> echo 'Der var engang en $dyr';
> //Udskrives Der ver engang en $dyr
>
> Derfor vil jeg mene det er god skik at bruge punktum!

Helt uenig. Hvis ikke man skulle bruge variabler inde i strenge, hvad
var så meningen med, at der er dollartegn i variabelnavne? Så kunne man
lige så godt bruge den slags variabelnavne, man har i C, C++, Java,
Ruby mv., hvor variabler ikke kan skrives i strenge. Min pointe er, at
PHP, hvor variabelnavne begynder med et dollartegn, i høj grad lægger
op til, at man bruger variabler inde i strenge.

> Men problemet optræder KUN hvis man bruger ' og ikke når man bruger "

Nemlig - så hvad er problemet? Man kan som mig vælge udelukkende at
bruge gåseøjne - så bliver det ikke et problem. Selvfølgelig kan man
sige, det forøger fortolkningstiden, men det er så uendelig lidt, at
det ikke har nogen betydning.

--
Jonas Koch Bentzen

Johan Holst Nielsen (30-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-05-02 12:23

Jonas Koch Bentzen wrote:

> Johan Holst Nielsen skrev:
> >
> > hvis du skriver
> > $dyr = 'hund';
> > echo 'Der var engang en $dyr';
> > //Udskrives Der ver engang en $dyr
> >
> > Derfor vil jeg mene det er god skik at bruge punktum!
>
> Helt uenig. Hvis ikke man skulle bruge variabler inde i strenge, hvad
> var så meningen med, at der er dollartegn i variabelnavne? Så kunne man
> lige så godt bruge den slags variabelnavne, man har i C, C++, Java,
> Ruby mv., hvor variabler ikke kan skrives i strenge. Min pointe er, at
> PHP, hvor variabelnavne begynder med et dollartegn, i høj grad lægger
> op til, at man bruger variabler inde i strenge.

Ja du har ret, til et vist punkt... men mener at overblikket bliver MEGET
bedre ved at smid dem udenfor strengene.
Ja, det er ret smart for brugerne, enig.... men overskueligheden bliver for
mit vedkommende meget dårlig... f.eks. kunne følgende hurtig blive
misforstået af en forholdvis nu bruger:

Så forståelsen af koden synes jeg bliver bedre.
Men lad os kalde det for en smagssag... skik er måske et lidt "hårdt"
udtryk...

>

> > Men problemet optræder KUN hvis man bruger ' og ikke når man bruger "
>
> Nemlig - så hvad er problemet? Man kan som mig vælge udelukkende at
> bruge gåseøjne - så bliver det ikke et problem. Selvfølgelig kan man
> sige, det forøger fortolkningstiden, men det er så uendelig lidt, at
> det ikke har nogen betydning.

Ok... men f.eks. vil jeg mene det er en fordel f.eks. at skriver
$var = 'Dette er et \n som bruges til ny linie!';
$var = "Dette er et \n som bruges til ny linie!";

Her er en del forskel. Ja du kan vælge at backslashe \n eller smidt den
gennem f.eks. en sprintf() ... men netop der vil jeg mene at man skal bruge
dem "hver for sig"... det samme gælder jo iøvrigt i f.eks. ereg
funktionerne... hvor ereg("[TEST]", $var) giver et helt det andet resultat
end f.eks. ereg('[TEST]', $var); (i dette tilfælde ville str_replace være
bedre, men det er en anden sag).

Så der mener jeg at det vil øge overskueligheden.

mvh
Johan



Peter Brodersen (30-05-2002)
Kommentar
Fra : Peter Brodersen


Dato : 30-05-02 14:23

On Thu, 30 May 2002 13:23:02 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>Ja du har ret, til et vist punkt... men mener at overblikket bliver MEGET
>bedre ved at smid dem udenfor strengene.

| print "Du er $alder år gammel, dit skonummer er $skonummer, og du drikker $favoritdrink";

.... kontra ...

| print "Du er ".$alder." år gammel, dit skonummer er ".$skonummer.", og du drikker ".$favoritdrink;

....? Jeg mener at læsevenligheden stiger i førstnævnte tilfælde.
Alternativt kan man gå over i en printf-stil og angive alle variable
som argument hertil.

>det samme gælder jo iøvrigt i f.eks. ereg
>funktionerne... hvor ereg("[TEST]", $var) giver et helt det andet resultat
>end f.eks. ereg('[TEST]', $var); (i dette tilfælde ville str_replace være
>bedre, men det er en anden sag).

Nu roder du vist noget sammen.

For det første evalueres '[TEST]' og "[TEST]" til samme string, før
ereg() får den string serveret.

For det andet har ereg() ikke så meget at gøre med str_replace() (men
du tænker sikkert på ereg_replace()?).

--
- Peter Brodersen

Johan Holst Nielsen (30-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-05-02 14:56

> >Ja du har ret, til et vist punkt... men mener at overblikket bliver MEGET
> >bedre ved at smid dem udenfor strengene.
>
> | print "Du er $alder år gammel, dit skonummer er $skonummer, og du drikker $favoritdrink";
>
> ... kontra ...
>
> | print "Du er ".$alder." år gammel, dit skonummer er ".$skonummer.", og du drikker ".$favoritdrink;
>
> ...? Jeg mener at læsevenligheden stiger i førstnævnte tilfælde.
> Alternativt kan man gå over i en printf-stil og angive alle variable
> som argument hertil.

Ok, der ser vi så forskelligt på det! Mener nu det er omvendt.
printf muligheden forfindes jo også... men så går vi jo også over i C stilen, som jeg øjensynlig gerne
vil ;)

> >det samme gælder jo iøvrigt i f.eks. ereg
> >funktionerne... hvor ereg("[TEST]", $var) giver et helt det andet resultat
> >end f.eks. ereg('[TEST]', $var); (i dette tilfælde ville str_replace være
> >bedre, men det er en anden sag).
>
> Nu roder du vist noget sammen.
>
> For det første evalueres '[TEST]' og "[TEST]" til samme string, før
> ereg() får den string serveret.
>
> For det andet har ereg() ikke så meget at gøre med str_replace() (men
> du tænker sikkert på ereg_replace()?).

Ja, okay... det var vist meningen det skulle være ereg_replace.. mindre fejl fra min side af..

Men forstår ikke hvad du mener med at den evalueres til samme string? Du vil i mange tilfælde få 2
forskellige resultater... da '[TEST]' vil tjekke efter strengen [TEST] i en given streng, mens "[TEST]"
vil benytte reg. ex.?

mvh
Johan


Peter Brodersen (30-05-2002)
Kommentar
Fra : Peter Brodersen


Dato : 30-05-02 15:01

On Thu, 30 May 2002 15:55:58 +0200, Johan Holst Nielsen
<johan@weknowthewayout.com> wrote:

>Men forstår ikke hvad du mener med at den evalueres til samme string? Du vil i mange tilfælde få 2
>forskellige resultater... da '[TEST]' vil tjekke efter strengen [TEST] i en given streng, mens "[TEST]"
>vil benytte reg. ex.?

Følgende udtryk:

ereg('[TEST]',$str);

ereg("[TEST]",$str);

$reg = '[TEST]'; ereg($reg,$str);

$reg = "[TEST]"; ereg($reg,$str);

$reg = "[TE"; ereg($reg.'ST]',$str);

.... er alle varianter af det samme. Første argument til ereg vil i
alle tilfælde være: [TEST]

Når først dette gives videre til ereg, har ereg ikke nogen anelse om
hvordan, første argument oprindeligt er sammensat, og det er også
ligegyldigt.

(at [TEST] så er et fjollet udtryk i regulære udtryk, og det samme som
fx [TES] eller [EST], er så en anden sag)

--
- Peter Brodersen

Johan Holst Nielsen (30-05-2002)
Kommentar
Fra : Johan Holst Nielsen


Dato : 30-05-02 15:08

[SNIP EN MASSE]

> ... er alle varianter af det samme. Første argument til ereg vil i
> alle tilfælde være: [TEST]
>

Ok, du har ret... der var faktisk noget jeg lige havde fået galt i halsen :) Nå man bliver klogere hver
dag....

> Når først dette gives videre til ereg, har ereg ikke nogen anelse om
> hvordan, første argument oprindeligt er sammensat, og det er også
> ligegyldigt.

Næææh.... ved heller ikke hvor jeg havde det fra, synes bare jeg havde et problem med det engang... men
åbentbart ikke...

> (at [TEST] så er et fjollet udtryk i regulære udtryk, og det samme som
> fx [TES] eller [EST], er så en anden sag)

yes... selvfølgelig :)

mvh
Johan


Thomas Lindgaard (31-05-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 31-05-02 22:38

Davs

Jonas Koch Bentzen <ingen.email@eksempel.dk> wrote in news:ad4upi$9od$1
@sunsite.dk:

> Helt uenig. Hvis ikke man skulle bruge variabler inde i strenge, hvad
> var så meningen med, at der er dollartegn i variabelnavne? Så kunne man
> lige så godt bruge den slags variabelnavne, man har i C, C++, Java,
> Ruby mv., hvor variabler ikke kan skrives i strenge. Min pointe er, at
> PHP, hvor variabelnavne begynder med et dollartegn, i høj grad lægger
> op til, at man bruger variabler inde i strenge.

Eneste grund til at jeg ikke skriver variable inde i tekststrenge er
syntaksfarvningen.

Jeg er helt enig i, at PHP lægger op til at skrive sine variable direkte i
strengen, og at man nogle gange får noget mærkelig kode, hvis mange små
dele skal sættes sammen til en lang tekst.

.... men mit kodehovede virker nu engang bedst, når det får syntaksen
skovlet ind med en stor fed farvet skovl ("det er _HER_ din variabel er,
klovn!") :)

Mvh.
/Thomas

Jonas Koch Bentzen (01-06-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 01-06-02 00:02

Thomas Lindgaard skrev:
>
> Eneste grund til at jeg ikke skriver variable inde i tekststrenge er
> syntaksfarvningen.

Så har du en dårlig editor : )
Min editor (Quanta) kan sagtens finde ud af at give variabler en speciel
farve, selv om de befinder sig i strenge.

--
Jonas Koch Bentzen

Thomas Lindgaard (03-06-2002)
Kommentar
Fra : Thomas Lindgaard


Dato : 03-06-02 21:53

Jonas Koch Bentzen <ingen.email@eksempel.dk> wrote in news:ad8vci$94b$1
@sunsite.dk:

> Så har du en dårlig editor : )
> Min editor (Quanta) kan sagtens finde ud af at give variabler en speciel
> farve, selv om de befinder sig i strenge.

Jammen jeg har såmænd også en lummer tanke om at installere lidt Linux i
den nærmeste fremtid og prøve den der Quanta af - den ser nu meget sød ud
:)

Mvh.
/Thomas

Jonas Koch Bentzen (03-06-2002)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 03-06-02 22:18

Thomas Lindgaard skrev:

> Jonas Koch Bentzen <ingen.email@eksempel.dk> wrote in
> news:ad8vci$94b$1 @sunsite.dk:
>
>> Så har du en dårlig editor : )
>> Min editor (Quanta) kan sagtens finde ud af at give variabler en
>> speciel farve, selv om de befinder sig i strenge.
>
> Jammen jeg har såmænd også en lummer tanke om at installere lidt Linux
> i den nærmeste fremtid og prøve den der Quanta af - den ser nu meget
> sød ud

Den findes i øvrigt også i en Windows-udgave. Eller rettere: Der er to
Quanta'er: Der er den oprindelige, som hedder Quanta Plus, kører på
Unix'er, er open source og ligger på http://quanta.sourceforge.net/. Og
så er der den kommercielle, som hedder Quanta Gold, kører på Unix og
Windows, koster 40 dollars og ligger på
http://thekompany.com/products/quanta/.

Men selv om Quanta Gold altså findes til Windows, så vil jeg da stadig
anbefale dig at prøve Linux alligevel : ) SuSE Linux 8.0 kan anbefales.

--
Jonas Koch Bentzen

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

Månedens bedste
Årets bedste
Sidste års bedste