Avatar billede prop46 Nybegynder
13. februar 2003 - 16:15 Der er 59 kommentarer og
1 løsning

Newbie variabler

ARGH.... jeg er netop startet med at lære php og arb ud fra bogen "beginning php4". Jeg har stillet et enkelt spørgsmål om php her før og fik et tip om at

<?php
echo $Author;
?>              i nyere versioner skrives sådan

echo $_GET['Author'];
?>

Fint nok... men jeg besluttede mig nu for at følge bogen slavisk og så senere ta' stilling til bla ovenstående.

Men... nu har jeg opdateret til IE6 og nu virker øverste eks slet ikke.... Altså er min fremgang i bogen ufattelig langsom fordi jeg hele tiden skal finde ud af hvad der er blevet fonyet og hvordan problemet løses... og det er mildesttalt en langsommelig affære for en nybegynder. ØV ØV ØV.... Er php virkeligt browserafhængigt? ...og gir dette nogen mening :0,
Avatar billede barlach Nybegynder
13. februar 2003 - 16:19 #1
at øverste eksempel ikke virker er fordi register_globals er sat til off i din php.ini fil. Det har ikke noget med ie6 at gøre.

hvis du har opdateret php er den default sat til off.
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:20 #2
Så jeg åbner min php.ini fil og retter det?.... men ca. hvor finder jeg det jeg skal finde?
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:21 #3
nevermind ahr fundet det :0)
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:21 #4
Men.... hvad betyder det egt?
Avatar billede Slettet bruger
13. februar 2003 - 16:21 #5
En god idee ville være at initialisere dine variabler i starten af dine scripts!
Eksempelvis:
<?php
    $Author = $_GET["Author"];
    echo $Author;
?>
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:24 #6
også selv om jeg kommer fra en html fil har følgende?:

<FORM METHOD=GET ACTION="text.php">
Who is your favorite author?
<INPUT NAME="Author" TYPE="TEXT">
<BR>
<BR>
<INPUT TYPE=SUBMIT>
</FORM>
Avatar billede barlach Nybegynder
13. februar 2003 - 16:26 #7
det er et sikkerheds spørgsmål. register_globals=on er en usikker håndtering af variablerne og derfor anbefales det at man bruger $_GET[] osv.

til at lære php betyder det ikke noget og du kan roligt sætte den til on på din egen. Men nu er du opmærksom på det til når du skal igang med at lave "rigtige" php projekter
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:27 #8
Og med det mener du at så bør jeg bruge de "opdaterede" koder?
Avatar billede barlach Nybegynder
13. februar 2003 - 16:29 #9
ja, jeg vil anbefale (som php.net selv gør) at du sætter register_global=off og vænner dig til at bruge $_GET, $_POST osv
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:30 #10
hmm... så bliver jeg nød til at skaffe mig en anden bog. For nu er jeg igang med Arreys og dem godtager den jo heller ikke på den "gamle" måde :0(

Lægger du ikke lige et svar?
Avatar billede barlach Nybegynder
13. februar 2003 - 16:35 #11
jeg er ikke sikker på at du behøver anskaffe dig en ny bog.
Du kan godt sætte register_globals=on på din localhost. Så vil alle eksempler fra bogen (højst sandsynligt) virke fint.

Når du så har læst bogen og lavet eksemplerne kan du jo tage næste skridt og sætte register_globals=off
På det tidspkt vil du så nok også have et større indblik i hvad det betyder for din programmering og derfor let kunne lave eksemplerne så de virker
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:36 #12
Thanks :0)
Avatar billede prop46 Nybegynder
13. februar 2003 - 16:50 #13
Der var jeg sgu lige lidt hurtig... det virker faktsik ikke :0,
Avatar billede barlach Nybegynder
13. februar 2003 - 16:53 #14
har du genstartet serveren ?
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:02 #15
Ja... det virker bare ikke :0(
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:04 #16
Hmm... tror sgu den bog ryger ud med skraldet.... kender du et godt sed at lære php på nettet?
Avatar billede barlach Nybegynder
13. februar 2003 - 17:06 #17
vis koden på de scripts der ikke virker.

hvad endte du med at sætte register_globals til ?

hvilken php version og hvilken server bruger du ?
Avatar billede barlach Nybegynder
13. februar 2003 - 17:09 #18
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:13 #19
hmm... win2k har en server som jeg bruger.. faktisk tror jeg min phpversion er 4.3.00 (hvis jeg ser rigtigt)...

register_globals står til On
Avatar billede barlach Nybegynder
13. februar 2003 - 17:18 #20
prøv at genstarte hele maskinen.

det er et skud men har før hørt om at det var nødvendigt med IIS

ellers post koden her
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:18 #21
men sjovt nok virker den til den "nye" kode og ikke til den "gamle" nu
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:27 #22
<html>

<body>

<form method=get action="listbox.php">

What price of car are you looking to bye?
<br>
<br>
<select name="price">
    <option>Under $5.000</option>
    <option>$5.000-$10.000</option>
    <option>$10.000-$25.000</option>
    <option>Over $25.000</option>
</select>
<br>
<br>
What size of engine would you consider?
<br>
<br>
<select name="enginesize[]" multiple>
    <option>1.o L</option>
    <option>1.4 L</option>
    <option>1.6 L</option>
    <option>2.0 L</option>
</select>
<br>
<br>
<input type=submit>
</form>

</body>
</html>

<html>

<body>

<form method=get action="listbox.php">

<?php
echo "Price range: $price";
echo "<br>Engine size(s): $enginesize[0]";
echo "$enginesize[1]";
echo "$enginesize[2]";
echo "$enginesize[3]";
?>

</body>
</html>

Har prøvet at genstarte hele svineriet
Avatar billede barlach Nybegynder
13. februar 2003 - 17:31 #23
starter du den første fil ved at klikke på den i stifinder eller gennem browseren?
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:32 #24
ja.. jeg kan se en fejl selv.... <form method=get action="listbox.php">... er fjernet nu, men virker stadig ikke
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:32 #25
Skriver stien i browseren
Avatar billede barlach Nybegynder
13. februar 2003 - 17:33 #26
det du har skrevet virker fint hos mig..

hvad skriver den hos dig ?
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:34 #27
Price range:
Engine size(s):
Avatar billede barlach Nybegynder
13. februar 2003 - 17:38 #28
ok..så prøv at skifte

echo "Price range: $price";

ud med:

echo "Price range: $_GET['price']";
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:40 #29
kom dig lige i forkøb... det virker fint
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:41 #30
men... det løser ikke rigtigt problemet for somsagt er jeg nu igang med arreys og--> echo "$enginesize[1]"; virker jo heller ikke... og alt hvad der står i bogen er jo lavet efter den "gamle" model
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:42 #31
kan det havde noget med min version af php at gøre?
Avatar billede barlach Nybegynder
13. februar 2003 - 17:43 #32
ok =) men så tyder det på at register_globals er sat til off

har du lavet en info fil ?

<?php

phpinfo();
?>
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:46 #33
ja... og den virker fint..

Jeg har tjekket, dobbeltjekket og tripletjekket og register_globals er sat til on.... den hedder godt nok .ini-recommended ?
Avatar billede barlach Nybegynder
13. februar 2003 - 17:47 #34
ellers lav en, kør den og se under register_globals om der står on ?
Avatar billede barlach Nybegynder
13. februar 2003 - 17:48 #35
ahhh...du skal fjerne -recommended så den hedder php.ini, læg den i dit winnt directory og genstart maskinen
Avatar billede barlach Nybegynder
13. februar 2003 - 17:49 #36
eller se i toppen af info filen udfor
Configuration File (php.ini) Path

det er stien til den php.ini fil der bliver brugt. og det er den du skal rette i.
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:52 #37
min --> info filen ?
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:54 #38
holdakæft... jeg har BÅDE en php.ini og en php.ini-recommended i mit winnt directory
Avatar billede prop46 Nybegynder
13. februar 2003 - 17:58 #39
Arghhh... det virker staadig ikke
Avatar billede barlach Nybegynder
13. februar 2003 - 18:03 #40
hvad står der ud for ergister globals i info filen ?
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:04 #41
jeg er lidt i tvivl om hvad det er for en info fil du snakker om?
Avatar billede barlach Nybegynder
13. februar 2003 - 18:06 #42
<?php

phpinfo();

?>

og kør den gennem browseren
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:11 #43
ja den står jo altså til off her
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:11 #44
men..... ?? Jeg har jo rette det i .ini filen
Avatar billede barlach Nybegynder
13. februar 2003 - 18:12 #45
i toppen af samme fil står der
Configuration File (php.ini) Path

hvad står der ud for den ?
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:12 #46
C:\WINNT\php.ini
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:14 #47
og i den mappe har jeg en php.ini (med et fint lille tandhjul på) OG en php.ini-recommended
Avatar billede barlach Nybegynder
13. februar 2003 - 18:16 #48
ok slet php.ini-recommended

og i den der hedder php.ini står register_globals=on ????

efter at du har genstartet, slagtet en høne og råbt de magiske ord...

det lyder sq mystisk
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:30 #49
Jeg har nu slagtet nabo'ens rottweiler, hylet til månen og ringet til min mor. Jeg har genstartet, slettet, tjekket, genstartet og pudset næse.... intet virker.

register_globals står stadig på OFFFFFFFFFF.... :0)
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:31 #50
og forøvrigt.... mange tusinde tak fordi du holder ud....
Avatar billede barlach Nybegynder
13. februar 2003 - 18:35 #51
det var så lidt.

ok. så må tage det forfra =)
vi har info filen (phpinfo())
og i den står register_globals til off
og path til php.ini står til c:\winnt\php.ini

og inde i c:\winnt\php.ini
er register_globals=on

er det korrekt ??

og der er ikke et semikolon ; foran register_globals i din php.ini?
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:39 #52
Det er fuldstændigt korrekt.... kan du se den :0)
Avatar billede barlach Nybegynder
13. februar 2003 - 18:43 #53
=)
det hænger jo ikke rigtigt sammen...

kan du poste linierne omkring register_globals fra din php.ini ?
bare 5 linier før og efter
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:44 #54
This file is different from the php.ini-dist file in the fact that it features
; different values for several directives, in order to improve performance, while
; possibly breaking compatibility with the standard out-of-the-box behavior of
; PHP 3.  Please make sure you read what's different, and modify your scripts
; accordingly, if you decide to use this file instead.
;
; - register_globals = On        [Security, Performance]
;    Global variables are no longer registered for input data (POST, GET, cookies,
;    environment and other server variables).  Instead of using $foo, you must use
;    you can use $_REQUEST["foo"] (includes any variable that arrives through the
;    request, namely, POST, GET and cookie variables), or use one of the specific
;    $_GET["foo"], $_POST["foo"], $_COOKIE["foo"] or $_FILES["foo"], depending
;    on where the input originates.  Also, you can look at the
;    import_request_variables() function.
Avatar billede barlach Nybegynder
13. februar 2003 - 18:46 #55
ahhh...der var fejlen...du skal kigge efter

You should do your best to write your scripts so that they do not require
; register_globals to be on;  Using form variables as globals can easily lead
; to possible security problems, if the code is not very well thought of.
register_globals = On

; This directive tells PHP whether to declare the argv&argc variables (that
; would contain the GET information).  If you don't use these variables, you
; should tur
Avatar billede barlach Nybegynder
13. februar 2003 - 18:47 #56
det andet er bare en forklaring...
det er omkring linie 309
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:52 #57
Du er min helt fra nu af..... :0) Og du må MEGET gerne få nogel flere point hvis du syns... Du har bestemt fortjent dem....
Avatar billede barlach Nybegynder
13. februar 2003 - 18:54 #58
haha...nej det er rigeligt. ellers tak. Du får nok brug for dem senere når du er kommet lidt længere frem i bogen ;)
Avatar billede prop46 Nybegynder
13. februar 2003 - 18:55 #59
hehe.... ja, mon ikke.... sikke en omgang :0)
Avatar billede barlach Nybegynder
13. februar 2003 - 18:56 #60
til næste gang du skal rette i php.ini..

alle linier der har et  ;  foran er bare kommentarer
kun tekst uden ; foran er egentlige parametere
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