Autor Zpráva
Mix
Profil *
Poradil by mi někdo, kde je chyba?

Píše mi to NOTICE:
Notice: Undefined variable: send in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 11

Jak to napravit????

<?
//pro pripad ze jeste nebyl odeslan formular
if (File_Exists ("anketa.dat")):
$fp = FOpen("anketa.dat", "r");
$data_anketa = FRead ($fp, FileSize("anketa.dat"));
List($ano,$ne) = Explode("#", $data_anketa);
endif;

//formular jiz byl odeslan a bylo hlasovano ano nebo ne
//soubory jeste neexistuji
if ($send=="ano" && ($anketa == "ano" || $anketa == "ne")):
if (!File_Exists ("anketa.dat")):
$ano = "0";
$ne = "0";
//zapis do anketa.dat
$fp = FOpen("anketa.dat", "w");
FWrite ($fp, $ano ."#" . $ne);
FClose($fp);
endif;

//precte IP adresy
if (File_Exists("ip.dat")):
$fp = FOpen("ip.dat", "r");
$data_ip = FRead ($fp, FileSize("ip.dat"));
$IP = Explode("#", $data_ip); //ziska prozatimni vysledky hlasovani
FClose ($fp);
endif;

//zjisti zda je hlasovano podruhe z jednoho compu
for ($i=0;$i<Count($IP);$i++):
if ($REMOTE_ADDR == $IP[$i]):
$zapis = "ne";
endif;
endfor;

//je hlasovano podruhe
if ($zapis != "ne"):

if ($anketa == "ano"):
$ano += 1;
$data_anketa = $ano. "#" . $ne;
else:
$ne += 1;
$data_anketa = $ano. "#" . $ne;
endif;

$fp = FOpen ("anketa.dat", "w");
FWrite ($fp, $data_anketa);
FClose ($fp);

$fp = FOpen("ip.dat", "a");
FWrite ($fp, "#" . $REMOTE_ADDR);
FClose ($fp);
endif;

endif;
?>


<HTML>
<HEAD>
<TITLE>Menu</TITLE>

<BODY bgcolor="#f8f8f8" background="../gr/menu.gif" leftMargin="0" rightMargin="0" text="black" topMargin="0" bottomMargin="0" marginheight="0" marginwidth="0">

<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<STYLE>

TD {
FONT-FAMILY: Verdana; COLOR: black ; FONT-SIZE: 10px; MARGIN-RIGHT: 0px; MARGIN-LEFT: 0px; MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
}
A:link {
FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 11px; MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
A:visited {
FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 11px; MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}
A:hover {
FONT-FAMILY: Verdana; COLOR: #666666; FONT-SIZE: 11px; MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}

H1 {
FONT-FAMILY: Verdana; COLOR: black; FONT-SIZE: 10px; MARGIN-BOTTOM: 0px; MARGIN-TOP: 0px
}

</STYLE>

<CENTER>


<TABLE border="0" cellPadding="0" cellSpacing="0">

<TR height=21>
<TD bgcolor="#cacaca"></TD>
<TD bgcolor="#cacaca"></TD>
<TD></TD>
<TD align="center" bgcolor="#d5d5d5" colspan="2">
<H1>ANKETA 8/2005
</TD>
</TR>

<TR height=5>
<TD width=11></TD>
<TD width=9></TD>
<TD width=2></TD>
<TD width=5></TD>
<TD width=135></TD>
</TR>

<TR height=5>
<TD colspan=5>

<TABLE align="center" cellpadding="0" cellspacing="0" border="0" width=* valign="top">
<TR height="27">
<TD align="center" valign="top">
P&oslash;isp&igrave;l jste alespo&ograve; jednou ?
</TD>
</TR>

<TR>
<TD align="center">

<TABLE align="center" cellpadding="0" cellspacing="0" border="0" width=* valign="top">
<TR>
<TD> <FORM method="post"><B>Ano</B></TD>
<TD> <INPUT type="radio" name="anketa" value="ano"></TD>
<TD> (<?echo $ano?>)</TD>
<TD width="10"></TD>
<TD> <B>Ne</B></TD>
<TD> <INPUT type="radio" name="anketa" value="ne"></TD>
<TD> (<?echo $ne?>)</TD>
</TR>
</TABLE>


</TD>
</TR>

<TR>
<TD valign="top" align="center">
<?
if (File_Exists ("anketa.dat")):
$soucet = $ano + $ne;
$width1 = 115/$soucet*$ano;
$width2 = 115/$soucet*$ne;
?>

<IMG src="1.gif" width=<?echo $width1?> height="5" border="0" alt=""><IMG src="2.gif" width=<?echo $width2?> height="5" border="0" alt=""><br>

</TD>
</TR>

<TR height="26">
<TD valign="bottom" align="center">

<?
endif;
//precte IP adresy
if (File_Exists("ip.dat")):
$fp = FOpen("ip.dat", "r");
$data_ip = FRead ($fp, FileSize("ip.dat"));
$IP = Explode("#", $data_ip); //ziska prozatimni vysledky hlasovani
FClose ($fp);

//zjisti zda je hlasovano podruhe z jednoho compu
for ($i=0;$i<Count($IP);$i++):
if ($REMOTE_ADDR == $IP[$i]):
$zapis = "ne";
endif;
endfor;

if ($zapis == "ne"):
echo "<B>U&frac34; jsi hlasoval.</B>";
else:
echo '<INPUT TYPE=IMAGE SRC="../gr/odeslat2.gif" valign=bottom hspace=0 vspace=0>';
endif;
else:
echo '<INPUT TYPE=IMAGE SRC="../gr/odeslat2.gif" valign=bottom hspace=0 vspace=0>';
endif;
?>
<INPUT type="hidden" name="send" value="ano">


</TD>
</TR>
</FORM>

</TD></TR></TABLE>

</TD>
</TR>

</TD></TR></TABLE> [b][/b][i][/i]
Yuhů
Profil
inu, k tomu je těžko cokoliv dodávat. Píše to:

Undefined variable: send in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 11
což česky znamená
Nedefinovaná proměnná: send v c:\inet_srv...anketa.php3 na řádku 11

řádek 11 je tento
if ($send=="ano" && ($anketa == "ano" || $anketa == "ne")):

a v něm se nachází nedefinovaná proměnná $send

Stačí ji nadefinovat (nebo zapnout přebírání proměnných z adresy, možná to je vypnuté).
Oswald
Profil
A pokud nevíš, jestli je definovaná a chceš to zjistit, tak je dobrý používat isset(), pak to Ti to nebude házet notice, který jsou jinak celkem užitečný.
Mix
Profil *
Můžeš to trochu rozvést.. dělal jsem to podle manuálu... jak jí nadefinovat, aby to dál fungovalo?

Ten if by měl zjistit, jestli byl už formular odeslan a bylo hlasovano ano nebo ne.

I s tou notice to funguje. Já mám tedy nadefinovat $send aby to šlapalo i bez té NOTICE.

Díky moc radu.. nevím si s tím rady
Hugo
Profil
Mix

if ((IsSet($send) && $send=="ano") && ($anketa == "ano" || $anketa == "ne")):
tark
Profil
BTW, používáš $_GET['promenna'] nebo $promenna?
Mix
Profil *
JO skvělý... todle už jde...

Ještě tu mám ale jeden problém s tím, když ještě nemám vyvořené soubory IP.DAT a ANKETA.DAT

V tu chvíli mi to píše zase nějaké NOTICE... např. na řádcích 30 a 37 ...

+ ten samý problém se zatím nevytvořenými soubory zde...

<TABLE align="center" cellpadding="0" cellspacing="0" border="0" width=* valign="top">
<TR>
<TD> <FORM method="post"><B>Ano</B></TD>
<TD> <INPUT type="radio" name="anketa" value="ano"></TD>
<TD> (<?echo $ano?>)</TD>
<TD width="10"></TD>
<TD> <B>Ne</B></TD>
<TD> <INPUT type="radio" name="anketa" value="ne"></TD>
<TD> (<?echo $ne?>)</TD>
</TR>
</TABLE>

Snad mi poradíte i s tím

Díky
Mix
Profil *
Pouzivam $promenna
Hugo
Profil
Mix

Ono by se celkem hodilo, kdybys napsal cele zneni te chyby.

Rozhodne le lepsi a bezpecnejsi pouzivat globalni pole $_GET, $_POST atd.
Mix
Profil *
1)Notice: Undefined variable: IP in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 30

Notice: Undefined variable: zapis in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 37


2)
(
Notice: Undefined variable: ano in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 217
) Ne (
Notice: Undefined variable: ne in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 221
)

No já s tím trochu bojuju... snad jednou budu dobrej jako VY

Díky
Hugo
Profil
Mix

Ale to je porad to same, udelej to stejne jak v tom predchozim pripade.
Mix
Profil *
Hugo

Asi jsem blbej, ale nejde mi to.

Pomoz mi s tím, jestli ti ještě nedošla trpělivost :)
Hugo
Profil
Mix

Proste nejdriv otestuj jestli ta promenna existuje (IsSet()), pak to nebude rvat.
Mix
Profil *
Ani takhle...

if (IsSet($zapis) && ($zapis != "ne")):

ani takhle mi to nejde

if (IsSet($zapis) && $zapis != "ne"):

... mi to nejde
Hugo
Profil
Ted jsem ten skript testoval. Problem je v promennych $ano a $ne (pokud neexistuje soubor anketa.dat). Zkus je na zacatku skriptu inicializovat napr. pomoci
$ano = $ne = '';

Jinak to nic nehlasi.
Mix
Profil *
Hugo

Tak $ano = $ne = ''; vyřešilo jeden z těch 2 problémů. Za to děkuju

Ale ten první pořád zůstává... t.j. když se odešle hlas a má se znovu načíst anketa.php, tak to hodí tydle NOTICE

1)Notice: Undefined variable: IP in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 30

Notice: Undefined variable: zapis in c:\inet_srv\http\doc_root\verze 1.1\pages\anketa.php3 on line 37

Asi je to jen kosmetika.. mám to nechat být? Když jsou vyplnutý NOTICE, tak to nemá vliv na funčnost...

Co myslíš? Víš jak se zbavit i toho?
Hugo
Profil
Proste ty dve promenne inicializuj stejne, dej na zacatek skriptu
$IP = '';
$zapis = '';

Ale musis dat pozor aby to neovlivnilo funkcnost skriptu. Opravdu se mi to nechce studovat, takze to otestuj.

BTW:
Pokud budes chodit s kazdou kravinou na forum, tak se to nikdy nenaucis. Podivej se treba na
http://www.linuxsoft.cz/

Je tam dobry serial o php pro zacatecniky.
Mix
Profil *
O.K.
mato4ever
Profil
Ja používam:
$send=@$_POST['send'];
a ak nebolo nič poslané v send bude "" alebo ak sa jedná o číslo
$send=@$_POST['send']+0;
a ak nebolo nič poslané v send bude tentokát 0
A žiadne zložité if-y :))
Toto téma je uzamčeno. Odpověď nelze zaslat.

0