| Autor | Zpráva | ||
|---|---|---|---|
| Timefine Profil * |
#1 · Zasláno: 11. 5. 2012, 11:35:44
Ahoj, potřebuji trochu pomoc s opravou scriptu. Hodilo by se mi kdyby jste mě vždy odkázali na stránku kde je ta část vysvětlena (aby jsem pořádně pochopil jak se s tím narábí)
Upozorňuju že jsem uplný začátečník Děkuju :) <?php
extract($_POST);
if (isset($bod))
{ if (File_Exists ("stats.txt")):
$fp = FOpen ("stats.txt", "r");
$stats = Explode ("#", FRead ($fp, filesize("stats.txt")));
FClose ($fp);
else:
for ($i = 1; $i <= 5; $i++) $stats[$i] = 0;
endif;
}
if ($stats[$0] == 1){?>
<input name="blah" type="radio" value="Y" checked="checked"> Yes
<input name="blah" type="radio" value="N"> No
<?php } else {?>
<input name="blah" type="radio" value="Y"> Yes
<input name="blah" type="radio" value="N" checked="checked"> No
<?php }?>Chybová hláíška která na mě skáče je :Parse error: syntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$' in C:\wamp\www\vyber.php on line 13 |
||
| ShiraNai7 Profil |
if ($stats[$0] == 1){?>$0 je nesmysl, nemá tam být jen 0? http://www.php.net/manual/en/language.variables.basics.php |
||
| Timefine Profil * |
#3 · Zasláno: 11. 5. 2012, 12:01:19
Ano, děkuji :) Jejda že mě to z té chybové hlášky nenapadlo :)
|
||
| Timefine Profil * |
#4 · Zasláno: 11. 5. 2012, 13:24:12
Tak teď jsem se v tom ztratil trochu víc :)
Potřebuji aby po kliknutí na tlačítko Beru byla stránka přesměrována na hlasuj.php kde se zapíše hlas do souboru. :) Akorát nemám představu jak na to. Něco jsem zkusil ale není to funkční. <?php
if ($action == "send") {
header("Location: hlasuj.php?volba=[$znamka]");
}
{ if (File_Exists ("stats.txt")): // jestliže existuje soubor se statistikou
$fp = FOpen ("stats.txt", "r"); // otevřeme ho
$stats = Explode ("#", FRead ($fp, filesize("stats.txt"))); // načteme obsah souboru do pole, jednotlivé části řetězce oddělené znakem # přijdou do jednotlivých proměnných
FClose ($fp);
else:
for ($i = 1; $i <= 5; $i++) $stats[$i] = 0; // pokud soubor neexistuje, dáme do všech šesti proměnných nuly
endif; //místo složených závorek byla použita dvojtečka, musí být endif
}
if ($stats[0] == 1){?>
Dar je již rezervován! <br>
<?php } else {?>
<input name="dar" type="radio" value="1"> Bla bal
<?php }
if ($stats[1] == 1){?>
Dar je již rezervován! <br>
<?php } else {?>
<input name="dar" type="radio" value="2"> Bla bal<br>
<?php }
if ($stats[2] == 1){?>
Dar je již rezervován! <br>
<?php } else {?>
<input name="dar" type="radio" value="3"> Bla bal<br>
<?php }
if ($stats[3] == 1){?>
Dar je již rezervován! <br>
<?php } else {?>
<input name="dar" type="radio" value="4"> Bla bal <br>
<?php }?>
<input type="hidden" name="action" value="send"><br>
<input type="submit" value="Beru">A tady je část která zapisuje do souboru <?php
//Získá z URL adresy
$id=$_GET["volba"];
//Někdo se pokouší hacknout skript a provést nepřípustnou volbu
//Načtení dat
$soubor=fopen("stats.txt", "r"); //otevře soubor pro čtení
$data=fread($soubor, filesize("anketa.txt")); //načte obsah celého souboru do proměnné data
fclose($soubor); //uzavře soubor
$hlas = explode("#",$data);
//Navýší hlasy
$hlas[$id]=$hlas[$id]+1;
$fp = FOpen ("stats.txt", "w"); // uložíme aktuální statistiky
FWrite ($fp, Implode ($hlas, "#"));
FClose ($fp);
//Pošle hlavičku pro přesměrování na původní stránku s anketou
header("Location: anketa.php");?> |
||
| Timefine Profil * |
#5 · Zasláno: 11. 5. 2012, 14:52:31
Prosím o pomoc :( Vůbec to nechápu, nedaří se mi odeslat proměnné ani správný zápis do souboru.
|
||
| nocturnal-w Profil * |
#6 · Zasláno: 11. 5. 2012, 15:33:07 · Upravil/a: nocturnal-w
Ahoj,sice to není co nejpíše požaduješ protože jsem tě zcela nepochopil co vše chceš aby skript provedl:
<html>
<head>
<title>Hlasuj</title>
</head>
<body>
<form name="dary" method="POST" action="">
<input type="radio" value="1" name="dar"/> Dar 1 </br>
<input type="radio" value="2" name="dar"/> Dar 2 </br>
<input type="radio" value="3" name="dar"/> Dar 3 </br>
<input type="radio" value="4" name="dar"/> Dar 4 </br>
<input name="odeslat" type="submit" value="Hlasuj" />
</form>
</body>
</html>
<?php
$zjisti = fopen ("stats.txt","r");
$zjisti_r = fread($zjisti, 1);
fclose($zjisti);
if ($_POST['dar'] != 0)
{
if ($_POST['dar'] == "1" AND ($zjisti_r == "1")) {
echo "dar 1 je již zabrán."; }
else if ($_POST['dar'] == "2" AND ($zjisti_r == "2")) {
echo "dar 2 je již zabrán.";
}
else
{
$dar = $_POST['dar'];
$soubor = fopen ("stats.txt","w");
fwrite ($soubor,$dar);
fclose($soubor);
//vytáhne data
$zsoubor2 = fopen ("anketa.txt","r");
//vytáhne 1 řádek
$celkem = fread($zsoubor2, 1);
fclose($zsoubor2);
//navýší hlas
$soubor2 = fopen ("anketa.txt","w");
fwrite ($soubor2,$celkem+1);
fclose($soubor2);
echo "Hlas byl zapsán.Celkem již hlasovalo ".$celkem."";
}
}
?>Pokud někdo dá hlas tak se hodnota hlasu zapíše do souboru stats.txt a dokud nikdo nebude hlasovat znova bude hlas zabrán a hlas se započítá do anketa.txt. Pokud by jsi chtěl dary mít zabrané navždy vytvořil bych si spíše nějakou tabulku v databázi záleží na co to chceš používat. kecám //vytáhne 1 řádek $celkem = fread($zsoubor2, 1); fclose($zsoubor2); //počet znaků $celkem = fread($zsoubor2, 10); fclose($zsoubor2); |
||
|
Časová prodleva: 4 dny
|
|||
| Timefine Profil * |
#7 · Zasláno: 15. 5. 2012, 13:21:57
Tak jsem to nějak vyřešil podle svých představ :) Je tam ale pár bugů se kterými potřebuji radu.
První jsou tyto upozornění: Notice: Undefined index: dar in C:\wamp\www\vyber.php on line 12
Call Stack
# Time Memory Function Location
1 0.0007 693712 {main}( ) ..\vyber.php:0
( ! ) Notice: Undefined index: in C:\wamp\www\vyber.php on line 18
Call Stack
# Time Memory Function Location
1 0.0007 693712 {main}( ) ..\vyber.php:0 kod je tady :) případně mě prosím upozorněte na problémy nebo jak to řešit elegantněji <?php
if (File_Exists ("stats.txt")):
$fp = FOpen ("stats.txt", "r");
$stats = Explode ("#", FRead ($fp, filesize("stats.txt")));
FClose ($fp);
else:
for ($i = 1; $i <= 5; $i++) $stats[$i] = 0;
endif;
$id=$_GET["dar"];
$soubor=fopen("stats.txt", "r");
$data=fread($soubor, filesize("stats.txt"));
fclose($soubor);
$hlas = explode("#",$data);
$hlas[$id]=$hlas[$id]+1;
$fp = FOpen ("stats.txt", "w");
FWrite ($fp, Implode ($hlas, "#"));
FClose ($fp);
?> <form name="dary" method="POST" action=""> <?php
if ($stats[1] == 1){
?> Dar je již rezervován! <br> <?php }
else { ?> <input name="dar" type="radio" value="1"> Bla bal<br> <?php }
if ($stats[2] == 1){
?> Dar je již rezervován! <br> <?php }
else { ?> <input name="dar" type="radio" value="2"> Bla bal<br> <?php }
if ($stats[3] == 1){
?> Dar je již rezervován! <br> <?php }
else { ?> <input name="dar" type="radio" value="3"> Bla bal<br> <?php }
if ($stats[4] == 1){
?> Dar je již rezervován! <br> <?php }
else { ?> <input name="dar" type="radio" value="4"> Bla bal<br> <?php } ?>
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Daruj"> </form> |
||
|
Časová prodleva: 14 let
|
|||
0