1

Тема: Чому не створює файл?

Привіт програмістам! *YAHOO*  я робив таке:

код

<?php
$i = 1;
while($i <= 10){
    $i++;
    if (!file_exists("42.html")){
        $text = '
            <?php
            require_once"../header.inc.php";

            $sel = "select * from `posts` where id=%27{$i}%27";
            $sel_q = mysqli_query($con,$sel);

            $row = mysqli_fetch_array($sel_q);
            $text = $row["text"];
            echo($text);

            require_once"../footer.inc.php";
            ?>
            ';

        $fp = fopen("content/$i.html", "w");

        fwrite($fp, $text);

        fclose($fp);
    }
}
?>

, на скрипті права 777, чому не створює новий файл і як найкраще описати змінну $text?????
і помилки такі:

Warning: fopen(42.html) [function.fopen]: failed to open stream: Permission denied in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 21

Warning: fwrite(): supplied argument is not a valid stream resource in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 23

Warning: fclose(): supplied argument is not a valid stream resource in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 25

Warning: fopen(42.html) [function.fopen]: failed to open stream: Permission denied in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 21

Warning: fwrite(): supplied argument is not a valid stream resource in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 23

Warning: fclose(): supplied argument is not a valid stream resource in /home/ostabin/domains/danceheads.me/public_html/create_post.php on line 25

(вони з'являться 10 раз, це через while)

Буду вдячний!
Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

2

Re: Чому не створює файл?

Permission denied
на створення в папці прав немає

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі
Подякували: ostap34PHP1

3

Re: Чому не створює файл?

reverse2500 написав:

Permission denied
на створення в папці прав немає

Дякую, допомогло!
Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

4

Re: Чому не створює файл?

і ще питання:
а змінна $text, так і зберігає:

$sel = "select * from `posts` where id=%27{$i}%27";

,а треба щоб замісь $i було число....

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

5

Re: Чому не створює файл?

я колись в РНР робив щоб в " " виводити переміну, але не згадаю що робив чи то були ' '

- Поганому трояну фаєрвол заважає
- Ніколи не програмуйте та не пийте пиво
Якщо ви з першого разу написали програму, в якій немає жодної помилки, повідомте про це системного програмісту: він виправить помилки в компіляторі

6

Re: Чому не створює файл?

ost.bregin2014 написав:

і ще питання:
а змінна $text, так і зберігає:

$sel = "select * from `posts` where id=%27{$i}%27";

,а треба щоб замісь $i було число....

Користуйтесь PDO  :)

Подякували: ostap34PHP1

7

Re: Чому не створює файл?

misha_bondar_2012 написав:
ost.bregin2014 написав:

і ще питання:
а змінна $text, так і зберігає:

$sel = "select * from `posts` where id=%27{$i}%27";

,а треба щоб замісь $i було число....

Користуйтесь PDO  :)

Але навіщо?

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

8

Re: Чому не створює файл?

ost.bregin2014 написав:
misha_bondar_2012 написав:
ost.bregin2014 написав:

і ще питання:
а змінна $text, так і зберігає:

$sel = "select * from `posts` where id=%27{$i}%27";

,а треба щоб замісь $i було число....

Користуйтесь PDO  :)

Але навіщо?

Простіше, безпечніше.

9

Re: Чому не створює файл?

Там точно треба городити батарею з %27 та фігурних дужок — може, самого $i було б достатньо, чи ID у базу вже позаписували з цим страхіттям?

я колись в РНР робив щоб в " " виводити переміну, але не згадаю що робив чи то були ' '

Усередині апострофів підстановка змінних не працює — лише всередині лапок. Проте, змінні завжди можна з'єднувати з рядками через конкатенацію (з допомогою крапок).

py -3 -m pip install git+https://github.com/snoack/python-goto
∩⍴○⌈⍴⍺/∧\∨/⊢○ ⌿⍀⍴⌊
Подякували: ostap34PHP1

10

Re: Чому не створює файл?

misha_bondar_2012 написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Користуйтесь PDO  :)

Але навіщо?

Простіше, безпечніше.

Докази в студію!
Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

11

Re: Чому не створює файл?

ost.bregin2014 написав:
misha_bondar_2012 написав:
ost.bregin2014 написав:

Але навіщо?

Простіше, безпечніше.

Докази в студію!

Докази у гуглі.

12

Re: Чому не створює файл?

misha_bondar_2012 написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Простіше, безпечніше.

Докази в студію!

Докази у гуглі.

гугла в студію!

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

13

Re: Чому не створює файл?

misha_bondar_2012 написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Користуйтесь PDO  :)

Але навіщо?

Простіше, безпечніше.

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

14 Востаннє редагувалося Sensetivity (24.04.2017 00:36:56)

Re: Чому не створює файл?

ost.bregin2014 написав:
misha_bondar_2012 написав:
ost.bregin2014 написав:

Але навіщо?

Простіше, безпечніше.

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!
Перша краща обгортка:
https://github.com/karlpatrickespiritu/ … do-wrapper

Ваш запит, можна записати так:

$posts = DB::i()->fetchRows('SELECT * FROM `posts` WHERE `id` = :id'', [':id' => (int)$i]);

Але ми і далі будемо плакати та їсти кактус у вигляді костиляк з mysql_* функціями та танцювати з лапками

Подякували: ostap34PHP, Monolith, 221VOLT3

15

Re: Чому не створює файл?

Sensetivity написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Простіше, безпечніше.

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!

упс
гугл дав правду:
Багато серверів баз даних підтримують можливість відправки параметризованих запитів (підготовлені вирази). При цьому параметри зовнішнього походження відправляються на сервер окремо від самого запиту або автоматично екрануються клієнтською бібліотекою. Для цього використовують

на Delphi — властивість TQuery.Params;
на Perl — через DBI::quote або DBI::prepare;
на Java — через клас PreparedStatement;
на C# — властивість SqlCommand.Parameters;
на PHP — MySQLi (при роботі з MySQL), PDO.

Прихований текст
користувач 221VOLT! чуєте?

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
Подякували: 221VOLT1

16

Re: Чому не створює файл?

ost.bregin2014 написав:
Sensetivity написав:
ost.bregin2014 написав:

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!

упс
гугл дав правду:
Багато серверів баз даних підтримують можливість відправки параметризованих запитів (підготовлені вирази). При цьому параметри зовнішнього походження відправляються на сервер окремо від самого запиту або автоматично екрануються клієнтською бібліотекою. Для цього використовують

на Delphi — властивість TQuery.Params;
на Perl — через DBI::quote або DBI::prepare;
на Java — через клас PreparedStatement;
на C# — властивість SqlCommand.Parameters;
на PHP — MySQLi (при роботі з MySQL), PDO.

Прихований текст
користувач 221VOLT! чуєте?

І що не так?

Подякували: ostap34PHP1

17

Re: Чому не створює файл?

Прихований текст

Sensetivity написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Простіше, безпечніше.

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!
Перша краща обгортка:
https://github.com/karlpatrickespiritu/ … do-wrapper

Ваш запит, можна записати так:

$posts = DB::i()->fetchRows('SELECT * FROM `posts` WHERE `id` = :id'', [':id' => 27]);

Але ми і далі будемо плакати та їсти кактус у вигляді костиляк з mysql_* функціями та танцювати з лапками

ШКОЛЯРІ ТЕЖ ЛЮДИ!

P.S раз я тут, то я на цьому форумі, значить щось корисне я таки пізнаю, а не сиджу на місці, не топчуся попід річку! як всі інші школярі!
а за кактус, то вже вирішено, і зараз все робоче......

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

18

Re: Чому не створює файл?

Sensetivity написав:
ost.bregin2014 написав:
Sensetivity написав:

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!

упс
гугл дав правду:
Багато серверів баз даних підтримують можливість відправки параметризованих запитів (підготовлені вирази). При цьому параметри зовнішнього походження відправляються на сервер окремо від самого запиту або автоматично екрануються клієнтською бібліотекою. Для цього використовують

на Delphi — властивість TQuery.Params;
на Perl — через DBI::quote або DBI::prepare;
на Java — через клас PreparedStatement;
на C# — властивість SqlCommand.Parameters;
на PHP — MySQLi (при роботі з MySQL), PDO.

Прихований текст
користувач 221VOLT! чуєте?

І що не так?

все ок, був неправий, всі помиляються  :)

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014

19

Re: Чому не створює файл?

Прихований текст

Sensetivity написав:
ost.bregin2014 написав:
misha_bondar_2012 написав:

Простіше, безпечніше.

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!
Перша краща обгортка:
https://github.com/karlpatrickespiritu/ … do-wrapper

Ваш запит, можна записати так:

$posts = DB::i()->fetchRows('SELECT * FROM `posts` WHERE `id` = :id'', [':id' => 27]);

Але ми і далі будемо плакати та їсти кактус у вигляді костиляк з mysql_* функціями та танцювати з лапками

я вже давно перейшов на mysqli_*

Програмуй! або запрограмують тебе!
Мій старий нік: ost.bregin2014
Подякували: 221VOLT1

20

Re: Чому не створює файл?

ost.bregin2014 написав:
Прихований текст

Sensetivity написав:
ost.bregin2014 написав:

А от про безпеку не вірю, і буду здивований, якщо дійсно так

Звісно, мільйони програмістів не знаю, що роблять. Лише школяр з Файного міста знає істину!
Перша краща обгортка:
https://github.com/karlpatrickespiritu/ … do-wrapper

Ваш запит, можна записати так:

$posts = DB::i()->fetchRows('SELECT * FROM `posts` WHERE `id` = :id'', [':id' => 27]);

Але ми і далі будемо плакати та їсти кактус у вигляді костиляк з mysql_* функціями та танцювати з лапками

ШКОЛЯРІ ТЕЖ ЛЮДИ!

P.S раз я тут, то я на цьому форумі, значить щось корисне я таки пізнаю, а не сиджу на місці, не топчуся попід річку! як всі інші школярі!
а за кактус, то вже вирішено, і зараз все робоче......

Не люди.
У вас одні і ті ж питання з сирими sql записати і варіаціями проблеми: синтаксична помилка, пропущені лапки, запити до АРІ/збереження в циклі.
Зрозумійте. Чим швидше ви навчитесь працювати високорівневими інструментами тим краще ж для вас.
Час на вивчення відіб'ється сторицею. І замість випалювання очей в пошуках проґавлених лапок ви зможете думати над логікою.