Autor | Zpráva | ||
---|---|---|---|
Mix Profil * |
#1 · Zasláno: 7. 8. 2005, 06:22:13
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øispìl jste alespoò 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¾ 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 |
#2 · Zasláno: 7. 8. 2005, 06:53:02
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 |
#3 · Zasláno: 7. 8. 2005, 08:35:09
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 * |
#4 · Zasláno: 7. 8. 2005, 08:39:31
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 |
#5 · Zasláno: 7. 8. 2005, 09:04:12
Mix
if ((IsSet($send) && $send=="ano") && ($anketa == "ano" || $anketa == "ne")): |
||
tark Profil |
#6 · Zasláno: 7. 8. 2005, 09:19:30
BTW, používáš $_GET['promenna'] nebo $promenna?
|
||
Mix Profil * |
#7 · Zasláno: 7. 8. 2005, 09:38:54
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 * |
#8 · Zasláno: 7. 8. 2005, 10:28:22
Pouzivam $promenna
|
||
Hugo Profil |
#9 · Zasláno: 7. 8. 2005, 10:40:27
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 * |
#10 · Zasláno: 7. 8. 2005, 11:33:50
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 |
#11 · Zasláno: 7. 8. 2005, 11:37:15
Mix
Ale to je porad to same, udelej to stejne jak v tom predchozim pripade. |
||
Mix Profil * |
#12 · Zasláno: 7. 8. 2005, 13:27:35
Hugo
Asi jsem blbej, ale nejde mi to. Pomoz mi s tím, jestli ti ještě nedošla trpělivost :) |
||
Hugo Profil |
#13 · Zasláno: 7. 8. 2005, 13:31:41
Mix
Proste nejdriv otestuj jestli ta promenna existuje (IsSet()), pak to nebude rvat. |
||
Mix Profil * |
#14 · Zasláno: 7. 8. 2005, 14:36:43
Ani takhle...
if (IsSet($zapis) && ($zapis != "ne")): ani takhle mi to nejde if (IsSet($zapis) && $zapis != "ne"): ... mi to nejde |
||
Hugo Profil |
#15 · Zasláno: 7. 8. 2005, 14:49:19
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 * |
#16 · Zasláno: 7. 8. 2005, 15:25:15
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 |
#17 · Zasláno: 7. 8. 2005, 15:37:17
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 * |
#18 · Zasláno: 7. 8. 2005, 15:42:07
O.K.
|
||
Časová prodleva: 3 dny
|
|||
mato4ever Profil |
#19 · Zasláno: 10. 8. 2005, 10:55:17
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 :)) |
||
Časová prodleva: 19 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0