Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Создание файла!
 
 автор: sedek   (22.11.2004 в 14:42)   письмо автору
 
 

Помогите пожалуйста!
Почему у меня когда скрипт получив данные если не находит того файла куда он должен записать данные выдаёт ошибку но файл создаёт нельзяли это делать молча!
и подскажите где у меня ошибка он если не получив данных в $_GET['param1'] должен прочитать и вывести данные из файла а он не выводит!
<?php
 header
("Content-Type: text/plain");
include 
"menu.php";
if(isset(
$_GET['param1']))
if(isset(
$_GET['nick']))
if(isset(
$_GET['master']))
$_GET['param1'] = stripslashes($_GET['param1']);
$nick $_GET['nick'];
$master $_GET['master'];
$param substr($_GET['param1'],4);
$add "$master";
$fp file($add);
$vsego count($fp);
$wiew "<ems:br><encode>master $master.pic</encode>-Смотреть Каталог.";
$dalee "<ems:br><encode>master $master.pic</encode>-Дальше.";
      if(
preg_match("|^add$|i"substr($_GET['param1'],0,3)) && $param == "")
  {
    echo 
"Вы ничего не добавили!!!".$menu[$rnd];
    exit();
  }
 else if (!
preg_match("|^<ems:picture[^>]*>$|i"$param) && preg_match("|^add$|i"substr($_GET['param1'],0,3)))
  {
    echo 
"Добавить можно только картинку!!!".$menu[$rnd];
    exit();
  }
  
$tex "Добавил: ".$_GET['nick'].">".$param." Всего:".$vsego.$wiew.$menu[$rnd];
      if(
preg_match("|^add$|i"substr($_GET['param1'],0,3)))
  {
    
$filepict "$master";
    
$fd fopen($filepict"a");
    
fwrite($fd,"Добавил: ".$_GET['nick'].": ".$param."\r\n");
    
fclose($fd);
    echo 
"$tex";
    exit();
  }
   if(
$param == "")
  {
  
$help "<ems:br><encode>master xchat.pichelp</encode>-Как добавить.";
$baza "$master";
$fp file($baza);
$filename "$master.count";
$file fopen($filename"r");
$index fread($filefilesize($filename));
fclose($file);
$pos = (int)$index 1;
if(
$pos>count($fp)) $pos 1;
$fp[$pos] = str_replace("\r\n","",$fp[$pos]);
echo 
$fp[$pos].$dalee.$help.$menu[$rnd];
$file fopen($filename"w");
fwrite($file,$pos);
fclose($file);
}

?>

   
 
 автор: glsv (Дизайнер)   (22.11.2004 в 22:26)   письмо автору
 
   для: sedek   (22.11.2004 в 14:42)
 

Ругается?
А может быть он ругается вот на этот участок кода

<?
$filename 
"$master.count"
$file fopen($filename"r"); 
$index fread($filefilesize($filename)); 
fclose($file); 
?>


Насколько я понял, файл в это время может быть не создан.
А записываете Вы его несколькими строками ниже

<?
$file 
fopen($filename"w"); 
fwrite($file,$pos); 
fclose($file); 
?>

   
 
 автор: sedek   (23.11.2004 в 01:18)   письмо автору
 
   для: glsv (Дизайнер)   (22.11.2004 в 22:26)
 

сначала тут
$filepict = "$master";
$fd = fopen($filepict, "a");
fwrite($fd,"Добавил: ".$_GET['nick'].": ".$param."\r\n");
fclose($fd);
а потом и там!
онже всёравно создаёт файл почему он пишет что нельзя открыть файл и нет такого файла и как это можно исправить?

   
 
 автор: glsv (Дизайнер)   (23.11.2004 в 02:40)   письмо автору
 
   для: sedek   (23.11.2004 в 01:18)
 

Странно, конечно, что он так пишет... Не должен бы.
Чтобы подавить вывод ошибок поставьте @ перед вызовом функции
$fd = @fopen($filepict, "a"); 

   
 
 автор: sedek   (26.11.2004 в 22:20)   письмо автору
 
   для: glsv (Дизайнер)   (23.11.2004 в 02:40)
 

Подскажите plz мой скрипт создаёт файл и заносит в него данные мне надо чтобы если такойфайл существует то он не перезаписывал его а выводил сообщение что такой файл существует!
<?php
header
("Content-Type: text/plain");
if(isset(
$_GET['param1']))
if(isset(
$_GET['id']))
  
$_GET['param1'] = stripslashes($_GET['param1']);
  
$master $_GET['param1'];
  
$id $_GET['id'];
  
$filename "ch/boss.$master.txt";
  
$fd = @fopen($filename"a");
  @
fwrite($fd,$id);
  @
fclose($fd);
?>

   
 
 автор: cheops   (26.11.2004 в 22:38)   письмо автору
 
   для: sedek   (26.11.2004 в 22:20)
 

Можно воспользоваться функцией file_exists()
<?php 
header
("Content-Type: text/plain"); 
if(isset(
$_GET['param1'])) 
if(isset(
$_GET['id'])) 
  
$_GET['param1'] = stripslashes($_GET['param1']); 
  
$master $_GET['param1']; 
  
$id $_GET['id']; 
  
$filename "ch/boss.$master.txt"
  if(!
file_exists($filename))
  {
    
$fd = @fopen($filename"a"); 
    @
fwrite($fd,$id); 
    @
fclose($fd); 
  }
  else
  {
    echo 
"Поздравляем! Такой файл уже существует!";
  }
?>


http://www.softtime.ru/dic/id_dic=173&id_group=6

   
 
 автор: sedek   (27.11.2004 в 01:55)   письмо автору
 
   для: cheops   (26.11.2004 в 22:38)
 

Вот ещё! Замучился уже!
во вложении!
Скрипт должен если поступит команда ADD то то что после команды записать в файл и вывести сообщение а если не поступит команды то просмотреть строку из того файла куда он добавляет!
он и не создаёт файлы и вообще нихрена не делает!

   
 
 автор: cheops   (27.11.2004 в 11:34)   письмо автору
 
   для: sedek   (27.11.2004 в 01:55)
 

С каждой ли командой к скрипту поступает параметр $_GET['master'] - получается так, что если этого параметра нет - fopen пытается открыть пустой файл.

   
 
 автор: sedek   (27.11.2004 в 13:34)   письмо автору
 
   для: cheops   (27.11.2004 в 11:34)
 

параметр мастер есть всегда! он ставится постоянно в url http://mydomain.ru/ch.php?param1=%*%&nick=%nick%&master=master

   
 
 автор: cheops   (27.11.2004 в 13:50)   письмо автору
 
   для: sedek   (27.11.2004 в 13:34)
 

Я сейчас убегаю... вечером обязательно отпишусь...

   
 
 автор: cheops   (27.11.2004 в 22:02)   письмо автору
 
   для: sedek   (27.11.2004 в 01:55)
 

Хм... поместил в начале файла строки
<?php
  $_GET
['param1'] = "ADD <ems:picture >";
  
$_GET['master'] = "master";
?>

Сразу создалось два файла
master
master.count

Если в параметре $_GET['param1'] команды ADD не присутствует, то переменная $index, в которую помещается содержимое master.count принимает значение 1 (что в общем и в файле)... Так должно работать или нет?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования