Enters worden gewoon opgeslagen als CR+LF. Als je bij het afdrukken een nl2br() over de html heen haalt worden die weer netjes getoondquote:Op vrijdag 15 april 2011 13:58 schreef MrNiles het volgende:
[..]
Het is natuurlijk een kwestie van uitproberen
maar
worden enters wel onthouden in de DB of krijg ik dan alle tekst achterelkaardoor
Wat beter ja.quote:Op vrijdag 15 april 2011 14:00 schreef Intrepidity het volgende:
[..]
Enters worden gewoon opgeslagen als CR+LF. Als je bij het afdrukken een nl2br() over de html heen haalt worden die weer netjes getoond
Zeer slechte code imo. Ten eerste is via $_POST[self] XSS mogelijk, en dit is eveneens nodig bij je form input. Je valideert helemaal niets. Gebruik hiervoor strip_tags() of htmlentities() om XSS te voorkomen. Daarnaast ben je ook 100% gevoelig voor SQL injection en kan ik je database zo leeg maken als ik dat wil. Gebruik mysql_real_escape_string() voor je $_POST variabelen of gebruik prepared statements icm mysqli.quote:Ik ben bezig met een voetbalpool scriptje, en ik loop eventjes vast op het volgende: De pagina haalt de wedstrijden van de ingevoerde speelronde uit de database, zet deze vervolgens in een tabel met daarin 2 extra velden de scores in te vullen. Dit gedeelte werkt. Hierna moeten de ingevulde scores opgeslagen worden in de database, en hier gaat het (gedeeltelijk) mis. Hij pakt namelijk alleen het laatste resultaat. Dit zal waarschijnlijk via een while loop moeten gebeuren, maar daar kom ik even niet aan uit.
De code:
[ code verwijderd ]
Zou iemand mij hier even mee willen helpen?
Dit kan, maar er is niet voor niets de functie foreach()quote:Op vrijdag 15 april 2011 12:52 schreef Pakspul het volgende:
[..]
Array kun je dan weer doorlopen via loopje
[ code verwijderd ]
nietquote:Op vrijdag 15 april 2011 15:15 schreef mafkees01 het volgende:
[..]
en kan ik je database zo leeg maken als ik dat wil
quote:mysql_query() sends a unique query (multiple queries are not supported)
Ja dit weet ik. Beveiliging heb ik nog niet aan gewerkt (en is in dit gedeelte van het systeem ook niet heel belangrijk omdat dit een beveiligde omgeving wordt waar alleen ik zelf in kan komen), maar dat komt er nog wel inquote:Op vrijdag 15 april 2011 15:15 schreef mafkees01 het volgende:
[..]
Zeer slechte code imo. Ten eerste is via $_POST[self] XSS mogelijk, en dit is eveneens nodig bij je form input. Je valideert helemaal niets. Gebruik hiervoor strip_tags() of htmlentities() om XSS te voorkomen. Daarnaast ben je ook 100% gevoelig voor SQL injection en kan ik je database zo leeg maken als ik dat wil. Gebruik mysql_real_escape_string() voor je $_POST variabelen of gebruik prepared statements icm mysqli.
[..]
Dit kan, maar er is niet voor niets de functie foreach()
Alle gegevens ophalen dan..quote:
Ik vind dat altijd zo'n onzin hè.. "in dit gedeelte van het systeem ook niet heel belangrijk". Ik snap dat je t nog moet leren, maar een goed begin is het halve werk.. De code is enorm slecht en beter lees je je dan eerst in voordat je begint met schrijven..quote:Op vrijdag 15 april 2011 16:47 schreef Feyenoordlife het volgende:
[..]
Ja dit weet ik. Beveiliging heb ik nog niet aan gewerkt (en is in dit gedeelte van het systeem ook niet heel belangrijk omdat dit een beveiligde omgeving wordt waar alleen ik zelf in kan komen), maar dat komt er nog wel inHet is voor mij nu even hoofdzaak om het werkend te krijgen, daarna ga ik kijken naar de beveiliging van alles.
1) Wat doet die dynContent functie?quote:Op maandag 18 april 2011 17:02 schreef Diabox het volgende:
Ik heb de volgende regel code:
[ code verwijderd ]
Echter nu is het zo dat de hele td klikbaar is en dus verwijdert, i.p.v. alleen het plaatje. Dit is het geval in firefox en chrome... In Internet explorer werkt het wel alleen door op het daadwerkelijke plaatje te klikken (en zo wil ik het ook).
Hoe fix ik dit?
1 2 3 4 5 6 7 8 | <?php function make_safe($value){ $value = htmlspecialchars(trim($value)); if (get_magic_quotes_gpc()) $value = stripslashes($value); return $value; } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) { } foreach ($_POST['WUitploeg'] as $key=>$WUitploeg) { } foreach ($_POST['ScoreThuis'] as $key=>$ScoreThuis) { } foreach ($_POST['ScoreUit'] as $key=>$ScoreUit) { } $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' "); $invoer = mysql_query($sql1) or die (mysql_error()); ?> |
Omdat je foreach leeg is en je query dus in de foreach moet. Nu loopt hij door de array heen, doet niks, en gebruikt na de hele loop de laatste waarden uit de array voor een enkele update.quote:Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:
[ code verwijderd ]
Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is.quote:Op woensdag 20 april 2011 16:44 schreef Feyenoordlife het volgende:
[ code verwijderd ]
Waarom wordt nu alleen de laatste rij in mijn database geüpdate? Als ik de array uitlees klopt alles wel gewoon.
De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.quote:Op woensdag 20 april 2011 16:49 schreef Luchtkoker het volgende:
[..]
Wat is er met die rare indenting van je sluitende brackets? Op dit moment sluiten je foreaches voor ze uberhaupt iets hebben gedaan. Ik snap niet helemaal wat je bedoeling is.
-edit ah ik snap het al. Je probeert je POST vars door te loopen in die foreaches te initialiseren in vars, en dan die query elke keer uit te voeren? Dan moet je inderdaad zoals de poster boven mij zegt je query in de for-loop zetten. Op dit moment loopt hij door alles, en zodra hij dus de loops uit komt staan $WThuisploeg, $WUitploeg etc allemaal op hun laatste waarden geintializeerd (vlak voordat ze de loop uit gingen dus).
Als je het voor elke combo wilt moet je ze niet sequentieel plaatsen, maar genest.
-edit2- Sowieso, zijn die $_POST vars arrays?
Zolang je geen associaties hebt in je array tussen welke scores bij welke ploegen horen houd je dat probleem.quote:Op woensdag 20 april 2011 16:55 schreef Feyenoordlife het volgende:
[..]
De $_POST vars zijn inderdaad arrays. En de inspringing zal ik even opnieuw doen, wordt het iets overzichtelijker.
Wat ik op dit moment gedaan heb is de sluit-accolades onder de query gezet, en dit levert als resultaat op dat de laatst ingevulde uitslag in elke rij komt te staan.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php foreach ($_POST['WThuisploeg'] as $key=>$WThuisploeg) { foreach ($_POST['WUitploeg'] as $key=>$WUitploeg) { foreach ($_POST['ScoreThuis'] as $key=>$ScoreThuis) { foreach ($_POST['ScoreUit'] as $key=>$ScoreUit) { $sql1 = ("UPDATE Wedstrijden SET WScoreThuis='".$ScoreThuis."', WScoreUit='".$ScoreUit."' WHERE WThuisploeg='".$WThuisploeg."' AND WUitploeg='".$WUitploeg."' "); $invoer = mysql_query($sql1) or die (mysql_error()); } } } } ?> |
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |