Diskuze: Získání detailu uživatele z Databáze pomocí odkazu
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 4 zpráv z 4.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
// tvuj chybny kod
//index.php?stranka=detail=' . htmlspecialchars($zamestnanec['zamestnanci_id']) . '">
// ' . htmlspecialchars($zamestnanec['jmeno']) . ' ' . htmlspecialchars($zamestnanec['prijmeni'])
$url = 'index.php?stranka='.urlencode('detail').'&'.neco='.urlencode($zamestnanec['zamestnanci_id']);
$html .= '<a href="'.htmlspecialchars($url).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
$url = 'index.php?stranka=detail&'.neco='.urlencode($zamestnanec['zamestnanci_id']); // nebo takto, pokud jsi si jisty, ze tam nebude zadny parazitni znak
// nebo to melo vypadat takto, coz se proti tvemu kodu znacne lisi, ze?
$html .= '<a href="'.htmlspecialchars('index.php?stranka=detail&'.neco='.urlencode($zamestnanec['zamestnanci_id'])).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
// nebo takto, pokud jsi si jisty, ze ani pro html tam nebude parazitni znak
$html .= '<a href="index.php?stranka=detail&neco='.htmlspecialchars(urlencode($zamestnanec['zamestnanci_id'])).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
---
//Nebo skladej adresu pres pole nebo si na to udelej funkci
$p = array();
$p[] = 'stranka='.urlencode('detail')
$p[] = 'neco='.urlencode($zamestnanec['zamestnanci_id'])
$url = 'index.php?'.implode('&', $p);
$html .= '<a href="'.htmlspecialchars($url).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
function createUrl ($url_main, $p) // a mam pocit, ze v php7 uz takova funkce nekde je
{
foreach ($p as $key=>$value)
{$p[$key] = $key.'='.urlencode($value);}
return $url_main'.implode('&', $p);
}
$html .= '<a href="'.htmlspecialchars(createUrl('index.php?', array(
'stranka' => 'detail',
'neco'=>$zamestnanec['zamestnanci_id']
))).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
// ja mam treba funkci, ktera mi vykresuje cely tag A, protoze to pouzivam casto (asi trochu jinaci kod, toto plodim z hlavy)
createOdkaz('index.php', array('name'=>'str', 'id'=>'str', 'text'=>'123', 'target'=>'123', 'onclick'=>'123', 'p'=>array(
'stranka' => 'detail',
'neco'=>$zamestnanec['zamestnanci_id']
)));
function createOdkaz($url, $opt)
{
$text = '';
if (isset($opt['text'])) {$text = $opt['test']; unset($opt['text']);}
if (isset($opt['p'])) {$p = $opt['p']; unset($opt['p']);}
$p = array();
if (isset($opt['p'])) {$p = $opt['p']; unset($opt['p']);}
foreach ($p as $key=>$value) {$p[$key] = $key.'='.urlencode($value);}
foreach ($opt as $key=>$value) {$opt[$key] = $key.'='.htmlspecialchars($value);}
$html .= '<a href="'.htmlspecialchars($ur'.'?'.implode('&', $p)).'"'.implode(' ', $opt)).'>'.htmlspecialchars($text).'</a>';
}
5. zkus si vypsat v prohlizeci html kod stranky a zkus ten kod projet
validatorem html, aspon https://validator.w3.org/#… a pak se zkus podivat, zda je
ten html kod v poradku, podle vsech pravidel, jake se html kod pise.
6. Kdyz si nejsi jisty, jaky html kod vyplodis phpckem, tak si ho zkus napsat
nejdriv spravne v html.
7. Nebo si muze html kod vypisovat do stranky
$html = '';
$code = '';
$html .= '<a href="index.php?stranka=detail&neco='.htmlspecialchars(urlencode($zamestnanec['zamestnanci_id'])).'">'.'.htmlspecialchars($zamestnanec['jmeno']) . ' ' . $zamestnanec['prijmeni']).'</a>';
$code .= $html; // nejsi si jisty, zda tahle cast php kodu je ok, tak ji pridas do promene $code
echo '<pre>'.htmlspecialchars($code).'</pre>'; // a hned na obrazovce vidis i html kod
A radeji mit html kod rozkouskovany na 10.000 promenych nech to placat do jedne nudlicky...
$html .= '
<nav>
<a href="stranka.php">odkaz</a>
<a href="stranka.php">odkaz</a>
<a href="stranka.php">odkaz</a>
</nav>
';
echo $nav;
// nebo
$nav = array();
$nav[] = '<a href="stranka.php">odkaz</a>';
$nav[] = '<a href="stranka.php">odkaz</a>';
$nav[] = '<a href="stranka.php">odkaz</a>';
$nav = implode("\n ", $nav)
$html .= '
<nav>'.$nav.'</nav>
';
Hlavne v dobe, kdyz jsi zacatecnik, tak bych nemachroval s expert zapisy, kdy my to dokazeme seskladat by oko bez chyb, pripadnou chybu najit. Ale ty jsi si nejisty, co vlastne hledas. Nevis, zda se odkaz vypsal spravne, url vyspalo spravne atd.
8. Viz 7, kod ktery vypises php nemusi byt tentyz, ktery zobrazi www
prohlizec jako zobrazit-zdrojovy kod. To je dobre mit na pameti, ze html
prohlizec si z tveho html kodu sklada jakysi vlastni a odstranuje z nej chyby.
Takze prohlizec vzdy zobrazi spravny kod. Ikdyz je treba uplne jiny, nez jsi mu
poslal. To je dobre mit na pameti, a ten kod si prave prohlizet v prohlizeci a
nespolechat na to, co jsem psal v bode 7.
Pokus se stane, ze ti presklada html kod, pak mas ve svem kodu chybu. A pak se
dostavat opet do nejistoty, tenky led, kdy ti kazdy prohlizec ten kod muze
preskladat jinym zpusobem a muze fungovat uplne jinak. Nehlede na to, ze obcas
funguje jinak i se spravnym kodem
Ahoj, děkuji za vysvětlení. Až budu mít po práci čas, tak se nato
pořádně kouknu, vyzkouším a dám vědět .
Zobrazeno 4 zpráv z 4.