2 små men underlige problemer...

Tags:    php

Hejsa

Jeg sidder her med to underlige problemer, som jeg håber i kan hjælpe med...

1.
Jeg skal lave en form som kører tilbage til samme side når man trykker på submit...
Jeg mener jeg plejer at skrive <form action="<? $php_self ?>">, eller noget ik den dur.

Men når jeg skriver dette kommer den op og siger "Undefined variable: PHP_SELF". Hvad er det jeg skal skrive for at den går tilbage til samme side??


2.
Det andet spørgsmål er at når jeg fx skriver

if($_REQUEST[SUBMIT])

Så kommer den også op og siger "Undefined variable: SUBMIT".

Hvad kan jeg gøre for at dette ikke sker?

/Stefan



5 svar postet i denne tråd vises herunder
5 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
1. det er vist noget med servervariables du skal bruge der...

2. brug $_Request["Submit"]

Jeppe Johansen
Jeppesoftware@hotmail.com



Hejsa

Jeg sidder her med to underlige problemer, som jeg håber i kan hjælpe med...

1.
Jeg skal lave en form som kører tilbage til samme side når man trykker på submit...
Jeg mener jeg plejer at skrive <form action="<? $php_self ?>">, eller noget ik den dur.

Men når jeg skriver dette kommer den op og siger "Undefined variable: PHP_SELF". Hvad er det jeg skal skrive for at den går tilbage til samme side??


2.
Det andet spørgsmål er at når jeg fx skriver

if($_REQUEST[SUBMIT])

Så kommer den også op og siger "Undefined variable: SUBMIT".

Hvad kan jeg gøre for at dette ikke sker?

/Stefan


Det skyldtes sandsynligvis, at du benytter en ældre PHP version, hvor "auto_globals" er deaktiveret...

Du skal derfor skrive $HTTP_SERVER_VARS['PHP_SELF'] i stedet for $php_self og $HTTP_GET_VARS['SUBMIT'] eller $HTTP_POST_VARS['SUBMIT'] i stedet for $_REQUEST[SUBMIT].



Du skal derfor skrive $HTTP_SERVER_VARS['PHP_SELF'] i stedet for $php_self og $HTTP_GET_VARS['SUBMIT'] eller $HTTP_POST_VARS['SUBMIT'] i stedet for $_REQUEST[SUBMIT].



Det er bedre at bruge de nye definitioner til disse variabler

$_SERVER[PHP_SELF] $_GET[SUBMIT]

desuden tjekker $_REQUEST for både $_GET og $_POST - hvis man skulle være usikker på hvad ens form benytter af submit method.


"Undefined variable: submit" kommer hvis du vil tjekke efte ren variabel og din server er sat op til at vise alle kommentarer, fejl, m.v. Det er noget du skal ændre i php.ini - jeg kan ikke umiddelbart huske hvad, men det er ikke så svært at finde hvis man kigger lidt på det.

--
Ronni Egeriis - squirrel development: http://sqdev.dk/



Hej,

1.
$PHP_SELF - det skal skrives med stort...
Du skal også skrive = eller echo for at udskrive variablen:
<form action="<?PHP = $PHP_SELF; ?>"> eller <form action="<?PHP echo $PHP_SELF; ?>">

2.
Grunden til, at du får fejl her er, at første gang, at siden køres, så er den variabel ikke sat. Der findes en funktion i PHP til at tjekke, om en variabel er sat, så brug i stedet den således:

if(isset($_POST["submit"]) && ($_POST["submit"] != ""))

Og jeg vil absolut ikke anbefale at bruge REQUEST - brug i stedet GET og POST afhængig af din forms method - det bliver nemmere at få en god, sikker og stabil programmering ud af det i stedet for REQUEST.

mikl | mikl@mikl.dk | MSN: mikl@mikl.dk



Det er nok en fejl af typpen E_NOTICE

; E_NOTICE - run-time notices (these are warnings which often result
; from a bug in your code, but it's possible that it was
; intentional (e.g., using an uninitialized variable and
; relying on the fact it's automatically initialized to an
; empty string)

I php.ini kan du bruge linjen:

error_reporting = E_ALL & ~E_NOTICE




t