21 Востаннє редагувалося elektryk (29.01.2018 23:28:47)

Re: Треба створити гру-здогадайку

Прикладаю москальські файли. Але чому можна приєднати лише один??

Post's attachments

index.txt 2.2 kb, 634 downloads since 2018-01-29 

22

Re: Треба створити гру-здогадайку

http://igor.dp.ua/learn/php/

23

Re: Треба створити гру-здогадайку

Спасибі, але тут така справа: файл cookie.inc повинен взаємодияти з файлом index. Я його раніше присилав. Так ось видається помилка: Warning: Cannot modify header information - headers already sent by (output started at C:\OpenServer\domains\localhost\mysite2.local\index.php:1) in C:\OpenServer\domains\localhost\mysite2.local\inc\cookie.inc.php on line 10

Warning: Cannot modify header information - headers already sent by (output started at C:\OpenServer\domains\localhost\mysite2.local\index.php:1) in C:\OpenServer\domains\localhost\mysite2.local\inc\cookie.inc.php on line 11

Як з цією помилкаю боротись??

А чому файли.php не можна приєднувати?? І чому можна приєднувати лише один файл??

24

Re: Треба створити гру-здогадайку

0xDADA11C7 написав:
elektryk написав:

Ау-у-у!! Поворюю: куди поділися кнопки для приєднання файлів?? Чому я їх не бачу??

Я особисто сховав кнопку долучення файлів від вас  *JOKINGLY* А ще я сховав теґ code тому ви код не пишете в тому тезі.

Я ж не екстрасенс. Я не можу здогадатись, які є теги і нащо вони потрібні.

25

Re: Треба створити гру-здогадайку

Хто знайде помилку в коді??

<?php
    // підключення бібліотек
    require "inc/lib.inc.php";
    require "inc/db.inc.php";
?>
<html>
<head>
    <title>Каталог товарів</title>
</head>
<body>
    <p>Товарів в <a href="basket.php">кошику</a>: <?= $count?></p>
    <table border="1" cellpadding="5" cellspacing="0" width="100%">
    <tr>
        <th>Назва</th>
        <th>Автор</th>
        <th>Рік видання</th>
        <th>Ціна, гр.</th>
        <th>В кошик</th>
    </tr>
    <?php
    $goods = selectAllItems();
    if(!is_arry($goods)){
        echo 'Сталася помилка при вводі товарів';
        exit;
    if(!$goods){
        echo 'На сьогодні товарів немає';
        exit;    
    }
    foreach($goods as $item){
    ?>    
        <tr>
            <td><?= $item['title']?></td>
            <td><?= $item['author']?></td>
            <td><?= $item['pubuear']?></td>
            <td><?= $item['price']?></td>
            <td><a href="add2basket.php?id=<?= $item['id']?>">В коршик</a></td>
        </tr>
    <?    
    }
    ?>
    </table>
</body>
</html>

syntax error, unexpected $end in C:\OpenServer\domains\localhost\mysite2.local\eshop\catalog.php on line 43

26 Востаннє редагувалося NaharD (03.02.2018 19:28:07)

Re: Треба створити гру-здогадайку

Тре дужку другу додати тут

if(!is_arry($goods)){

Також ви використовуєте короткий синтаксис <?=?>, але якось не всі можливості. Дивіться як можна.

<?php
// підключення бібліотек
require "inc/lib.inc.php";
require "inc/db.inc.php";
?>
<html>
<head>
    <title>Каталог товарів</title>
</head>
<body>
<p>Товарів в <a href="basket.php">кошику</a>: <?= $count?></p>
<table border="1" cellpadding="5" cellspacing="0" width="100%">
    <tr>
        <th>Назва</th>
        <th>Автор</th>
        <th>Рік видання</th>
        <th>Ціна, гр.</th>
        <th>В кошик</th>
    </tr>
    <?$goods = selectAllItems()// в вашому випадку $goods має визначатися до include 'catalog.php' а не в ньому Тоді це буде якось схоже на шаблон?>
    <?if(!is_arry($goods)):?>
        <h1 color="red">Сталася помилка при вводі товарів!</h1>
    <?elseif (!$goods):?>
        <h1 color="red">На сьогодні товарів немає!</h1>
    <?else:?>
        <?foreach($goods as $item):?>
            <tr>
                <td><?= $item['title']?></td>
                <td><?= $item['author']?></td>
                <td><?= $item['pubuear']?></td>
                <td><?= $item['price']?></td>
                <td><a href="add2basket.php?id=<?=$item['id']?>">В коршик</a></td>
            </tr>
        <?endforeach;?>
    <?endif;?>
</table>
</body>
</html>

Адже так гарніше як на мене.

Ще рекомендую викачати норм редактор і використовувати його, а не якийсь блокном. Рекомендую netbeans, тоді проблем з закритими дужками чи крапками з комою не буде взагалі.

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

27

Re: Треба створити гру-здогадайку

NagarD написав:

Також ви використовуєте короткий синтаксис <?=?>, але якось не всі можливості. Дивіться як можна.

синтаксис <?= ?> не відноситься до коротких тегів <? ?>.
Короткі теги не рекомендується використовувати, тому що опція short_open_tags може бути відключена (що і роблять переважна більшість хостингів).
Тому краще писати типу:

<?php if (condition): ?>
     <h1><?= $variable ?></h1>
<?php endif; ?>
Подякували: ostap34PHP, leofun012

28

Re: Треба створити гру-здогадайку

Я випадково знайшов помилку. Було if(!is_arry($goods)){, а слід писати if(!is_array($goods)){.
Але це не єдина помилка.
В моєму варіанті стара помилка залишається Parse error: syntax error, unexpected $end in C:\OpenServer\domains\localhost\mysite2.local\eshop\catalog2.php on line 43

А в варіанті NagarDа помилка інша.
Parse error: syntax error, unexpected T_VARIABLE in C:\OpenServer\domains\localhost\mysite2.local\eshop\inc\lib.inc.php on line 34

А в мене питання до NagarDа.
Навіщо ставити дві крапки ось в цих прикладах

<?if(!is_array($goods)):?>
<?elseif (!$goods):?>
<?else:?>
<?foreach($goods as $item):?>

29 Востаннє редагувалося NaharD (04.02.2018 00:05:28)

Re: Треба створити гру-здогадайку

То як { щоб інтерпретатор знав що починається інструкція, а ; позначає кінець всієї конструкції умови.

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

Хоч очевидно, що можна було не прив'язуватиться до : та ;. Але це мабуть зроблено через якусь внутрішню логіку.

30

Re: Треба створити гру-здогадайку

mikeos написав:
NagarD написав:

Також ви використовуєте короткий синтаксис <?=?>, але якось не всі можливості. Дивіться як можна.

синтаксис <?= ?> не відноситься до коротких тегів <? ?>.
Короткі теги не рекомендується використовувати, тому що опція short_open_tags може бути відключена (що і роблять переважна більшість хостингів).
Тому краще писати типу:

<?php if (condition): ?>
     <h1><?= $variable ?></h1>
<?php endif; ?>

Зазвичай нові речі вводяться не для того, щоб їх не рекомендувати. Тим більше таку зручну штуку як короткі теги.
Зайшов на сайт php і дійсно ні слова про не рекомендації http://php.net/manual/en/ini.core.php#i … t-open-tag.

31

Re: Треба створити гру-здогадайку

NagarD написав:

Зазвичай нові речі вводяться не для того, щоб їх не рекомендувати. Тим більше таку зручну штуку як короткі теги.
Зайшов на сайт php і дійсно ні слова про не рекомендації http://php.net/manual/en/ini.core.php#i … t-open-tag.

Short open tags далеко не нове, а можна сказати що застаріле. Подивіть на гітхабі код любого сучасного фреймворка чи компонента і ви не знайдете там використання <? ?>

І на рахунок "не рекомендації":
http://php.net/manual/en/language.basic … hptags.php

PHP also allows for short open tag <? (which is discouraged since it is only available if enabled using the short_open_tag php.ini configuration file directive, or if PHP was configured with the --enable-short-tags option)

32 Востаннє редагувалося NaharD (04.02.2018 00:06:48)

Re: Треба створити гру-здогадайку

Мова ні про що. Не рекомендується, тому що його тре вмикати.

Те ж і про фреймфорки. Кому тре впроваджувати ще одну залежність? тому і пишуть <?php.

Першим ділом, що роблю, це вмикаю к.теги, це зручно. Якщо вам не подобається, то використовуйте <?php. Мо розробники колись напишуть, що php20 не буде підтримувати к.теги, тоді згадаєте мене. А я в той час запущу пошук з заміною - зіпсую всю зроблену естетику і все стане добре.

33

Re: Треба створити гру-здогадайку

NagarD написав:

Мова ні про що. Не рекомендується, тому що його тре вмикати.

Те ж і про фреймфорки. Кому тре впроваджувати ще одну залежність? тому і пишуть <?php.

Першим ділом, що роблю, це вмикаю к.теги, це зручно. Якщо вам не подобається, то використовуйте <?php. Мо розробники колись напишуть, що php20 не буде підтримувати к.теги, тоді згадаєте мене. А я в той час запущу пошук з заміною - зіпсую всю зроблену естетику і все стане добре.

Ще пам'ятаю часи коли багато (і я в тому числі) використовували короткі теги, тоді ще напевно був php 4. Зараз наприклад багато хостінгів відключають цю функцію.

Але найбільшим аргументом чому їх не використовують наприклад фреймворки, це тому що є така штука як php standard recommendation, якщо ви з тим ще не знайомі то обов'язково прочитайте. Ось наприклад стандарт psr-1:
https://www.php-fig.org/psr/psr-1/

Перший пункт - Files MUST use only <?php and <?= tags.

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

34 Востаннє редагувалося elektryk (09.02.2018 18:10:06)

Re: Треба створити гру-здогадайку

Відкриваючий теп PHP не бачить закриваючого. Де помилка??

<?
$sql = "SELECT id, name, email, msg, 
UNIX_TIMESTAMP(datetime) as dt
                            FROM msgs 
                            ORDER BY id DESC LIMIT 5";
    $res = mysqli_query($link,$sql) or die(mysqli_error($link));
    mysqli_close($link);
    while($row = mysqli_fetch_assoc($res)){
        $id = $row['id'];
        $name = $row['name'];
        $email = $row['email'];
        $msg = $row['msg'];
        $dt = date('d-m-Y H:i:s', $row['dt']);
        //vyvid
        echo <<<HTML
        <hr>
        <p>
            <a href="mailto:$email">$name</a> @ $dt
            <br>$msg
        </p>
        <p align='right'>
            <a href="{$_SERVER['REQUEST_URL']}
            &del=$id">Видалити</a>
        </p>
HTML;        
    }
?>

35 Востаннє редагувалося Betterthanyou (09.02.2018 18:21:42)

Re: Треба створити гру-здогадайку

Можливо потрібно написати php ?

<?php
...

І лапки -> " поставити спробуйте...

echo <<<"HTML
        <hr>
        <p>
            <a href=\"mailto:$email\">$name</a> @ $dt
            <br>$msg
        </p>
        <p align='right'>
            <a href=\"{$_SERVER['REQUEST_URL']}
            &del=$id\">Видалити</a>
        </p>
HTML";  

36

Re: Треба створити гру-здогадайку

Не допомогло...

37

Re: Треба створити гру-здогадайку

elektryk написав:
echo <<<HTML

Після

HTML;

не можна ставити пробіли, тільки символ нового рядка.

38 Востаннє редагувалося elektryk (10.02.2018 02:33:53)

Re: Треба створити гру-здогадайку

leofun01 написав:
elektryk написав:
echo <<<HTML

Після

HTML;

не можна ставити пробіли, тільки символ нового рядка.

Я це знаю.
Щось я не вловлюю в такому виводі.
Ось знову така ситуація

<?php
if(file_exists('log/'.PATH_LOG)){
    $log = file('log/'.PATH_LOG);
    if(is_array($log)){
        echo '<ol>';
        foreach($log as $line){
            list($dt,$page,$ref) = explode('|', $line);
            $dt = date('d-m-Y H:i:s',$dt);    
            echo <<<LINE
            <li>
                $dt: $ref --> $page
            </li>
LINE;            
        }
        echo '</ol>';
    }
}
?>

39

Re: Треба створити гру-здогадайку

Не осилив! Соромно признаватись, але я не здолав PHP. З формами розібрався, а ось CMS ниасилил. І відповідно не отримав диплому. Тепер перебуваю в прострації.

40

Re: Треба створити гру-здогадайку

Нам викладали якусь безіменну.