Avatar billede ladyhawke Novice
06. november 2003 - 10:49 Der er 25 kommentarer og
3 løsninger

Undefined variable i forbindelse med query

Dette query giver anledning til en "Undefined variable: name in C:\Inetpub\wwwroot\sign.php on line 11" (også fejl for de andre variable i query)
"
$query = "insert into guestbook (name,location,email,url,comments) values         ('$name', '$location', '$email', '$url', '$comments')";

Variablene skulle være defineret i en form, som (uddrag), ser således ud:

<form method="post" action="<?php echo $_SERVER['PHP_SELF']?>" ENCTYPE="multipart/form-data">
    <b> Name: </b>
    <input type=text size=40 name=name>
    <br>
...

    <input type=submit name='submit' value="Sign">
    <input type=reset name=reset value="Start Over">
</form>

...

query er pakket ind i en if sætning:

if(isset($_POST['submit']))
{
....

Så den kun skal kaldes hvis der er trykket submit...

Hvad er galt...
Avatar billede erikjacobsen Ekspert
06. november 2003 - 10:51 #1
Du skal nok have en omgang af disse

  $name=$_POST['name'];
Avatar billede ladyhawke Novice
06. november 2003 - 10:53 #2
Det ser ud til at virke :o)

Skyldes det ændringen mht. globale variable i PHP?
Avatar billede ladyhawke Novice
06. november 2003 - 10:55 #3
BTW kan man indlejre "$_POST['name']" i query, eller skal de tildeles først?
Avatar billede riversen Nybegynder
06. november 2003 - 10:56 #4
ja
Avatar billede riversen Nybegynder
06. november 2003 - 10:56 #5
og ja
Avatar billede jensgram Nybegynder
06. november 2003 - 10:58 #6
ladyhawke > Du kan sagtens  indlejre dem - dog ville jeg køre addslashes() på dem først
Avatar billede jensgram Nybegynder
06. november 2003 - 10:58 #7
;)
Avatar billede jensgram Nybegynder
06. november 2003 - 11:00 #8
$query = "INSERT INTO guestbook (name, location, email, url, comments) VALUES        ('" . addslashes($_POST['name']) . "', '" . addslashes($_POST['location']) . "', '" . addslashes($_POST['email']) . "', '" . addslashes($_POST['url']) . "', '" . addslashes($_POST['comments']) . "')";
Avatar billede detox Nybegynder
06. november 2003 - 11:01 #9
Men pas på, hvis du har sat 'magic_quotes_gpc=On' i din php.ini, hvilket er standard, så skal du ikke bruge addslashes() på POST variabler.
Avatar billede ladyhawke Novice
06. november 2003 - 11:02 #10
OK, det giver så lige så meget tekst alligevel, men rart at det kan lade sig gøre...

Kan I ikke lægge et svar :o)
Avatar billede ladyhawke Novice
06. november 2003 - 11:06 #11
BTW er der nogen af jer der ved hvordan man kontrollere værdien af submit variablen, i stedet for bare at se om den er sat i denne is sætning:

if(isset($_POST['submit']))
Avatar billede ladyhawke Novice
06. november 2003 - 11:08 #12
is -> if
Avatar billede detox Nybegynder
06. november 2003 - 11:08 #13
if(isset($_POST['submit']) && $_POST['submit'] == 'sign')
Avatar billede detox Nybegynder
06. november 2003 - 11:09 #14
Sorry:

if (isset($_POST['submit']) && $_POST['submit'] == 'Sign')
Avatar billede ladyhawke Novice
06. november 2003 - 11:14 #15
kanon, tak for svaret :o)

Jeg tildeler point lige så snart der er svaret...
Avatar billede sukos Juniormester
06. november 2003 - 12:05 #16
detox->Hvad skulle problemet være med addslashes() hvis magic_quotes_gpc er On i php.ini?
Avatar billede jensgram Nybegynder
06. november 2003 - 13:21 #17
Er på vej ud af døren, men smider lige et svar for en sikkerheds skyld ;)

Som fortsættelse til detox's kommentar om submit, så skal det lige nævnes, at alle <input />-felter er i (i dette tilfælde) $_POST[]-array'et. Det gælder text, password, checkbox, radio, hidden, submit (tilføj selv, hvis jeg har glemt nogle)...
Avatar billede detox Nybegynder
07. november 2003 - 00:24 #18
sukos -> det er jo ingen katastrofe, men der er jo ingen grund til at smide en ekstra backslash på. Så skal man bare til at fjerne dem igen ved udtræk. Så det er i det mindste unødvendigt.
Avatar billede ladyhawke Novice
16. november 2003 - 16:00 #19
ingen af jer har svaret, det gør det altså lidt svært at uddele point :o)
Avatar billede detox Nybegynder
16. november 2003 - 16:05 #20
Det har du da fuldkommen ret i, men jeg vil da gerne svare så :o)
Avatar billede ladyhawke Novice
16. november 2003 - 16:13 #21
håber også erikjacobsen og mr_noname melder sig. ellers deler jeg point ud senest i morgen :o)
Avatar billede erikjacobsen Ekspert
16. november 2003 - 16:19 #22
skidt med det - jeg deltager ikke i slagsmål om 15p ;))
Avatar billede ladyhawke Novice
16. november 2003 - 16:20 #23
Det er da ikke slagsmål... bare glad for brugbare svar, selvom spørgsmålet måske er lidt simpelt (når man kender svaret ;o)
Avatar billede detox Nybegynder
16. november 2003 - 16:32 #24
Nej, jeg vil heller ikke ligefrem slås for det, men du får jo svært ved at fordele pointene uden svar ;o)
Avatar billede jensgram Nybegynder
16. november 2003 - 18:09 #25
... så må vi jo hellere hjælpe ;)
Avatar billede ladyhawke Novice
16. november 2003 - 19:07 #26
OK, så deler jeg ud nu, siden jacobsen ikke vil være med :o)
Avatar billede ladyhawke Novice
16. november 2003 - 19:08 #27
tak for hjælpen
Avatar billede jensgram Nybegynder
16. november 2003 - 20:14 #28
Så lidt :)
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