jarmiar
(Jarek21 1992)
4 Lipiec 2007 06:35
#1
witam,
mam taki problem.
otóż funckja touch mi nie chce prawidłowo działać. dane są przesyłane z formularza
Nick: Treść:
i odbieranie skryptem:
<?
$id = $_POST['id'];
$nick = $_POST['nick'];
$tresc_kom = $_POST['tresc_kom'];
$tresc_kom2 = nl2br($tresc_kom);
if(!empty($nick) && !empty($tresc_kom))
{
$plikczek = "komentarze/".$id.".php";
$tworzenie = touch($pliczek);
if(!$tworzenie)
{
echo "Nie udało sie stworzyć";
}
$p_plik = fopen($pliczek, 'r+');
$z_plik = fwrite($p_plik, $tresc_kom2);
if($z_plik)
{
echo "Komentarz został dodany";
}
else
{
echo "Komentarz nie został dodany";
}
}
else
{
}
?>
nie wiem czemu mi nie działa, fwrite() też nie.
proszę o pomoc.
PS. Chmody mam ustawione do katalogu “komentarze” na 0777
BalonPL
(Balon)
4 Lipiec 2007 08:20
#2
Hm, a poczytaj o tym drugim argumencie funkcji fwrite. Z tego co mi wiadomo to r+ oznacza “włączy plik w trybie odczytywania i edycji, bez tworzenia nowego gdy go nie ma”. Radziłbym raczj skorzystać z w lub w+ ;]
Airborn
(Airborn)
4 Lipiec 2007 08:22
#3
samo touch nie tworzy pliku jako takie, ale modyfikuje czas dostępu link , teoretycznie jeżeli plik nie istnieje powinien zostać utworzony, ale to różnie bywa. Może zamień tryb w fopen z r+ na jakiś który próbuje utworzyć plik link
jarmiar zwróć jeszcze uwagę na to, czy masz uprawnienia do tworzenia plików w tym katalogu przez użytkownika, na którym uruchomiony jest serwer WWW.
crew1
(L337 Crew)
4 Lipiec 2007 08:41
#6
A nie lepiej tak:
<?php
$id = $_POST['id'];
$nick = $_POST['nick'];
$tresc_kom = nl2br($_POST['tresc_kom']);
if(empty($nick) || empty($tresc_kom))DIE('wróć i uzupełnij wszystkie dane');
$plik = 'komentarze/'.$id.'.php';
$p_plik = fopen($plik, "w+");
$z_plik = fwrite($p_plik, $tresc_kom);
echo'Komentarz '.($z_plik ? '' : 'nie ').'został dodany';
?>
i radziłbym filtrować POSTY
edit:
ID przesyłane chyba powinno się zmieniać ^^
A z tego co widzę - na sztywno podajesz jedynkę, więc …
jak wyżej pisali koledzy - zajrzyj do manuala: http://www.php.net/manual/pl/function.fopen.php
i spójrz na tryby otwarcia pliku.
jarmiar
(Jarek21 1992)
4 Lipiec 2007 09:36
#7
nie, id używam do zidentyfikowania do jakiego artykułu jest dodany komentarz
Airborn
(Airborn)
4 Lipiec 2007 11:03
#8
ale to i tak nie powinno być wpisywane na sztywno w formularzu, tylko pobierane z id artykułu, chyba, że zamierzasz tworzyć osobny formularz dla każdego artykułu
jarmiar
(Jarek21 1992)
4 Lipiec 2007 12:57
#9
forularz tworzy mi się dynamicznie z panelu administracyjnego i do każdego artykułu jest inne ID.
problem polega na tym że funckja touch mi nie działa a w innych przypadkach tak