Autor Zpráva
chudst
Profil
Mám problém se čtením ze souboru. Do souboru se mi vše ukládá v pořádku, ale nechce se mi nic zobrazit. (Nehází to ani chybové hlášky, prostě se mi to nezobrazuje. Z PHP teprve začínám experimentovat.)

<?
  if ($id == view)                                                                         //pokud se soubor bude jen zobrazovat, zobrazí se možnost odeslat zprávu a zobrazí se zprávy
  {              
  echo "<form action=\"zkouska.php?id=odeslano\" method=\"post\">                              <!-- soubor se jmenuje \"zkouska.php\" a bude se odesílat do \"zkouska.php?id=odeslano\" -->
  Jméno: <input name=\"jmeno\" size=\"25\" id=\"jmeno\" value=\"Vaše jméno\">                  <!-- pole pro jméno -->
  Email: <input name=\"email\" size=\"25\" id=\"email\" value=\"Váš email\"><br />             <!-- pole pro email --> 
  Zpráva: <textarea name=\"zprava\"  id=\"zprava\" rows=\"6\" cols=\"55\">Zpráva...</textarea> <!-- pole pro zprávu -->
    <br />
  <center><input type=\"submit\" value=\"Odeslat\" class=\"tlacitko\"></center>                <!-- tlačítko \"Odeslat\" -->
  </form>";              
  }                                                                                         //pokračování o několik řádků níže *)
     
  if ($id == odeslano)                  //pokud se klikne na tlačítko "Odeslat", skryje se možnost odeslání zprávy
  {
    $jmeno = $_POST['jmeno'];           //převede jméno do proměnné $jmeno
    $email = $_POST['email'];           //převede email do proměnné $email
    $zprava = $_POST['zprava'];         //převede zprávu do proměnné $zprava
    $soubor = fopen("./text.txt", "a"); //nastaví se, kam se bude text ukládat
    fwrite($soubor, "$jmeno\n$email\n$zprava\n"); //text k uložení ve formě: Jméno-ENTER-Email-ENTER-Zpráva-ENTER
    fclose($soubor);                    //uzavře soubor
    echo "Úspěšně odesláno! <meta http-equiv=\"refresh\" content=\"1;url=http://vsohbrno.wz.cz/zkouska.php?id=view\">";           //vypíše, ať se ví, že se něco udělalo a přesměruje se mě zpět na začátek
   }    

Až posud mi to funguje správně. Ale níže čtení ... nenačítá :)

                                        // *) pokračujeme dále
  $soubor = fopen("./text.txt", "r");  //otevřu soubor s texty
  
  $i = 0;        //nastavím $i na 0
   while (!feof($soubor)) //dokud se nenarazí na konec souboru, budu provádět cyklus načítání do paměti
  {
    $i++; 
    $jmeno[$i]=fgets($soubor);   //prvni radek = načte se jméno
    $email[$i]=fgets($soubor);   // druhy radek = načte se email
    $zprava[$i]=fgets($soubor);  //treti radek = načte se zpráva
    }                            //cyklus pro načítání se ukončí
  fclose($soubor);               //zavřu soubor s texty
  
  $a = $i;                   //do proměnné $a si uložím výsledek z $i (= číslo poslední zprávy, resp. číslo, kolikrát cyklus proběhl)
  $i = 1;                    //$i nastavím na 1
  for ($i = 1; $i == $a; ++$i)    // dokud nebude $i rovno poslednímu číslu ze zprávy, budou se vypisovat další zprávy (=tolikrát, kolikrát cyklus proběhl, tolikrát se vypíše)
  {
    echo "První řádek: $jmeno[$i] <br />";
    echo "Druhý řádek: $email[$i] <br />";
    echo "Druhý řádek: $zprava[$i] <br />";
  }

?>

Vím, že zatím nemám ošetřeno nic (co když v souboru nic není, apod.), ale nemůžu ošetřovat, když mi to nefunguje ani za ideálních podmínek. Pokud by někdo pomohl, budu moc rád - a děkuju!
Ugo
Profil
ř. 14-16 se mi nezdá nicméně změň ř16. na - for ($i = 1; $i != $a; ++$i) nebo "<="
chudst
Profil
Taková ptákovina :) Už to funguje, děkuji!

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: