NOVINKA: Začni v IT jako webmaster s komplexním akreditovaným online kurzem Tvůrce WWW stránek. Zjisti více:
NOVINKA: Staň se datovým analytikem od 0 Kč a získej jistotu práce, lepší plat a nové kariérní možnosti. Více informací:

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
Nejnovější komentáře jsou na konci poslední 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
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
TruckersMP vývojář
Avatar
Shark
Člen
Avatar
Odpovídá na Jan Lupčík
Shark:12.12.2015 22:45

Díky moc! :)

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.

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
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.

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
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.

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
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.

Nejnovější komentáře jsou na konci poslední stránky.
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.