_--_ | woensdag 27 december 2017 @ 19:49 |
Dit topic heb ik geopend voor 2 redenen: 1. omdat het handig is als vragen gerelateerd aan deze dingen in 1 topic komen ipv er steeds een nieuw topic over te openen.
2. Omdat ik een vraag heb
1 2 3 4 5 6 | if($_POST) { $name = $_POST['name']; $content = $_POST['commentContent']; $handle = fopen("comments.html","a"); fwrite($handle,"<b>" . $name . "</b>:<br/>" . $content . "<br/>"); fclose($handle); |
Hoe zorg ik ervoor dat $name hier een kleurtje krijgt? Er is markdown gebruikt om het dikgedrukt te maken.
SPOILER Als dezen topic een succes wordt maak ik een betere OP 
|
Anthraxx | woensdag 27 december 2017 @ 19:53 |
Er is HTML gebruikt om het dikgedrukt te maken, geen markdown, Je kunt de naam een kleur geven door gebruik te maken van CSS class of inline CSS styling.
Bijv. iets als (inline CSS styling)
1 | fwrite($handle,"<span style=\"color: red, font-weight: bold\">" . $name . "</span>:<br/>" . $content . "<br/>"); |
Of een externe CSS class
1 2 3 4 5 6 | <style> .naam { color: red; font-weight: bold; } </style> |
En dan:
1 | fwrite($handle,"<span class=\"naam\">" . $name . "</span>:<br/>" . $content . "<br/>"); |
Of iets in die strekking.
De kleuren kun je aangeven met hexcodes (#ff0000). De escaped quotes zijn nodig omdat jij al " gebruikt voor je string in je PHP code. |
_--_ | woensdag 27 december 2017 @ 20:02 |
quote: Op woensdag 27 december 2017 19:53 schreef Anthraxx het volgende:Er is HTML gebruikt om het dikgedrukt te maken, geen markdown, Je kunt de naam een kleur geven door gebruik te maken van CSS class of inline CSS styling. Bijv. iets als (inline CSS styling) [ code verwijderd ] Of een externe CSS class [ code verwijderd ] En dan: [ code verwijderd ] Of iets in die strekking. De kleuren kun je aangeven met hexcodes (#ff0000). De escaped quotes zijn nodig omdat jij al " gebruikt voor je string in je PHP code. Van FOK! wist ik dat dat gedoe met <b> markdown is, maar goed.
Ik heb je inline versie geprobeerd en notepad herkent de code niet omdat dat stukje html in een php-tag staat. toch geprobeerd maar het werkt toch niet. dikgedrukt is nu ook weg.
Hier kunt u het zelf uittesten http://themuurtje.me |
_--_ | woensdag 27 december 2017 @ 20:04 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <?php if($_POST) { $name = $_POST['name']; $content = $_POST['commentContent']; $handle = fopen("comments.html","a"); fwrite($handle,"<span style=\"color: red, font-weight: bold\">" . $name . "</span>:<br/>" . $content . "<br/>");
fclose($handle); } ?>
<html> <head> </head> <body> <form action = "" method = "POST"> Naam<br/> <input type = "text" name = "name" maxlength = "18"><br/> Commentaar<br/> <textarea maxlength = "100" rows = "3" cols = "40" name = "commentContent"></textarea><br/> <input type = "submit" value = "Post"><br/> </form> <?php include "comments.html"; ?> </body> </html> |
Ik heb nu dit exact, klopt die ''\' na het is-teken wel? |
_--_ | woensdag 27 december 2017 @ 20:08 |
aha, nu werkt die ineens. Ik heb inplaats van de komma de ";" gebruikt 
Bedankt! |
Anthraxx | woensdag 27 december 2017 @ 20:11 |
quote: Ah, typefout in het snel posten . Maar het moet inderdaad een ; zijn. |
_--_ | woensdag 27 december 2017 @ 20:43 |
Malwareporn ja  |
Anthraxx | woensdag 27 december 2017 @ 21:34 |
quote: ? |
_--_ | woensdag 27 december 2017 @ 21:44 |
quote:
quote: mn site is zo slecht qua veiligheid dat iemand een interactieve frame van fok forum heeft geplaatst  |
PascalDutch | woensdag 27 december 2017 @ 23:04 |
quote: Ik zou inderdaad een aantal trim functions op je input fields uitvoeren ja:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | <?php function trimFunction($post){ trim($post); strtolower($post); htmlentities($post); mysqli_real_escape_string($post) //alleen als je een database connectie hebt gemaakt uiteraard } //vervolgens roep je gewoon de functie aan $name = trimFunction($_POST["name"]); //in jouw code: <?php if($_POST) { $name = trimFunction($_POST['name']); $content =trimFunction( $_POST['commentContent']); $handle = fopen("comments.html","a"); fwrite($handle,"<span style=\"color: red, font-weight: bold\">" . $name . "</span>:<br/>" . $content . "<br/>");
fclose($handle); } ?> |
Je kunt overigens ook enkele quotes (') gebruiken voor je CSS in plaats van te escapen met \. Houdt je code iets overzichtelijker. Als je het helemaal goed wilt doen dan gebruik je natuurlijk of een apart stylesheet of je gebruikt de <style></style> tags.
Het zou wel niet helemaal werken ben ik bang, even in twee minuten in elkaar getypt . Maar dan heb je in ieder geval een beginnetje 
Ik zou overigens ook eerst checken of je $_POST überhaupt gevuld is:
1 2 3 4 5 6 7 | <?php if(!isset($_POST["submit"])){ echo "Submit button not clicked, try again"; die(); //gebruik die met de nodige voorzichtigheid, je hele script stopt dan namelijk. Beter is om een exceptie of iets dergelijks te generen, break kan natuurlijk ook hoewel dat technisch gezien hetzelfde is.
} ?> |
Succes! |
_--_ | woensdag 27 december 2017 @ 23:09 |
quote: Op woensdag 27 december 2017 23:04 schreef PascalDutch het volgende:[..] Ik zou inderdaad een aantal trim functions op je input fields uitvoeren ja: [ code verwijderd ] Je kunt overigens ook enkele quotes (') gebruiken voor je CSS in plaats van te escapen met \. Houdt je code iets overzichtelijker. Als je het helemaal goed wilt doen dan gebruik je natuurlijk of een apart stylesheet of je gebruikt de <style></style> tags. Het zou wel niet helemaal werken ben ik bang, even in twee minuten in elkaar getypt  . Maar dan heb je in ieder geval een beginnetje  Ik zou overigens ook eerst checken of je $_POST überhaupt gevuld is: [ code verwijderd ] Succes! Thanks, ik ga ermee aan de slag! |
Light | donderdag 28 december 2017 @ 12:24 |
Wat is er mis met de topics DIG / [HTML, CSS, JS] Frontend #45: topic nummer++ en DIG / [PHP/(My)SQL] voor dummies #123: Zoals de boer het ook zou doen! ? |
_--_ | donderdag 28 december 2017 @ 12:33 |
quote: Ik zeg niet dat er iets mis mee is. In die topics is zolang niet gereageerd dat je ze niet eens meer kunt vinden. Daarom dacht ik dat er niet zo'n topic was. |
#ANONIEM | donderdag 28 december 2017 @ 13:50 |
oeps heb je site gesloopt  |
_--_ | donderdag 28 december 2017 @ 13:52 |
quote:
  |
#ANONIEM | donderdag 28 december 2017 @ 13:56 |
quote: had het erger kunnen doen Dit is nog redelijk netjes |
_--_ | donderdag 28 december 2017 @ 13:57 |
quote: gelukkig weet mn host dat dat vies is en stuurt ie me door naar een 404 error pagina  |
#ANONIEM | donderdag 28 december 2017 @ 14:07 |
quote: Ik kan nu makkelijk je server alles laten doen wat ik wil  |
_--_ | donderdag 28 december 2017 @ 14:09 |
quote:
 Alleen werkt je hele script niet echt 
Ik kan alles toch weer verwijderen. Alleen jammer dat pattern niet werkt voor <textarea> |
#ANONIEM | donderdag 28 december 2017 @ 14:10 |
het werkt wel hoor 
"Web Server: Too many connections!"
ookal heb je pattern aanstaan dan kan ik nog alles erop zetten  |
_--_ | donderdag 28 december 2017 @ 14:11 |
quote: Als ik nou eens voor beide velden "<" en ">" uitzet, hoe moet je dat dan injecteren?
En ik bedoelde eigenlijk dat je alerts niet werkt. |
#ANONIEM | donderdag 28 december 2017 @ 14:12 |
quote: Op donderdag 28 december 2017 14:11 schreef _--_ het volgende:[..] Als ik nou eens voor beide velden "<" en ">" uitzet, hoe moet je dat dan injecteren? En ik bedoelde eigenlijk dat je alerts niet werkt. Ah ja de alerts was meer gewoon html injecteren om het bestand groter te maken 
je had eerder een advies gekregen om escape_string te gebruiken.
Ik zou ook kijken naar een sql database om je data in op te slaan. |
_--_ | donderdag 28 december 2017 @ 14:26 |
quote: Op donderdag 28 december 2017 14:12 schreef totalvamp het volgende:[..] Ah ja de alerts was meer gewoon html injecteren om het bestand groter te maken  je had eerder een advies gekregen om escape_string te gebruiken. Ik zou ook kijken naar een sql database om je data in op te slaan. Dan ga ik daar maar snel voor zorgen 
sql data is niet noodzakelijk omdat ik deze site alleen gebruikt om dingen op te testen. |
_--_ | donderdag 28 december 2017 @ 15:09 |
quote: Op donderdag 28 december 2017 14:12 schreef totalvamp het volgende:[..] Ah ja de alerts was meer gewoon html injecteren om het bestand groter te maken  je had eerder een advies gekregen om escape_string te gebruiken. Ik zou ook kijken naar een sql database om je data in op te slaan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | <?php function _e($string) { echo htmlspecialchars($string, ENT_QUOTES, 'UTF-8'); } if($_POST) { $name = $_POST['name']; $content = $_POST['commentContent']; $handle = fopen("comments.html","a"); fwrite($handle,"<span style=\"color: red; font-weight: bold;\">" . $name . "</span>:<br/>" . $content . "<br/>" . "<br/>");
fclose($handle); } ?>
<html> <head> <meta charset="UTF-8"> </head> <body> <form action = "" method = "POST"> Naam<br/> <input type = "text" pattern = "^[A-Za-z0-9_.]{4,}$" name = "name"><br/> Commentaar<br/> <textarea rows = "3" cols = "40" name = "commentContent"></textarea><br/> <input type = "submit" value = "Post"><br/> </form> <?php include _e("comments.html"); ?> </body> </html> |
Ik heb dit dus nu geprobeerd maar tevergeefs 
1 2 3 4 | comments.html Warning: include(): Filename cannot be empty in /srv/disk10/2409091/www/themuurtje.me/index.php on line 29
Warning: include(): Failed opening '' for inclusion (include_path='.:/usr/local/php-5.6.32/share/pear') in /srv/disk10/2409091/www/themuurtje.me/index.php on line 29 |
|
#ANONIEM | donderdag 28 december 2017 @ 15:15 |
quote: je include ook geen bestand, de functie zou een bestand moeten teruggeven.
je zou nu comments.html eruit krijgen als je _e("comments.html") doet |
_--_ | donderdag 28 december 2017 @ 15:25 |
quote: Op donderdag 28 december 2017 15:15 schreef totalvamp het volgende:[..] je include ook geen bestand, de functie zou een bestand moeten teruggeven. je zou nu comments.html eruit krijgen als je _e("comments.html") doet Ik heb toch maar even de code boven gebruikt:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | <?php function trimFunction($post){ trim($post); strtolower($post); htmlentities($post);
}
if($_POST) { $name = trimFunction($_POST['name']); $content =trimFunction( $_POST['commentContent']); $handle = fopen("comments.html","a"); fwrite($handle,"<span style=\"color: red; font-weight: bold;\">" . $name . "</span>:<br/>" . $content . "<br/>" . "<br/>");
fclose($handle); } ?>
<html> <head> <meta charset="UTF-8"> </head> <body> <form action = "" method = "POST"> Naam<br/> <input type = "text" name = "name"><br/> Commentaar<br/> <textarea rows = "3" cols = "40" name = "commentContent"></textarea><br/> <input type = "submit" value = "Post"><br/> </form> <?php include ("comments.html"); ?> </body> </html> |
Maar nu zijn de comments onzichtbaar  |
_--_ | donderdag 28 december 2017 @ 15:57 |
Okay nu werkt ie wel http://themuurtje.me/  |
#ANONIEM | donderdag 28 december 2017 @ 16:04 |
quote: ziet er idd naar uit  |