PDA

Просмотр полной версии : Слепая переменная при подгрузке файла


Ru}{eeZ
17.11.2008, 16:57
Файл в который гружу index.php:

$_GET['p'] = 'new_read';
file_get_contents($site['dir'].'system/main_system.php');
$fp = fopen('../database/news.db', 'a');
fputs($fp, ''.$id2.''."\r\n".''.$_POST['new_them_name'].''."\r\n".''.$_POST['new_them_body'].''."\r\n".''.date('d.m.y').''."\r\n");


main_system.php:

case 'new_read':
$file = file_get_contents($site['dir'].'database/news.db');
preg_match_all('/\[0-9]+\[\/id\]/', $file, $id);
foreach($id as $id2) {
$id2 = str_replace('[id]', '', $id2);
$id2 = str_replace('', '', $id2);
//echo '<pre>'; var_dump($id2);
}


../database/news.db:

1
Бородин бомж
А там
тыры-пыры,
трали-вали...
15-11-2008
2
ЫЫыыЫЫыЫ
Текст всякий темный
14-10-2008

тест
тест
17.11.08

В последний раз id был пустым, т.к. переменную не нашёл


Я хочу получить переменную $id2 из news.db, затем записать её же в следующую новость, естьственно, когда всё получится буду плюсовать по одному...

Notice: Undefined variable: id2 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\xdf\18\admincp\ind ex.php on line 20

п.с. если юзать инклуд - то добавляется в начало сценария, а та часть кода файла index.php находится в нескольких ифах и т.д....

Подскажите пожалуйста в чё может быть проблемма? :(
спасибо

astrologer
17.11.2008, 18:16
Это очень похоже на самописную базу данных на основе придуманного языка разметки. Надеюсь, это не так.

Ru}{eeZ
17.11.2008, 18:19
Это так... но мне нужна помощь) юзать всякие мускули и т.п. не предлагать)

astrologer
17.11.2008, 18:27
Это так... но мне нужна помощь) юзать всякие мускули и т.п. не предлагать) Предлагаю юзать XML.

kalpsik
17.11.2008, 18:38
предлагаю такую логику:
if(!$id2){
ищешь предыдущий;
id2++;
}

да, если не находишь, тогда 0 получается...

Gifts
17.11.2008, 19:05
ТС, простите, но вы пишете что-то очень страшное:

Чем вам не нравится
preg_match_all('#\[id\]([0-9]+)\[/id\]#i',$file,$id);
$id2=array_pop($id[1]);Зачем ненужные foreach, и еще - $id2 - будет массивом, в вашем случае. В моем - будет извлечен последний элемент
Далее, что вы надеетесь получить file_get_contents'ом кроме текста? Или вы считаете что инклуд может быть только в начале скрипта?

Ru}{eeZ
17.11.2008, 19:12
ТС, простите, но вы пишете что-то очень страшное:

Чем вам не нравится
preg_match_all('#\[id\]([0-9]+)\[/id\]#i',$file,$id);
$id2=array_pop($id[1]);Зачем ненужные foreach, и еще - $id2 - будет массивом, в вашем случае.

недодумал)


что вы надеетесь получить file_get_contents'ом кроме текста?


текста кажется хватает)


Или вы считаете что инклуд может быть только в начале скрипта?


а разве нет? :)

-

array_pop() раньше не знал))
а зачем ты ставишь модификатор i? он ведь там не нужен)))

Gifts
17.11.2008, 19:15
Ru}{eeZ ТЕКСТА php скрипта? Заметьте, что переменные вы так не получите, ммм никогда ^^ А только либо ВЫВОД этого скрипта (все echo) или исходный код

http://ru2.php.net/manual/ru/function.include.php - читать вдумчиво пример номер 1

GuD-ok
17.11.2008, 19:17
Не занимайся *ерней юзай XML.

vikseriq
17.11.2008, 19:33
1 есть классная фича - eval()
2 хмл нервов больше потреплет - ради чтения можно взять через регекспы.
3 видал как msini устроены? так тоже на пыхе можно
ЗЫ мускуль рулит

Ru}{eeZ
17.11.2008, 19:57
$_GET['p'] = 'new_read';
include('../system/main_system.php');
//echo '<pre>'; var_dump($id2); echo '</pre>';
$new_them_id = array_pop($id2);
$new_them_id++;
$fp = fopen('../database/news.db', 'a');
fputs($fp, ''.$new_them_id.''."\r\n".''.$_POST['new_them_name'].''."\r\n".''.$_POST['new_them_body'].''."\r\n".''.date('d.m.y').''."\r\n");
fclose($fp);


...