HTML v GET parametru proměnné – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

HTML v GET parametru proměnné – PHP – Fórum – Programujte.comHTML v GET parametru proměnné – PHP – Fórum – Programujte.com

 

fix0
Stálý člen
12. 7. 2022   #1
-
0
-

 Prosím o naprosto noobskou radu.


$row["popis"] = " <"'> ";
echo "
<i class='nc-icon nc-settings-90'
onClick='
location.href=\"
?nameid=".$row["nazev"]."
&popis=".$row["popis"]."
\"
'></i>

";

Snažil jsem se to obalit v něčem jako htmlentities($row["popis"]) nebo mysqli_real_escape_string($conn,$row["popis"]),
htmlspecialchars($row["popis"]), ale k ničemu to nebylo.

Problém: V DB je HTML načítané v rámci proměnné $_GET['popis'], ale pokud HTML obsahuje speciální znaky jako uvozovky, tak na tlačítko nelze kliknout, to ale obsahuje vždy.

Jak to prosím řešit, aby to HTML nerozbíjelo to ikonkové tlačítko onclick?

Děkuji pěkně za tipy.

Nahlásit jako SPAM
IP: 92.240.177.–
fix0
Stálý člen
12. 7. 2022   #2
-
0
-

Vyřešil jsem to pomocí urlencode($popis); teď mám podobný problém na straně zpracování toho get parametru.

/index.php?popis=update=19&nameid=test popisek2&popis=<img+src%3D"https%3A%2F%2Fwww.omegamacesh.cz%2Fdata%2Fkategorie%2F56%2Ffoto%2Fstadion2018.jpg"+alt%3D"Planek+stadionu"+%2F>

Výsledkem je, potřebuji to nějak zaobalit,aby nedocházelo na kolizi uvozovek formuláře a uvozovek HTML, které má být jako obsah value toho formuláře.

<input type="text" class="form-control" name="newpopis" value="<img src=" https:="" www.sigmafotbal.cz="" data="" kategorie="" 56="" foto="" stadion2018.jpg"="" alt="Planek stadionu">

To jak zařídit prosím?

Nahlásit jako SPAM
IP: 92.240.177.–
fix0
Stálý člen
12. 7. 2022   #3
-
0
-

Tak v prvním případe pomohlo urlencode() a ve druhé htmlspecialchars(), jako správný noob jsem na tom zabil minimálně 40 minut života, ale nakonec jsem to poskládal. :-D Takže snad vyřešeno. :-)

Nahlásit jako SPAM
IP: 92.240.177.–
gna
~ Anonymní uživatel
1730 příspěvků
12. 7. 2022   #4
-
0
-

   

$nazev = 'nazev...';
$popis = 'popis...';

$url = '?nameid=' . urlencode($nazev) . '&popis=' . urlencode($popis);
$js = 'location.href=' . json_encode($url); // to v tomhle případě není nutné, když víš, že tam není nic problémového
$attr = htmlspecialchars($js, ENT_QUOTES | ENT_SUBSTITUTE | ENT_HTML401);

echo "<i class='nc-icon nc-settings-90' onClick='$attr'></i>";
Nahlásit jako SPAM
IP: 213.211.51.–
gna
~ Anonymní uživatel
1730 příspěvků
12. 7. 2022   #5
-
0
-

Oops, jsem nepostřehl, že už jsi to vykoumal. Tak nic :-)

Nahlásit jako SPAM
IP: 213.211.51.–
Kit+15
Guru
12. 7. 2022   #6
-
0
-

#1 fix
Zkus, jestli je to ono: 

<?php

$row = ['nameid' => "název", 'popis' =>" <\"'> "];
$onClick = "location.href=\"?" . http_build_query($row) . "\"";

$doc = new \DOMDocument('1.0', 'UTF-8');
$a = $doc->appendChild(new \DOMElement('i', "text odkazu"));
$a->appendChild(new \DOMAttr('class', "nc-icon nc-settings-90"));
$a->appendChild(new \DOMAttr('onClick', $onClick));
echo $doc->saveHTML($a);
Nahlásit jako SPAM
IP: 46.135.5.–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 5 hostů

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032022 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý