NOVINKA: Získej 40 hodin praktických dovedností s AI – ZDARMA ke každému akreditovanému kurzu!
S účinností od 26. 3. jsme aktualizovali Zásady zpracování osobních údajů – doplnili jsme informace o monitorování telefonických hovorů se zájemci o studium. Ostatní části zůstávají beze změn.

Diskuze – Lekce 6 - NERS - Editor článků v PHP

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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']);
        }




}

        ?>
 
Odpovědět
12.12.2015 21:12
Avatar
Jan Lupčík
Tvůrce
Avatar
Odpovídá 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.

Editováno 12.12.2015 22:14
Odpovědět
12.12.2015 22:14
TruckersMP vývojář
Avatar
Shark
Člen
Avatar
Odpovídá na Jan Lupčík
Shark:12.12.2015 22:45

Díky moc! :)

 
Odpovědět
+1
12.12.2015 22:45
Avatar
michal.smatlak: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.

 
Odpovědět
-1
4.1.2016 12:45
Avatar
Odpovídá na michal.smatlak
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)
Odpovědět
+1
4.1.2016 22:39
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
michal.smatlak: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.

 
Odpovědět
8.1.2016 11:43
Avatar
Odpovídá na michal.smatlak
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);
Odpovědět
+1
9.1.2016 15:01
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
Odpovídá na Michal Šmahel
michal.smatlak:9.1.2016 15:33

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

 
Odpovědět
9.1.2016 15:33
Avatar
Odpovídá na michal.smatlak
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í.

Odpovědět
9.1.2016 18:32
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
michal.smatlak: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.

 
Odpovědět
31.1.2016 16:15
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 119.