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)

Буду вдячний!

2

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

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

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

3

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

reverse2500 написав:

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

Дякую, допомогло!

4

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

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

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

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

5

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

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

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  :)

Але навіщо?

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 у базу вже позаписували з цим страхіттям?

reverse2500 написав:

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

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

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

10

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

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

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

Але навіщо?

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

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

11

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

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

Але навіщо?

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

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

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

12

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

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

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

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

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

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

13

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

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

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

Але навіщо?

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

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

14 Востаннє редагувалося Sensetivity (23.04.2017 23: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! чуєте?

Подякували: 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 Востаннє редагувалося ostap34PHP (30.09.2019 23:39:02)

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_* функціями та танцювати з лапками

del

18

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

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

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

упс

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

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

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

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

І що не так?

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

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_*

Подякували: 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 записати і варіаціями проблеми: синтаксична помилка, пропущені лапки, запити до АРІ/збереження в циклі.
Зрозумійте. Чим швидше ви навчитесь працювати високорівневими інструментами тим краще ж для вас.
Час на вивчення відіб'ється сторицею. І замість випалювання очей в пошуках проґавлених лапок ви зможете думати над логікою.