Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – 6. diel - Ners - Editor článkov v PHP

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Shark
Člen
Avatar
Shark:12.12.2015 21:12

Ahoj, udělal jsem si systém komentářů (zatím jen zapisování). Vše funguje, až na jednu věc, a to že php háže chybu Notice: Array to string conversion in /3w/wz.cz/m/myn­hl/Db.php on line 68. Nevím kde mám pole namísto řetězce. Mohl by mi prosím někdo pomoci? Díky :).

<?php


$komentar = array(
        'komentar_id' => '',
        'komentar_clanek' => '',
        'autor' => '',
        'komentar' => '',


);

$url = $_GET["clanek"];
$clanekId = Db::queryOne('
        SELECT clanky_id
        FROM clanky
        WHERE url=?
', $url);



if ($_POST)     {
        if (empty($_SESSION['uzivatel_jmeno'])) {

                echo "Prihlaste se.";
        }

        else if ($_SESSION['uzivatel_jmeno'])   {
                $uzivatel_jmeno = $_SESSION['uzivatel_jmeno'];


               Db::query('
                        INSERT INTO komentare (komentar_clanek, autor, komentar)
                        VALUES (?, ?, ?)
                ', $clanekId, $uzivatel_jmeno, $_POST['komentar']);
        }




}

        ?>
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovedá na Shark
Jan Lupčík:12.12.2015 22:14
Db::query('
    INSERT INTO komentare (komentar_clanek, autor, komentar)
    VALUES (?, ?, ?)
', $clanekId['clanky_id'], $uzivatel_jmeno, $_POST['komentar']);

Snad je to správně, moc se v tom nevyznám. Jde ale o to, že proměnná $clanekId, i když vybíráš pouze 1 hodnotu, je pole.

Editované
Odpovedať
TruckersMP vývojář
Avatar
Shark
Člen
Avatar
Odpovedá na Jan Lupčík
Shark:12.12.2015 22:45

Díky moc! :)

Avatar
Michal Šmatlák:4.1.2016 12:45

Zdravím. K editoru som si pridal pole autor. Potrebujem ale aby sa rovnalo s menom aktuálne prihláseného uživateľa ktoré mám v session.Skúsil som to takto:

if ($_POST)
{
    if ($_POST['autor'] == $_SESSION['uzivatel_meno'])
    {
        Db::query('
            INSERT INTO clanky (autor)
            VALUES (?)
        ', $_POST['autor']);
    }
    else
        $sprava = 'Meno autora musí byť rovnaké ako prihlasovacie meno.';
}

ale neviem prečo mi to nefunguje.
Poraďte mi prosím Vás.
Za všetky rady vopred ďakujem.

Avatar
Odpovedá na Michal Šmatlák
Michal Šmahel:4.1.2016 22:39

Tak to nastav přímo. Tím se zbavíš nevědomí o jménu autora.

$autor = $_SESSION['uzivatel_meno'];

DB::query("
    INSERT INTO clanky (autor)
    VALUES(?)
", $autor)
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá na Michal Šmahel
Michal Šmatlák:8.1.2016 11:43

Zdravím. Ďakujem za radu, toto mi už ide. Ale mám ešte problém s výpisom článkov v administrácií podľa toho ktorý užívateľ je prihlásený. Skúsil som to takto:

$meno = $_SESSION['uzivatel_meno'];

$clanky = Db::queryAll('
        SELECT *
        FROM clanky
        WHERE autor = $meno
        ORDER BY clanky_id DESC

ale hádže mi to chybu: Warning: PDO::prepare(): SQLSTATE[42S22]: Column not found: 1054 Unknown column '$meno' in 'where clause' in C:\xampp\htdoc­s\Recenzie\db­.php on line 60

Fatal error: Call to a member function execute() on a non-object in C:\xampp\htdoc­s\Recenzie\db­.php on line 61
Ako to mám urobiť, aby mi to fungovalo?
Databázový wrapper používam ten čo je tu na itnetworku.
Za všetky rady vopred ďakujem.

Avatar
Odpovedá na Michal Šmatlák
Michal Šmahel:9.1.2016 15:01
// Ziskani jmena uzivatele
$meno = $_SESSION['uzivatel_meno'];

// Vypis clanku, ktere uzivatel pridal
DB::queryAll("
    SELECT *
    FROM clanky
    WHERE autor=?
    ORDER BY clanky_id DESC
", $meno);

Ahoj, používá se tu PDO wrapper, takový, aby fungoval bez použití objektů. To však neznamená, že jeho základní "syntaxe" se mění. Místo přímého vkládání proměnné se dávají zástupné znaky, buď jen otazník (?) nebo proměnná ve tvaru :nazev. Tato proměnná se musí také deklarovat jako otazník (viz. příklad dole). Tímto se liší PDO od zastaralého mysql_.

//Totez jen za pouziti pojmenovane promenne v dotazu

// Ziskani jmena uzivatele
$meno = $_SESSION['uzivatel_meno'];

// Vypis clanku, ktere uzivatel pridal
DB::queryAll("
    SELECT *
    FROM clanky
    WHERE autor=:meno
    ORDER BY clanky_id DESC
", ':meno' => $meno);
Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovedá na Michal Šmahel
Michal Šmatlák:9.1.2016 15:33

Ďakujem za radu, veľmi mi to pomohlo.

Avatar
Odpovedá na Michal Šmatlák
Michal Šmahel:9.1.2016 18:32

Není zač, kdyby něco, můžeš se zase optat. Na globálnější věci ale raději otevírej novou diskuzi, k článkům totiž někdo ani nechodí.

Odpovedať
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Michal Šmatlák:31.1.2016 16:15

Zdravím. Do editoru som si pridal plugin file_browser_ca­llback na upload obrázkov. Jedná sa o ikonku ktorú môžete vidieť na obrázku. Ale potrebujem poradiť ako spraviť to že po kliknutí na túto ikonku sa mi otvorí prehliadač súborov.Tu je môj kód:

<script type="text/javascript" src="//tinymce.cachefly.net/4.0/tinymce.min.js"></script>
        <script type="text/javascript">
          tinymce.init({
          selector: "textarea[name=obsah]",
          plugins: [
                  "advlist autolink lists link image charmap print preview anchor",
                  "searchreplace visualblocks code fullscreen",
                  "insertdatetime media table contextmenu paste"
           ],
          toolbar: "insertfile undo redo | styleselect | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image",
          entities: "160,nbsp",
          entity_encoding: "named",
          entity_encoding: "raw",
          file_browser_callback: function(field_name, url, type, win) {
          win.document.getElementById(field_name).value = '';
          }
          });
      </script>

Poraďte mi prosím Vás. Za všetky rady vopred ďakujem.

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 119.