D Dike Medlem sedan mars 2003 14 inlägg Frågan 13 mars 2003 14:01 #1 Jag kör en gästbok med ett lätt script som jag hittade på nätet.
Den består av en fil, "gb.php". Koden nedan finns i gb.php...
<?
if ($message)
{
$message = ereg_replace("\r\n\r\n", "\n<P>", $message);
$date = date("l, F j Y, h:i a");
$message = "<B>$name </B> -- $date<P> $message <BR><HR>";
$fp = fopen (basename($PHP_SELF) . ".comment", "a");
fwrite ($fp, $message);
fclose ($fp);
}
@readfile(basename(($PHP_SELF . ".comment")));
?>
<FORM method="post">
<b>Name:</b><BR><INPUT name="name" type="text" size="55"><BR>
<b>Message:</b><BR><TEXTAREA name="message" rows=10 cols=55 wrap=virtual>
</TEXTAREA><BR>
<INPUT name="submit" type="submit" value="Post">
</FORM>
Men när jag ska kolla på sidan så visas:
"Notice: Undefined variable: message in C:\Documents and Settings\semteX\My Documents\webbserver\user\danjel\iowa\gb.php on line 2"
Vad ska jag göra???
UrMe Medlem sedan apr. 2001 762 inlägg variablen $message är inte definierad.
D Duffer Medlem sedan mars 2003 429 inlägg eftersom att det är en if sats du börjar med måste den ha ngt att gå emot
t.ex. om du hade haft
if($message "inte är *ngt*")
då ska detta hända bla bla bla-...
D Darren Medlem sedan dec. 2002 789 inlägg Ändra register_globals till On i php.ini filen. Observera att du då också skapar visa säkerhetsluckor i php...
Om du inte vill göra det så kan du ändra alla:
$message till $_POST["message"] och
$name till $_POST["name"]
D Darren Medlem sedan dec. 2002 789 inlägg
Duffer skrev:
eftersom att det är en if sats du börjar med måste den ha ngt att gå emot
t.ex. om du hade haft
if($message "inte är *ngt*")
då ska detta hända bla bla bla-...
Detta är inte sant...
Om variabel som du kontrollerar innehåller något värde så kommer if($variabel) returnera true och då uppfylls villkoren till if-satsen.
Matte Medlem sedan aug. 2000 2 975 inlägg Det första du kan göra är att kolla om variabeln är satt:
if ( isset($message) )
Nu kan det också vara så att du har register_globals satt till Off i din php.ini. Det är numera standard, men tidigare var det för det mesta On. Skriptet kräver On för att fungera.
Då måste du bygga om din kod. Du kan t.ex göra så här:
<?php
if (isset($_POST['message']))
{
$message = ereg_replace("\r\n\r\n", "\n<P>", $_POST['message']);
$date = date("l, F j Y, h:i a");
$message = "<B>{$_POST['name']} </B> -- $date<P> $message <BR><HR>";
$fp = fopen (basename($_SERVER['PHP_SELF']) . ".comment", "a");
fwrite ($fp, $message);
fclose ($fp);
}
@readfile(basename(($_SERVER['PHP_SELF'] . ".comment")));
?>