Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
Využij akce až 80 % zdarma při nákupu e-learningu - více informací. Zároveň pouze tento týden sleva až 80 % na e-learning týkající se Swift
discount week 80
Avatar
Vojtěch Staša:29.4.2020 8:56

Ahoj, mám problém s chybou Notice: Undefined variable. Mám soubor index.php, do kterého je připojen přes funkci require soubor priprav-obsah.php a do tohoto souboru je připojený další soubor, který mi připojuje databázi. Když si ale otevřu index.php v prohlížeči, ukáže se mi chyba Notice: Undefined variable nazev in C:\xampp\htdoc­s\radio_otoka\in­dex.php on line 36. Na tomto místě mám v kódu toto:

<h3><?php echo $nazev; ?></h3>

V souboru priprav-obsah je tento kód:

<?php
require "pripojeni.php";
if (isset($_GET['page'])) $php=trim(htmlspecialchars(strip_tags($_GET['page'])));
if (isset($php) && ($php=="")) {
        $php="index";
};
$dotaz='SELECT * FROM texty WHERE urlnazev="'.(isset($php) && $php).'"';
$vysledek=mysqli_query($conn, $dotaz);
$zaznam=mysqli_fetch_array($vysledek);
if (isset($zaznam['nazev']) && $zaznam['nazev']!="") {
        (isset($nazev) && $nazev=$zaznam['nazev']);
        $text=$zaznam['text'];
        $klicovaslova=$zaznam['klicovaslova'];
        $title=$zaznam['nazev'].' | Programování WWW stránek pro začátečníky';
        $metapopis=$zaznam['metapopis'];
};
?>

Zkusil jsem: Některé proměnné jsem si už ošetřil:

if (isset($_GET['page'])) $php=trim(htmlspecialchars(strip_tags($_GET['page'])));

ale jak bych měl opravit toto.

Chci docílit: Potřebuji nějak zavolat z databáze text, který jsem si tam uložil. Ovšem nejde mi to. Někde jsem četl, že bych si mohl vypnout zobrazování těchto chyb na svém serveru (v mém případě localhost), ale chtěl bych to vyřešit nějak jinak.

 
Odpovědět
29.4.2020 8:56
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:29.4.2020 11:29

Ten php kod obsahuje nekolik chyb.

Udelej si funkci neco jako getValue($list, $name, $defautl_value), ktera bude resit issety.

Pokud stranku otevres a v $nazev nic neni, tak to napise undefined.
Pred kodem

if (isset($zaznam['nazev']) && $zaznam['nazev']!="") {

Neni do promene $nazev nic prirazeno, takze tam neco dej, treba $nazev = 'zadny';
Pokud totiz tento if skonci na false, nemas tam else, tak $nazev neexistuje. Ten bude naplnen, az, kdyz vysledek ifu je true. Cili, existuje zaznam v databazi.

A misto $php sim pouzivej $page nebo $page_name, $page_file.

Akceptované řešení
+20 Zkušeností
+1 bodů
Řešení problému
 
Nahoru Odpovědět
29.4.2020 11:29
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Vojtěch Staša:8.5.2020 15:30

Díky moooc!!! Tvé řešení krásně funguje...

 
Nahoru Odpovědět
8.5.2020 15:30
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 3 zpráv z 3.