ďťż
Podstrony
|
telcocafeMam 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 :) |
|||
Sitedesign by AltusUmbrae. |