DikeMedlem sedan mars 200314 inlägg 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???
UrMeMedlem sedan apr. 2001762 inlägg variablen $message är inte definierad.
DufferMedlem sedan mars 2003429 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-...
DarrenMedlem sedan dec. 2002789 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"]
DarrenMedlem sedan dec. 2002789 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.
MatteMedlem sedan aug. 20002 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")));
?>