Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: Программирование на PHP

  Все выпуски  

RusFAQ.ru: Программирование на PHP


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на PHP

Выпуск № 108
от 21.02.2004, 12:00

Администратор:
Имя: Калашников О.А.
URL: Информационный ресурс
ICQ: 68951340
Россия, Москва
О рассылке:
Задано вопросов: 177
Отправлено ответов: 287
Активность: 162.1 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Foamplast
Статус: Доверительный
Общий рейтинг: 167.56
[Подробней >>]
Licvidator
Статус: Профессиональный
Общий рейтинг: 106.46
URL: PC Info
[Подробней >>]
xghost
Статус: Начальный
Общий рейтинг: 143.75
[Подробней >>]
 
samum2000
Статус: Опытный
Общий рейтинг: 124.62
[Подробней >>]
Lot
Статус: Профессиональный
Общий рейтинг: 113.16
[Подробней >>]
homer
Статус: Начальный
Общий рейтинг: 125
[Подробней >>]
 
Gibbel
Статус: Профессиональный
Общий рейтинг: 105.91
URL: Savage Metal Club - жизнь в стиле рок-н-ролл
Телефон: +7 901 710 3146
[Подробней >>]
NeiTrinO
Статус: Опытный
Общий рейтинг: 123.44
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 166. Добрый день уважаемые эксперты. Хочу поблагодарить всех экспертов откликнувшихся на мой предыдущий в... (ответов: 4)
Вопрос № 167. Здравствуйте, мне необходимо создать таблицу по параметрам, которые указаны в приложении. Я пользуюс... (ответов: 2)
Вопрос № 168. Здравствуйте, в скрипте администрирования новостей при попытке создать нового админа скрипт выдает, ... (ответов: 3)
Вопрос № 169. Здравствуйте! У меня следующая проблема. Поставил XP, затем программу Dreamweaver MX. Появилась про... (ответов: 1)
Вопрос № 170. Здравствуйте! Поставил на XP apache 2.0.48 PHP 5.0.0b4 Все работает, но никак не могу заставить скри... (ответов: 6)
Вопрос № 171. Уважаемые эксперты у меня вопрос. Я уже задавал подобный вопрос и хочу сказать спасибо samum2000 за ... (ответов: 2)
Вопрос № 173. Здравствуйте, мне необходимо выставить права доступа CHMOD для файлов на сервере с помощью Windows C... (ответов: 3)

Вопросов: 7, ответов: 21


 Вопрос № 166

Добрый день уважаемые эксперты.
Хочу поблагодарить всех экспертов откликнувшихся на мой предыдущий вопрос, в особенности хочется поблагодарить эксперта Licvidator за доступные объяснения.
У меня есть к Вам два вопроса и был бы очень признателен если бы Вы дали ответы на них.
1). С помощью Java Script создано новое окно в котором находится некая информация. При клике на кнопке этой формы вызывается функция PHP (или Java Script) которая проверяет содержимое полей созданной формы (имя, e-mail …) и в случае успешной проверки, с помощью PHP сохраняла эту информацию в файл который бы размещался на сервере (file.html). В случае повтора описанных действий новые данные должны дописываться в файл.
2) Как на PHP записать (дописать) в файл информацию с формы и как ее прочесть.
Буду очень признателен всем откликнувшимся.
С уважением Mike
PS Если можна подоступней



Вопрос отправлен: 17.02.2004, 12:07
Отправитель: Mike (ttttt3000@hotbox.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Добрый день, Mike!
1. Дописать
Серверный PHP-сценарий:
($newdata - данные формы, передаются браузером)
$fp = fopen("myfile.dat","a+");
fwrite($fp, $newdata);
fclose($fp);
2. Прочитать
$readedstring = join ("", file($filename));


Ответ отправлен: 18.02.2004, 02:27
Отправитель: Foamplast


Отвечает Licvidator

Здравствуйте, Mike!
Запись значения переменной $text (присвойте ей содержимое Ваших полей) в файл $filename:

<?
$filename="file.html"; // имя файла
$fp=fopen($filename,"a");// открываем файл для записи
fputs($fp, $text);// собственно запись
fclose($fp);// закрываем файл
?>

Примечание: флаг "а" для функции fopen открывает файл для записи и помещает указатель на конец файла. Если файл не существует, создается новый файл.

Чтение из файла (в переменной $str будет содержимое файла):

<?
$filename="file.html";// имя файла
$r=fopen($filename,"r");// открываем файл для чтения
$str=fread($r, filesize($filename));// собственно чтение
fclose($r);// закрываем файл
?>

Примечание: флаг "r" для функции fopen открывает файл для чтения и помещает указатель на начало файла.

PS Подробнее об этих функциях и флагах читайте в документации на PHP.

Ответ отправлен: 17.02.2004, 21:50
Отправитель: Licvidator


Отвечает xghost

Здравствуйте, Mike!
1. Открывай файл в режиме дозаписи. Например
$file = fopen("file.txt", "a");
2. Сходи на сайт myphp.net.ru.


Ответ отправлен: 18.02.2004, 07:33
Отправитель: xghost


Отвечает samum2000

Добрый день, Mike!
1. В чем заключается вопрос?
2.
<?
$fp = fopen("info.txt", "a+"); //открываем для добавления записей в конец файла и для чтения файла. Указатель в конце файла.
fputs($fp, "some data from form"); //записываем данные

rewind($fp); //идем в начало файла
while (!feof($fp))
{
echo fgets($fp);
}
?>

Ответ отправлен: 18.02.2004, 12:13
Отправитель: samum2000


 Вопрос № 167

Здравствуйте, мне необходимо создать таблицу по параметрам, которые указаны в приложении. Я пользуюсь phpMyAdmin. В целом все понятно, но как ввести эти строки:
1. date datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
2. KEY id (id),
3. KEY id_2 (id)
В первой строке мне неясно, как ввести '0000-00-00 00:00:00'
Во второй: id (id)
В третьей: id_2 (id)?


Приложение:


Вопрос отправлен: 17.02.2004, 16:01
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Доброе время суток, Дмитрий!
А в чем конкретно неясность?
Как на клавиатуре набрать '0000-00-00 00:00:00'?
Уточни, я не понял, в чём затруднение.


Ответ отправлен: 18.02.2004, 02:31
Отправитель: Foamplast


Отвечает xghost

Ноуаепъпаяв Ачъ, Дкупоух!
Бпмюь мъмюм ле нчоупщъз, номъпм ъмсочлу ыпмп цчномъ а рчхй ъ очъэуоелуек .sql. Ч а phpmyadmin а лятлмх ЮД аьюеоу цчийчдия SQL уцчдчх укз ъамежм рчхйч.
Дч, кле ешT ле мбелщ нмлзпль нмъйедлуу ъпомиу аъеждч дякчй, бпм ийвб пчюйуфь цчдчTпщъз мдул очц ъ нмкмшщв PRIMARY KEY.
Нмич!

Ответ отправлен: 18.02.2004, 07:42
Отправитель: xghost


 Вопрос № 168

Здравствуйте, в скрипте администрирования новостей при попытке создать нового админа скрипт выдает, что у меня нет прав записи в файл ****.dat. Права доступа к файлам скрипта (CHMOD) у меня есть. Каким образомя могу разрешить доступ, как использовать код доступа к файлам?



Вопрос отправлен: 17.02.2004, 17:06
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Здравствуйте, Дмитрий!
"Права доступа к файлам СКРИПТА у меня есть."
Тебе говорят, что нет прав доступа к ****.dat.
Меняй права на ****.dat.
Сделать это можно по-разному.
Например, если у тебя FTP-доступ есть,
то Windows Comander позволит выставить права
(есть такой пункт в меню)
Если нет FTP - пиши что у тебя есть, подскажем.

Ответ отправлен: 18.02.2004, 02:35
Отправитель: Foamplast


Отвечает xghost

Ноуаепъпаяв Ачъ, Дкупоух!
Кмтеп юьпщ ъиоунп цчняъичепъз ле ъ ачэуку ночачку, ч ъночачку чнчбч? Пмждч нмномюяхпе уцкелупщ ночач лч юмйщэуе, кмтеп нмкмтеп, смпз ъехбчъ ночипубеъиу аъе ъеоаеоч цчняъичвп ъиоунпь ъ ночачку нмйщцмачпейз. Лм нмпмк ле цчюядпе уцкелупщ ночач.
Нмич.

Ответ отправлен: 18.02.2004, 07:47
Отправитель: xghost


Отвечает samum2000

Добрый день, Дмитрий!
Вы должны разрешить всем запись в этот файл (установить значения в 766).

Ответ отправлен: 18.02.2004, 12:13
Отправитель: samum2000


 Вопрос № 169

Здравствуйте!
У меня следующая проблема.
Поставил XP, затем программу Dreamweaver MX.
Появилась проблема с шрифтом, а в частности в файлах PHP появляются разные каракули при начале писания русским языком. Я уже во всех настройках самой проги поменял на кириллицу, но она так и не пишет. Если файл с разрешением HTML, то такой проблемы не возникает, программа нормально распознаёт русский.



Вопрос отправлен: 17.02.2004, 23:20
Отправитель: Alexey

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Добрый день, Alexey!
Клёвая программа Dreamweaver MX!
А я пользуюсь Aditor, это покруче.
Он не только в *.html кирилицей пишет,
но и в *.php, и в *.css

Ответ отправлен: 18.02.2004, 02:49
Отправитель: Foamplast


 Вопрос № 170

Здравствуйте!
Поставил на XP apache 2.0.48
PHP 5.0.0b4
Все работает, но никак не могу заставить скрипты что-либо передавать по Get и Post из форм.
Даже ввожу просто в строке после ? какую-либо переменную, к примеру http://pupkin.ru/index.php?id=name, но скрипт ее в этом файле все равно не видит.
В чем дело?



Вопрос отправлен: 18.02.2004, 02:26
Отправитель: Sergey

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Добрый день, Sergey!
Скорее всего, дело в том, как ты хочешь эту переменную увидеть. Если в твоём примере ты пишешь в сценарии $id, то необходимо, чтобы переменная настройки PHP register_globals
была равна on. Это можно проверить написав в скрипте print phpinfo();
Если она выключена, то к переменной необходимо обращаться как $HTTP_POST_VARS["id"] (для метода POST).
Когда какая-нибудь дребедень с переменными происходит,
пользуйся print_r(get_defined_vars()); (информация выдаётся как простой текст!). Это поможет определить, какие переменные видимы и каким образом.

Приложение:

Ответ отправлен: 18.02.2004, 03:16
Отправитель: Foamplast


Отвечает Lot

Здравствуйте, Sergey!
смотри файл php.ini
Там есть переменная "register_globals = On" помоему так должно быть.

Ответ отправлен: 20.02.2004, 13:25
Отправитель: Lot


Отвечает homer

Доброе время суток, Sergey!
А как ты их принимаешь?
поробуй использовать $_POST и $_GET массивы
$id=$_GET["id"]

Ответ отправлен: 18.02.2004, 09:32
Отправитель: homer


Отвечает Gibbel

Приветствую Вас, Sergey!
PHP 5 находиться в стадии бета-тестирования и в нем могут быть ошибки. Замени на PHP 4.3.4.

Ответ отправлен: 18.02.2004, 11:11
Отправитель: Gibbel


Отвечает samum2000

Приветствую Вас, Sergey!
Проблема в настройке PHP. Сам столько нервов потратил, пока нашел эту штуку. В в файле php.ini (из папки windows), в разделе DATA HANDLING надо написать/переписать/раскомментировать следующее
variables_order = "EGPCS"
register_globals = On
По-умолчанию это закрыто из соображений безопастности вашего скрипта. Я вам тоже советую использовать глобальные переменные $HTTP_POST_VARS[] и $HTTP_GET_VARS[].

Ответ отправлен: 18.02.2004, 12:14
Отправитель: samum2000


Отвечает NeiTrinO

Добрый день, Sergey!
а как Вы ее оттуда "достаете"?
Надо так... $_GET["id"]


Ответ отправлен: 18.02.2004, 19:53
Отправитель: NeiTrinO


 Вопрос № 171

Уважаемые эксперты у меня вопрос. Я уже задавал подобный вопрос и хочу сказать спасибо samum2000 за ответ, но этот вопрос возник снова :
Папка сканируется и отображается список файлов:
$begin = "files" #папка с файлами
$void=0;
$dirct=$begin;
$hdl=opendir($dirct);
while ($file = readdir($hdl))
{
if (($file!="..")&& ($file!="."))
{
Также каждый элемент списка файлов выводится в виде ссылок:
Echo “”.file.””;
$void++;
}
}


Ниже Switch на который указана ссылка :
Switch
{
case "0_0_0":
$handle1 = fopen ("1.txt", "r");
while (!feof ($handle1)) {
$buffer = fgetss($handle1, 4096);

}
fclose ($handle1);
echo ".$buffer.";
}
?>
Вопрос : А если у меня не один файл("1.txt"), а несколько с разными именами. Что нужно сделать чтобы при нажатии на какую нибудь ссылку списка файлов отображалось содержимое этого файла ?
Например : Есть список ссылок 1. aaa.txt
2. bbb.tct
3. ccc.txt
При нажатии например на bbb.txt. отображалось содержимое файла bbb.txt из папки "files"
P.S. Количество и названия файлов самые разные, так что напрямую указывать названия файлов здесь не получится.
Заранее спасибо. Игорь.



Вопрос отправлен: 18.02.2004, 03:06
Отправитель: Игорь

[Следующий вопрос >>] [Список вопросов]

Отвечает Foamplast

Приветствую Вас, Игорь!
А почему не получится указывать напрямую?
(см. приложение)

Приложение:

Ответ отправлен: 18.02.2004, 03:25
Отправитель: Foamplast


Отвечает samum2000

Добрый день, Игорь!
Я не совсем понял, зачем тебе понадобился switch. И чем, кроме названия папки, этот вопрос отличается от предыдущего? Возможно ты что-то подразумеваешь, но не пишешь, поэтому и ответы получаются не совсем точными. На всякий случай я объясню, что делает скрипт из прошлого ответа.
if (empty($name)) //в этом месте проверяем что было передано скрипту...
{ //... если ничего ($name будет пустой), то надо отобразить список файлов
$i = 0;
$d="files"; //это название папки, из которой берем файлы.
$handle = opendir($d); //стандартные действия по просмотру папки
while($file = readdir($handle))
{
if ($file != '.' && $file != '..')
{
$func[$i] = $file; //формируем массив названий файлов с функциями
$i++;
}
}
sort ($func); //сортируем массив

//теперь отобразим все ссылочки
for ($q=0; $q<=$i;$q++)
{
echo "<a href='?name=".$d.$func[$q]."'>".$func[$q]."</a><br>";
//обрати внимание на то, что вместе с именем файла указываем путь к нему (.$d.$func[$q].)
//иначе мы не сможем прочитать файл (скрипт будет искать его в текущей папке)
}
}
else //если же переменная $name содержит что-то, то это имя файла, который мы собираемся открыть
{
echo implode("",file($name));
//строка echo implode("",file($name)); выведет содержимое файла безо всяких там циклов, fgets и т.п.
}
Если хочешь, чтобы файл открывался в другом окне, то измени ссылки. Вроде все. Если чего-то не хватает, напиши подробнее что хочешь получить.

Ответ отправлен: 20.02.2004, 11:11
Отправитель: samum2000


 Вопрос № 173

Здравствуйте, мне необходимо выставить права доступа CHMOD для файлов на сервере с помощью Windows Commander. Мне необходимо выставить права со значениями 660 и 770, но в Коммандере в атрибутах есть три группы чекбоксов: owner, group и world (other), в каждой из которых есть три поля: read, write, execute. Каким образом мне надо поставить "галочки", чтобы эти значения сооствествовали 660 и 770?



Вопрос отправлен: 18.02.2004, 10:02
Отправитель: Дмитрий

[Следующий вопрос >>] [Список вопросов]

Отвечает samum2000

Добрый день, Дмитрий!
660:
owner - read, write
group - read, write
world
770:
owner - read, write, execute
group - read, write, execute
world

Ответ отправлен: 18.02.2004, 12:19
Отправитель: samum2000


Отвечает NeiTrinO

Приветствую Вас, Дмитрий!
цитата с сайта http://hosthome.ru
- 200 (для этого отметьте первую галочку в первом столбце, при этом файл или папка будут Вам доступны только для чтения. Чаще всего такой подход применим к текстовым файлам, чтобы обезопасить себя от его изменения или удаления. Скрипт с такими правами работать не будет).
- 220 (для этого отметьте вторую галочку в первом и втором столбце, при этом файл или папка будут доступны Вам и вашей группе только для записи. Скрипт с такими правами работать не будет).
- 440 (для этого отметьте первую галочку в первом столбце и первую во втором, при этом файл или папка будут доступны Вам и Вашей группе только для чтения. Чаще всего такой подход применим к текстовым файлам, чтобы обезопасить себя от его изменения или удаления. Скрипт с такими правами работать не будет).
- 500 (для этого отметьте первую и третью галочки в первом столбце , при этом файл или папка будут доступны Вам не только для чтения, но и для выполнеия. Скрипт с такими правами будет работать, это самый безопасный способ исполнения скриптов).
- 550 (для этого отметьте первую и третью галочки в первом и втором столбце , при этом файл или папка будут доступны Вам и Вашей группе не только для чтения, но и для выполнеия. Скрипт с такими правами будет работать, однако это небезопасный способ исполнения скриптов).
- 600 (для этого отметьте первую и вторую галочки в первом столбце, при этом файл или папка будут Вам доступны не только для чтения, но и для перезаписи. Скрипт с такими правами работать не будет).
- 660 (для этого отметьте первую и вторую галочки в первом столбце, и первую и вторую во втором столбце, при этом файл или папка будут доступны Вам и Вашей группе не только для чтения, но и для перезаписи. Скрипт с такими правами работать не будет).
- 700 (для этого отметьте первую, вторую и третью галочки в первом столбце, при этом файл или папка будут Вам доступны не только для чтения, но и для перезаписи. Скрипт с такими правами будет работать).
- 740 (для этого отметьте первую, вторую и третью галочки в первом столбце, и первую во втором столбце, при этом файл или папка будут доступны Вам не только для чтения, но и для перезаписи. При этом члены Вашей группы смогут также его прочесть. Скрипт с такими правами будет работать, однако это небезопасный способ исполнения скриптов).
- 760 (для этого отметьте первую, вторую и третью галочки в первом столбце, и первую и вторую во втором, при этом файл или папка будут доступны Вам не только для чтения, но и для перезаписи. При этом члены Вашей группы смогут также его прочесть и презаписать. Скрипт с такими правами будет работать, однако это небезопасный способ исполнения скриптов).
- 770 (для этого отметьте первую, вторую и третью галочки в первом столбце, и первую, вторую и третью во втором столбце, при этом файл или папка будут доступны Вам не только для чтения, но и для перезаписи. При этом члены Вашей группы смогут также его прочесть, презаписать и выполнять. Скрипт с такими правами будет работать, однако это небезопасный способ исполнения скриптов).


Ответ отправлен: 18.02.2004, 19:57
Отправитель: NeiTrinO


Отвечает Foamplast

Приветствую Вас, Дмитрий!
660 - owner: read & write; group: read & write; world: ничего
770 - owner: read & write & execute; group: read & write and execute; world: ничего.
Дело в том, что права доступа представляются отдельными битами:
0400 - право на чтение для владельца
0200 - право на запись для владельца
0100 - право на запуск для владельца
0040 - право на чтение для группы
0020 - право на запись для группы
0010 - право на запуск для группы
0004 - право на чтение для всех
0002 - право на запись для всех
0001 - право на запуск для всех
Под группой понимается группа, в которую входит владелец.
Таким образом 660 - это 6 для владельца, 6 для группы и 0 для других. А 6 - это, как известно, 4+2.


Ответ отправлен: 19.02.2004, 01:54
Отправитель: Foamplast



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (24)
C / C++ (16)
Perl (3)
Builder / Delphi (19)
Pascal (20)
Basic / VBA (7)
Java / JavaScript (3)
PHP (13)
Криптография (6)
WinAPI (11)
Радиоэлектроника (7)
Пользователю
Windows 95/98/Me (38)
Windows NT/2000/XP (53)
"Железо" (33)
Поиск информации (14)
Администратору
Windows NT/2000/XP (28)
Linux / Unix (9)
Юристу
Гражданское право (16)
Семейное право (11)
Трудовое право (12)
КоАП (10)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2004 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное