Autor Zpráva
Timefine
Profil *
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 *
Ano, děkuji :) Jejda že mě to z té chybové hlášky nenapadlo :)
Timefine
Profil *
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 *
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 *
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);
Timefine
Profil *
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>

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: