ďťż

[php] Sesje, jest już zapisane

       

Podstrony


telcocafe

Mam pewien problem z sesjami w php. Osobiście jeszcze o sesjach nie czytałem i niewiem jak sie ich uzywa, a akurat były mi one potrzebne to kolega na szybkiego podał mi skrypcik. No ale nistety ten skrypt niedziała jak należy ( nie ma zandych errorów, tylko niemozna zapisac zadnej tresci do pliku.). Pewnie są jakies literówki. No i tu sie zwracam do was po pomoc. Czy moglibyscie zobaczyc co jest nie tak ?

Skrypt zapisuje do pliku dane, na jednej stronei o nazwei index.php jest formularz. Potem motoda post dane są przekazywane do zapis.php. No i wałsnie chciałem zeby w zapis.php po odswiezeniu te same dane nie mogły sie znowu zapisac do pliku zapisy.txt.

index.php
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />  <meta http-equiv="Content-Language" content="pl" />  <meta name="Author" content="loop0" />  <meta name="description" content="Szmatagdowa rewolucja - petycja !" />  <meta name="keywords" content="Szmaragdowa rewolucja !" />   <LINK rel="stylesheet" href="style.css" type="text/css" />    <title>Szmaragdowa rewolucja - pertycja !</title>  </head>  <body> <center><font size="6" color="grey">Szmaragdowa rewolucja - petycje !</font></center><br /><br /> TEKST <br /><br /> <b><font color="darkred">Prosze wpisywać się tylko raz !</font></b> <br /><br /> <form action="zapis.php" method="post"> Imie i Nazwisko: <input type="text" name="aaa" size="20" maxlenght="120"> Miejsce zmieszkania: <input type="text" name="miejscowosc" size="20" maxlenght="120"> </form><br /><br /> Lista zapisanych: <br /><br /><br /> <pre> <?php @ $wp = fopen("zapisy.txt", 'a'); if(!$wp) { echo ' WYSTĄPIŁ BŁĄD ZAPISU ! SPROBÓJ PONOWNIE ! '; exit; } $odczyt = readfile("zapisy.txt"); fclose($wp); echo $odczyt; ?> </pre>    </body> </html>            

zapis.php
<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">  <head>  <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" />  <meta http-equiv="Content-Language" content="pl" />  <meta name="Author" content="loop0" />  <meta name="description" content="Szmatagdowa rewolucja - petycja !" /> <!-- <meta name="keywords" content="Szmaragdowa rewolucja !" /> -->   <LINK rel="stylesheet" href="style.css" type="text/css" />    <title>Szmaragdowa rewolucja - pertycja !</title>  </head>  <body> <font size="6" color="red">Prosze nie odświeżać strony !</font> <pre> <?php $aaa = $_POST['aaa']; $miejscowosc = $_POST['miejscowosc']; ?> <?php $czy = $_SESSION['zapisano']; if ($czy) { echo "Już zapisane... !!!"; } else { @ $wp = fopen("zapisy.txt", 'a'); flock($wp, LOCK_SH); if(!$wp) { echo ' WYSTĄPIŁ BŁĄD ZAPISU ! SPROBÓJ PONOWNIE ! '; exit; } else { echo " Dane zostały zapisane ! \n\n "; } $zapis = $aaa.", ".$miejscowosc."\n"; fwrite($wp, $zapis); flock($wp, LOCK_UN); fclose($wp); $_SESSION['zapisano']=1; } $odczyt = readfile("zapisy.txt"); ?> </pre><br /><br /> <a href="link">Powrót</a>   </body> </html>        
Użytkownik neo182 edytował ten post 21 lipiec 2005, 15:45


Jakos za bardzo mi sie nie chciało tego sprawdzać i nie wiem czyt to pomoże ale IMO chyba chodzi o flocki. Spróbuj bez nich i zobacz czy sie zapisuje.<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> <meta http-equiv="Content-Language" content="pl" /> <meta name="Author" content="loop0" /> <meta name="description" content="Szmatagdowa rewolucja - petycja !" /> <!-- <meta name="keywords" content="Szmaragdowa rewolucja !" /> -->  <LINK rel="stylesheet" href="style.css" type="text/css" />   <title>Szmaragdowa rewolucja - pertycja !</title> </head> <body> <font size="6" color="red">Prosze nie odświeżać strony !</font> <pre> <?php $aaa = $_POST['aaa']; $miejscowosc = $_POST['miejscowosc']; ?> <?php $czy = $_SESSION['zapisano']; if ($czy) { echo "Już zapisane... !!!"; } else { @ $wp = fopen("zapisy.txt", 'a'); flock($wp, 1); if(!$wp) { echo ' WYSTĄPIŁ BŁĄD ZAPISU ! SPROBÓJ PONOWNIE ! '; exit; } else { echo " Dane zostały zapisane ! \n\n "; } $zapis = $aaa.", ".$miejscowosc."\n"; flock($wp, 2); fwrite($wp, $zapis); flock($wp, 3); fclose($wp); $_SESSION['zapisano']=1; } $odczyt = readfile("zapisy.txt"); ?> </pre><br /><br /> <a href="link">Powrót</a>  </body> </html>     Zobacz czy to zadziała.
//Teraz musi zadziałać.
Użytkownik dh_maniak edytował ten post 21 lipiec 2005, 19:12
A co złego jest z tymi flockami ?

<?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> <meta http-equiv="Content-Language" content="pl" /> <meta name="Author" content="loop0" /> <meta name="description" content="Szmatagdowa rewolucja - petycja !" /> <meta name="keywords" content="Szmaragdowa rewolucja !" />  <LINK rel="stylesheet" href="style.css" type="text/css" />   <title>Szmaragdowa rewolucja - pertycja !</title> </head> <body> <center><font size="6" color="grey">Szmaragdowa rewolucja - petycje !</font></center><br /><br /> TEKST <br /><br /> <b><font color="darkred">Prosze wpisywać się tylko raz !</font></b> <br /><br /> <form action="zapis.php" method="post"> Imie i Nazwisko: <input type="text" name="aaa" size="20" maxlenght="120"> Miejsce zmieszkania: <input type="text" name="miejscowosc" size="20" maxlenght="120"> </form><br /><br /> Lista zapisanych: <br /><br /><br /> <pre> <?php @ $wp = fopen("zapisy.txt", 'a'); if(!$wp) { echo ' WYSTĄPIŁ BŁĄD ZAPISU ! SPROBÓJ PONOWNIE ! '; exit; } $odczyt = readfile("zapisy.txt"); fclose($wp); echo $odczyt; ?> </pre>   </body> </html>             zapis.php KOD <?php session_start(); ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-type" content="text/html; charset=iso-8859-2" /> <meta http-equiv="Content-Language" content="pl" /> <meta name="Author" content="loop0" /> <meta name="description" content="Szmatagdowa rewolucja - petycja !" /> <!-- <meta name="keywords" content="Szmaragdowa rewolucja !" /> -->  <LINK rel="stylesheet" href="style.css" type="text/css" />   <title>Szmaragdowa rewolucja - pertycja !</title> </head> <body> <font size="6" color="red">Prosze nie odświeżać strony !</font> <pre> <?php $aaa = $_POST['aaa']; $miejscowosc = $_POST['miejscowosc']; ?> <?php $czy = $_SESSION['zapisano']; if ($czy) { echo "Już zapisane... !!!"; } else { @ $wp = fopen("zapisy.txt", 'a'); flock($wp, LOCK_SH); // tu jest blokowany do czytania if(!$wp) { echo ' WYSTĄPIŁ BŁĄD ZAPISU ! SPROBÓJ PONOWNIE ! '; exit; } else { echo " Dane zostały zapisane ! \n\n "; } $zapis = $aaa.", ".$miejscowosc."\n"; //tu powinno byc flock($wp, 2) lub flock($wp, LOCK_EX) żeby odblokować do zapisu fwrite($wp, $zapis); // to nie może się zapisać bo nie zostało odblokowane do zapisu flock($wp, LOCK_UN);//dopiero tu jest odblokowywane do czytania i zapisu fclose($wp); $_SESSION['zapisano']=1; } $odczyt = readfile("zapisy.txt"); ?> </pre><br /><br /> <a href="link">Powrót</a>  </body> </html>  Wstawiłem komentarze przy flockach i fwrite dlaczego jest źle :)

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.