Avatar billede scifo Nybegynder
10. juni 2006 - 20:14 Der er 21 kommentarer og
1 løsning

Undefines variable, fejl i gæstebog

Hej Eksperter.
Hvad er der galt her?

Får flg. fejl:
Notice: Undefined variable: skriv in c:\documents and settings\scifo\dokumenter\hjemmeside\guestbook.php on line 6

og

Notice: Undefined variable: PHP_SELF in c:\documents and settings\scifo\dokumenter\hjemmeside\guestbook.php on line 14

og

Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\documents and settings\scifo\dokumenter\hjemmeside.dk\guestbook.php on line 25


Har flg. kode:
<?php include ("connectdb.inc.php"); ?>
<HTML>
<HEAD><TITLE>Gæstebog</TITLE></HEAD>
<BODY>
<?PHP
if ($skriv){
  $besked = str_replace("\n", "<BR>", $besked);
    $dato_array = getdate();
    $dato = $dato_array["mday"]."/".$dato_array["mon"]."-".$dato_array["year"];
    mysql_query("INSERT INTO gbog (navn, email, dato, besked) VALUES ('$navn', '$email', '$dato', '$besked')");
    }
?>
<CENTER>
<FORM METHOD=POST ACTION=<?php echo $PHP_SELF; ?>>
<INPUT TYPE=hidden NAME=skriv VALUE=1>
Navn: <INPUT TYPE=text NAME=navn><BR>
Email: <INPUT TYPE=text NAME=email><BR>
<TEATAREA name=besked COLS=30 ROWS=5></TEXTAREA><BR>
<INPUT TYPE=submit VALUE="send">
</FORM>
<BR><BR>
<TABLE>
<?PHP
  $foresp = mysql_query("SELECT navn, email, dato, besked FROM gbog ORDER BY nr DESC");
    while($data = mysql_fetch_row($foresp))
      {
        echo "<TR><TD VALIGN=TOP>";
        echo " fra: <A HREF=\"mailto:$data[1]\">$data[0]</A>";
        echo "<BR>$data[2]";
        echo "</TD><TD VALIGN=TOP>$data[3]</TD></TR>";
        }
?>
</TABLE>
</CENTER>
</BODY>
</HTML>

// Mvh Scifo
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:27 #1
Du skal bruge $_POST['besked'];
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:27 #2
og $_SERVER[PHP_SELF]
Avatar billede scifo Nybegynder
10. juni 2006 - 20:30 #3
hvor henne?
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:31 #4
Du kan lige så godt vände dig til at altid fange dine get/post/session osv variabler på den rigtige måde. Og det er selv om register globals er slået til eller ej.
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:32 #5
I alle dine variabler. ALT hvad du sender med post, skal fanges med $_POST og ALT du sender i adresselinien fanges med $_GET osv.
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:34 #6
Og hvis du kigger på dine fejlmeddelser ser du i hvilke linier fejlen er (kan väre +- en linie afhängig af fejlmeddelsen).
Avatar billede scifo Nybegynder
10. juni 2006 - 20:34 #7
Tror ikke jeg er helt med, har ikke så meget erfaring med PHP og MySql endnu :-(

Dette eksempel er taget fra en bog jeg er igang med "Start på PHP af Thomas G. Kristensen", Så skulle da ellers mene at det ville virke :-(
Avatar billede michael_stim Ekspert
10. juni 2006 - 20:39 #8
Så ville jeg finde en anden bog hvis jeg var dig. Den har garanteret nogle år på bagen.
Avatar billede scifo Nybegynder
10. juni 2006 - 20:45 #9
jeps er fra 02, men er det sådan at jeg kan få dig til at skriv det som det skal stå og paste det herind? Så kan jeg se logikken i det?

Mvh
Scifo
Avatar billede erikjacobsen Ekspert
10. juni 2006 - 21:45 #10
Og $_SERVER[PHP_SELF] skal jo lige være  $_SERVER['PHP_SELF']
Og smid så bogen langt væk - den vil kun give dig dårlige vaner, hvis eksemplet her er typisk.
Avatar billede wetdog Nybegynder
10. juni 2006 - 22:04 #11
hvis du retter denne:
if ($skriv){

til:

if(isset($_POST['skriv']))

og erstatter alle $PHP_SELF med $_SERVER['PHP_SELF']
Avatar billede michael_stim Ekspert
10. juni 2006 - 22:28 #12
http://www.tizag.com/phpT/
Du kan jo begynde med at läse denne.
Og senere når du har forstået grunden, kan du bruge:
www.php.net
som reference
Avatar billede scifo Nybegynder
11. juni 2006 - 00:47 #13
Oki disse ting er rettet nu, og tror at jeg har forstået hentydningen nu :-D
Har så kun 2 ting tibage:
1: Har stadigvæk fejlen:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in c:\documents and settings\scifo\dokumenter\hjemmeside.dk\guestbook.php on line 25

2: Hvilke bøger kan i "gæve" programmører anbefale en begynder som mig? Helst dansk.

Mvh
Scifo
Avatar billede scifo Nybegynder
11. juni 2006 - 00:49 #14
p.s. For kan da høre at det jeg har indtil videre ikke er noget jeg skal arbejde med (bog)
Avatar billede erikjacobsen Ekspert
11. juni 2006 - 09:43 #15
Igen et dårligt eksempel fra bogen.

Man skal ikke udføre en sql-sætning uden at have styr på hvad der går galt, hvis det går galt. Det simpleste, som er godt nok til udvikling, men ikke til drifts-systemer, er at ændre

  $foresp = mysql_query("SELECT navn, email, dato, besked FROM gbog ORDER BY nr DESC");

til

  $foresp = mysql_query("SELECT navn, email, dato, besked FROM gbog ORDER BY nr DESC") or die(mysql_error());
Avatar billede scifo Nybegynder
11. juni 2006 - 13:22 #16
tak for hjælpen, vil i ikke lige smide et svar :-)
Efter rettelse i databasen, og jeres hjælp, virker mit script nu :-)

Men igen, et tilbagevendende spm:
Hvad skal jeg sætter mig ned og læse, som er noget værd i forhold til php?

Mvh
Scifo
Avatar billede michael_stim Ekspert
11. juni 2006 - 15:59 #17
Det jeg har linket til burde väre nok i starten. Kender ikke rigtigt nogle gode danske böger. www.webcafe.dk er på dansk men ikke så udförligt som mit andet link.
Avatar billede michael_stim Ekspert
11. juni 2006 - 16:00 #18
Hov, den side var skisme nedlagt ;o)
Avatar billede webstuff Nybegynder
11. juni 2006 - 17:09 #19
Thomas G. Kristensen har lavet en ny Start på PHP - den hedder "Start på PHP 5" og koster omkring 80dkk.
Den brugte jeg da jeg skulle lære php, var fuldt tilfreds med den. men _HUSK_ at lave de opgaver der kommer i løbet af bogen, da det er dem der lærer dig at tænke i php :)
Avatar billede scifo Nybegynder
15. juni 2006 - 01:05 #20
Så er der styr på det hele, og jeg har fået svar på mine spørgsmål, 1000 tak for hjælpen, så er der points til:
michael_stim, webstuff, wetdog og erikjacobsen.

Mvh
Scifo
Avatar billede erikjacobsen Ekspert
15. juni 2006 - 21:47 #21
Jeg samler slet ikke på points, tak.
Avatar billede michael_stim Ekspert
15. juni 2006 - 22:54 #22
;o)
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