Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kod php
Forum PHP.pl > Forum > Gotowe rozwiązania
d12
Cze mam problem dotyczący księgi gości. Chodzi mi oto że po włączeniu strony pisze mi
Dodaj wpis

Liczba wpisów: 1 <-- i to jest ok. Ale wpisy nie są wyświetlane tylko pisze mi:
"Warning: Failed opening 'dane.txt' for inclusion (include_path='apacheincludes;apachehtdocs;apachehtdocsphpmyadmin') in c:apacheusersksgbook.php on line 41". Ciekawe jest to że księga poprawnie działa na serwie internetowym a na apachu nie chce. Dlaczego tak się dzieje?

Oto kod pliku gbook.php:

[php:1:9672e7b61b]
<html>

<head>

<title>Gbook</title>

<link rel="stylesheet" href="style.css" type="text/css">

<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">

<head>

<body>






<center>
<a href="dodaj_wpis.php">Dodaj wpis</a><br>

<?
$ilosc=0;
$plik=file("dane.txt");
for ($li=0; $li < count($plik); $li++)
{
$ilosc=$ilosc+1;
}

echo "<center>Liczba wpisów: $ilosc</center>";

?>

<br><br>
<?php
include("$dane.txt");
?>


</center>






</body>

</html>

[/php:1:9672e7b61b]
Odrazu mówie posiadam plik dane.txt!
squid
[quote="d12"]
[php:1:4aeadd57c4]
$plik=file("./dane.txt");

[/php:1:4aeadd57c4]
a tak dziala?
maggot
w 38 linij usun znak $

ps.
po co wyczyniasz takie cuda?
[php:1:0776355893]<?php
for ($li=0; $li < count($plik); $li++)
{
$ilosc=$ilosc+1;
}
?>[/php:1:0776355893]

nie latwiej
[php:1:0776355893]<?php
$ilosc = count($plik);
?>[/php:1:0776355893]
mhs
poza tym mozesz taki blad obluzyc:

[php:1:c25d4abf84]<?php
if (file_exists("plik")) {
//dalszy kod, jezeli plik istnieje...
}
else {
echo "Nie mozna w tej chwili dokonac zapisu.";
//tutaj kod wysylajacy maila do Ciebie z powiadomieniem o zaistnialym problemie
}
?>[/php:1:c25d4abf84]
d12
Niestety tylko rada mhs poskutkowała, pisze mi nie można w tej chwili Nie mozna w tej chwili dokonac zapisu. Jednak dalej zastanawia mnie to że księga poprawnie działa na serwerze internetowym.
mhs
Hmm… przedstaw dokladnie jak w tej chwili wyglada Twoj kod programu… moze wtedy cos sie wiecej poradzi…

maggot miał racje jezeli chodzi o 38. linie… i oczywiscie o niepotrzebna petle…

a czy przypadkiem skrypt ktory obsluguje ksiege gosci znajduje sie w tym samym katalogu co plik dane.txt
d12
Pliku style nie podaje bo to nie ma sensu. Wszystkie pliki znajdują się w jednym katalogu. Plik dane.txt zostaje utomatycznie zaktualizowany po dodaniu wpisu do księgi gości. Jesteście w stanie mi pomóc?
mhs
Hmmm… jeżeli chodzi o Twój główny problem to u mnie widzi plik i wszystko jest ok. – nie wiem gdzie może leżeć wina….

Jeżeli chodzi o plik gbook.php to wystarczy, że Twój cały kod zostanie zamieniony na poniższy:

[php:1:925b46f585]<?php
$nazwaPliku = "dane.txt";

if (file_exists($nazwaPliku)) {
$plik = file($nazwaPliku);
echo "<center>Liczba wpisow: ".count($plik)."</center>";
}
else {
echo "Nie można dokonać zapisu.";
}

?>[/php:1:925b46f585]

czy nie ładniej i szybciej?

jeżeli natomiast chodzi o plik dodany.php to szczególnie go nie analizowałem, ale rzuciło mi się kilka rzeczy, które są do poprawy...


0)
w wierszu 27. powinno być chyba addslashes()... zamiast stripslashes()

1)
[php:1:925b46f585]<?php
$wpis=ereg_replace("<","&lt;",$wpis);
$wpis=ereg_replace(">","&gt;",$wpis);
$wpis=ereg_replace("(rn|n|r)", "<br>",$wpis);
?>[/php:1:925b46f585]
poczytaj o funkcjach:
[manual:925b46f585]
htmlspecialchars()
[/manual:925b46f585]

[manual:925b46f585]
nl2br()
[/manual:925b46f585]


2)
te czterdzieści pare linijek w których zamieniasz ikonki pasowało by jakoś puścić w pętlę, gdyż co będzie jeżeli tych ikonek będziesz miał więcej...questionmark.gif możesz wykorzystać do tego tablice...

3)
w pliku dane.txt przechowuj raczej tylko i wyłącznie dane, które wpisali użytkownicy a nie również znaczniki formatujące stronkę...

4)
na stronce głównej, tzn. gbook pojawia się 10 razy tyle wpisów ile zostało dokonanych w księdze gdyż jeden wpis w pliku dane.txt jest zapisany w 10 wierszach...
d12
Dzięki waszej wspólnej pomocy udało mi się znaleźć błąd i go usunąć brakowało znaku ./. Tak nawiasem mówiąc nie ma ktoś z was skryptu na blokowanie wpisu do księgi gości (żeby można było wpisywać się co 24h)?
mhs
[php:1:157d13a5de]<?php
if ($_COOKIE['ksiega'] == true) {
//uzytkownik ten dokonal wpisu do ksiegi gosci...
}
else {
//w przeciwnym wypadku umozliwiasz komus wpis do ksiegi gosci...
//na koniec skryptu wpisujacego dane do ksiegi robisz cos takiego;
setcookie("ksiega", 1, time() + 86400);
}

?>[/php:1:157d13a5de]
d12
Sorka mhs ale ten skrypt na cookie nie działa. Poprostu nie blokuje wpisów. Dlaczego tak się dzieje? Umieszczam go w pliku dodany.php.
mhs
[php:1:52c73f411f]<?php
if ($_COOKIE['ksiega'] != true) {
//tutaj reszte Twojego kodu
if (!file_exists("$plik.txt"))
{
$newfile=fopen("$plik.txt","w+");
fclose($newfile);
}

$read=fopen("$plik.txt", "r+");
$fileread=fread($read, filesize("$plik.txt"));

fclose($read);
$pasek=stripslashes($pasek);
fputs (fopen("$plik.txt", "r+"), "$pasekn$fileread");


setcookie("ksiega", 1, time() + 86400);
}
else {
echo "Wpisales sie juz do ksiegi gosci.";
}?>[/php:1:52c73f411f]

umiesc to na samym poczatku zanim wyswietlisz cokolwiek na stronie...
najpierw dokonaj zapisu i ustaw ciastko a pozniej wyswietl stronke, gdyz wywolanie funkcja setcookie() musi nastapic przez wyslaniem informacji na www
powyzszy kod chyba bedzie poprawny - chyba, gdyz nie przeprowadzalem dokladnych testow

poza tym pocztytaj o tej funkcji i ciasteczkach - to jest proste :!:
d12
Mhs wiem że się powtarzam ale zastosowałem się do wszystkich twoich rad i niestety dalej można się wpisywać ile razy się chce. Możesz sam przetestować!
mhs
ech.... za kazdym razem gdy biore sie za swoj projekt odciagasz mnie od niego... biggrin.gif, ale do rzeczy...
gbook.php :arrow: bez zmian

dodaj wpis :arrow: nizej
[php:1:746d64df6e]<?php
<?
if ($_COOKIE['ksiega'] != 1) {
?>
<html>
<head>
<title>Gbook</title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<head>
<body>

<center>
<form method="post" action="dodany.php" name=form>
<table border="0" cellpadding="1" cellspacing="1" bordercolor="#000000" width="350">

<tr>
<td width="75" align="right">Nick:</td>
<td><input type="text" name="nick" tabindex="1" size="20" style="font-family:
Verdana; font-size: 7pt; width: 200"></td>
<td width="75"></td>
</tr>

<tr>
<td width="75" align="right">E-mail:</td>
<td><input type="text" name="mail" tabindex="2" size="20" style="font-family:
Verdana; font-size: 7pt; width: 200"></td>
<td width="75"></td>
</tr>

<tr>
<td width="75" align="right">WWW: http://</td>
<td><input type="text" name="www" tabindex="3" size="20" style="font-family:
Verdana; font-size: 7pt; width: 200"></td>
<td width="75"></td>
</tr>

<tr>
<td align="center" colspan="3">Twój wpis:</td>
</tr>

<tr>
<td align="center" colspan="3"><textarea name="wpis" tabindex="4" rows="8" cols="60"
style="font-family: Verdana; font-size: 7pt; width: 350"></textarea>

<br>
<a href="java script://" onclick="document.form.wpis.value+='[:emot01:]'"><img
src="emots/01.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot02:]'"><img
src="emots/02.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot03:]'"><img
src="emots/03.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot04:]'"><img
src="emots/04.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot05:]'"><img
src="emots/05.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot06:]'"><img
src="emots/06.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot07:]'"><img
src="emots/07.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot08:]'"><img
src="emots/08.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot09:]'"><img
src="emots/09.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot10:]'"><img
src="emots/10.gif" border=0></a>
<br>
<a href="java script://" onclick="document.form.wpis.value+='[:emot11:]'"><img
src="emots/11.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot12:]'"><img
src="emots/12.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot13:]'"><img
src="emots/13.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot14:]'"><img
src="emots/14.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot15:]'"><img
src="emots/15.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot16:]'"><img
src="emots/16.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot17:]'"><img
src="emots/17.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot18:]'"><img
src="emots/18.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot19:]'"><img
src="emots/19.gif" border=0></a>
<a href="java script://" onclick="document.form.wpis.value+='[:emot20:]'"><img
src="emots/20.gif" border=0></a>
<br>
</td>
</tr>
<tr>
<td width="75"></td>
<td align="center"><input type="submit" value="Dodaj" style="font-family: Verdana;
font-size: 7pt; width: 150"></td>
<td width="75"></td>
</tr>
</table>
</form>
</center>
</body>
</html>
<?
}
else {
echo "Jest Twoj wpis.";
}

?>[/php:1:746d64df6e]

dodany.php :arrow: nizej
[php:1:746d64df6e]<?php
<?
if ($_COOKIE['ksiega'] != 1) {
$data=date("d.m.Y");
$ip=$REMOTE_ADDR;

$wpis=stripslashes($wpis);
$wpis=ereg_replace("<","&lt;",$wpis);
$wpis=ereg_replace(">","&gt;",$wpis);
$wpis=ereg_replace("(rn|n|r)", "<br>",$wpis);

$wpis=str_replace("[:emot01:]","<img src="emots/01.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot02:]","<img src="emots/02.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot03:]","<img src="emots/03.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot04:]","<img src="emots/04.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot05:]","<img src="emots/05.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot06:]","<img src="emots/06.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot07:]","<img src="emots/07.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot08:]","<img src="emots/08.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot09:]","<img src="emots/09.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot10:]","<img src="emots/10.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot11:]","<img src="emots/11.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot12:]","<img src="emots/12.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot13:]","<img src="emots/13.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot14:]","<img src="emots/14.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot15:]","<img src="emots/15.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot16:]","<img src="emots/16.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot17:]","<img src="emots/17.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot18:]","<img src="emots/18.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot19:]","<img src="emots/19.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot20:]","<img src="emots/20.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot21:]","<img src="emots/21.gif" align="absmiddle"
border="0">",$wpis);
$wpis=str_replace("[:emot22:]","<img src="emots/22.gif" align="absmiddle"
border="0">",$wpis);

$pasek="<center><table border="0" cellpadding="1" cellspacing="1"
bordercolor="#000000" width="350"><tr><td width="75"
align="right">Nick:</td><td width="200"><a href="mailto:$mail">$nick</td><td
width="75"></td></tr><tr><td width="75" align="right">WWW:</td><td
width="200"><a href="http://$www" target="_blank">$www</a></td><td
width="75"></td></tr><tr><td width="75" align="right">Data:</td><td
width="200">$data</td><td width="75"></td></tr><tr><td width="75"
align="right">IP:</td><td width="200">$ip</td><td width="75"></td></tr><tr><td
colspan="3" width="350" valign="top"><br>$wpis</td></tr><tr><td colspan="3"
width="350" colspan="2"><hr size="1"></td></tr></table></center>";

$plik="dane";
if (!file_exists("$plik.txt"))
{
$newfile=fopen("$plik.txt","w+");
fclose($newfile);
}

$read=fopen("$plik.txt", "r+");
$fileread=fread($read, filesize("$plik.txt"));

fclose($read);
$pasek=stripslashes($pasek);
fputs (fopen("$plik.txt", "r+"), "$pasekn$fileread");

setcookie("ksiega", 1, time() + 86400);

$komunikat = "$nick, dzięki za dodanie wpisa.<br><br><a href="gbook.php">Wstecz</a>";
}
else {
echo "Dodales wpis.";
}
?>
<html>
<head>
<title>Gbook</title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<head>
<body>
<center>
<?
echo $komunikat;
?>
</center>
</body>
</html>
?>[/php:1:746d64df6e]

zrobione to troche od lopaty, ale chodzi....

aha i jeszcze jedno: to sa wczorajsze pliki bez specjalnych poprawek - tylko dodane ciasteczka....
adwol
Cytat
zrobione to troche od lopaty, ale chodzi....

Faktycznie od łopaty... Trochę krótsza wersja: :wink:
[php:1:f05e6fb709]<?php
if ($_COOKIE['ksiega'] != 1)
{
$data = date("d.m.Y");
$ip = $_SERVER['REMOTE_ADDR'];

$wpis = nl2br(htmlspecialchars(stripslashes($wpis)));

for ($i = 1; $i <= 22; $i++)
$wpis = str_replace(sprintf("[:emot%02d:]", $i), sprintf("<img src="emots/%
02d.gif" align="absmiddle" border="0">", $i), $wpis);

$pasek="<center><table border="0" cellpadding="1" cellspacing="1"
bordercolor="#000000" width="350"><tr><td width="75"
align="right">Nick:</td><td width="200"><a href="mailto:$mail">$nick</t
d><td
width="75"></td></tr><tr><td width="75" align="right">WWW:</td><td
width="200"><a href="http://$www" target="_blank">$www</a></td><td
width="75"></td></tr><tr><td width="75" align="right">Data:</td><td
width="200">$data</td><td width="75"></td></tr><tr><td width="75"
align="right">IP:</td><td width="200">$ip</td><td width="75"></td></tr>
<tr><td
colspan="3" width="350" valign="top"><br>$wpis</td></tr><tr><td colspan
="3"
width="350" colspan="2"><hr size="1"></td></tr></table></center>";

$plik="dane";

if (file_exists("$plik.txt"))
{
$fp = fopen("$plik.txt", "r+");
$fileread = fread($fp, filesize("$plik.txt"));
fseek($fp, 0, SEEK_SET);
}
else
$fp = fopen("$plik.txt", "w");

$pasek = stripslashes($pasek);
fwrite($fp, "$pasekn$fileread");
fclose($fp);

setcookie("ksiega", 1, time() + 86400);
$komunikat = "$nick, dzięki za dodanie wpisa.<br><br><a href="gbook.php">Wst
ecz</a>";
}
else {
$komunikat = "Już dodales wpis.";
}
?>
<html>
<head>
<title>Gbook</title>
<link rel="stylesheet" href="style.css" type="text/css">
<meta http-equiv="Content-Language" content="pl">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2">
<head>
<body>
<center>
<?= $komunikat ?>
</center>
</body>
</html>
[/php:1:f05e6fb709]
mhs
jezeli chodzi o pliki, ktore w poprzednim poscie podalem to oprocz ciastek reszta kodu jest P. d12

ps. sorki, ale mi sie nie chcialo siedziec i poprawiac kodu aby wygladalo to lepiej, krocej i szybciej... wiec od d12 naleza Ci sie BIG podziekowania smile.gif
d12
Jestem 100% pewny że coś jest nie tak z kodem na cookie w dodany.php, ponieważ nie wyświetla mi strony. Z dodaj_wpis.php także był trzeba było usunąć {. Ale dalej jest coś nie tak z cookie w dodany.php
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.