Thanks voor de check, ik zal aanpassen. (Jij kunt dit overigens ook doen, je hebt rechten op GitHub.)quote:Op vrijdag 27 juni 2014 20:30 schreef Nattekat het volgende:
Ik heb nog even zitten rondkijken op de kwetsbaarheid van jouw server, het lijkt vanaf mijn oogpunt dat de sql-tabel read-only is, dat zit dus wel goed. Echter is jouw server kwetsbaar voor SQL-injections. Je kan het zelf uitproberen door naar http://fok.zevkiselim.nl/crew2.0/?type=user#id=1 OR 1=1 te gaan, de grafieken zullen elke rij uit de tabel tonen.
Ik heb nog geprobeerd om gegevens in die tabel te krijgen maar dat is dus niet gelukt. Toch is het een goed idee om de tabel 'gebruikers' te controleren op mijn fratsen
Je kan dit oplossen door in user-piechart en user-table in de sql code ". $id ." te veranderen naar "?" (zonder aanhalingstekens) en dan deze uit te voeren met $stmt->execute($id)
Hele code voor de volledigheid:
[ code verwijderd ]
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | function selectUser(user_id) { $("#userselect").hide(); $("#userinfo").show(); $("#userid").show(); $("#userid").html(user_id); getUserById(user_id, function(output) { $("#username").html(output); }); drawItems(user_id); } function getUserById(user_id, callback) { $.post("index.php?do=get_user_by_id", {'user_id':user_id}, function(data) { callback(data); }); } |
Is de "Foutmelding-opgelost"-branch nog ergens voor nodig of kan ik 'm verwijderen?quote:
Hij mag weg.quote:Op dinsdag 1 juli 2014 12:38 schreef zarGon het volgende:
[..]
Is de "Foutmelding-opgelost"-branch nog ergens voor nodig of kan ik 'm verwijderen?
https://github.com/zarGon(...)Foutmelding-opgelost.
Verwijderd.quote:
Jep. Ik heb net een nieuwe commit gedaan. Admin-gedeelte is erbij gekomen: http://fok.zevkiselim.nl/crew2.0/?admin=index.quote:Staan trouwens interessante namen in de userlist nu
Ik heb dit net even getest bij de user-piechart... Ik heb je code overgenomen en op de juiste plek geplakt. Het werkt niet, de overzichten verdwijnen. Wat zou het kunnen zijn?quote:Op vrijdag 27 juni 2014 20:30 schreef Nattekat het volgende:
Ik heb nog even zitten rondkijken op de kwetsbaarheid van jouw server, het lijkt vanaf mijn oogpunt dat de sql-tabel read-only is, dat zit dus wel goed. Echter is jouw server kwetsbaar voor SQL-injections. Je kan het zelf uitproberen door naar http://fok.zevkiselim.nl/crew2.0/?type=user#id=1 OR 1=1 te gaan, de grafieken zullen elke rij uit de tabel tonen.
Ik heb nog geprobeerd om gegevens in die tabel te krijgen maar dat is dus niet gelukt. Toch is het een goed idee om de tabel 'gebruikers' te controleren op mijn fratsen
Je kan dit oplossen door in user-piechart en user-table in de sql code ". $id ." te veranderen naar "?" (zonder aanhalingstekens) en dan deze uit te voeren met $stmt->execute($id)
Hele code voor de volledigheid:
[ code verwijderd ]
Ik kan nu pas hiermee aan de slag. Als ik vragen heb, hoor je ze wel.quote:Op zaterdag 28 juni 2014 17:35 schreef bondage het volgende:
[ code verwijderd ]
Je moet dan echter in index nog wel even ervoor zorgen dat je een handler hebt welke $_GET['do'] == 'get_user_by_id' afhandelt, het daadwerkelijke id zit in de post $_POST['user_id']. Je kunt hier natuurlijk ook een los script voor schrijven en deze aanroepen, deze moet het ID omzetten naar een naam en deze echo'en. Niet vergeten de naam om te zetten naar entities.
Bovenstaande is wel de meest simpele methode. Het beste is om alles in een enkele call af te handelen en terug te geven als JSON, je kunt de data er dan uithalen via data.chart_data en data.user_name. Dit vereist echter een grote aanpassing aan je bestaande code.
Ik ga er vanavond naar kijkenquote:Op dinsdag 1 juli 2014 13:51 schreef zarGon het volgende:
Zijn een paar issues mee: https://github.com/zarGon(...)is/issues?state=open. Zie je hulp graag tegemoet mocht je kunnen helpen.
Is er nog een specifieke error code? In principe zou dit moeten werken.quote:Op dinsdag 1 juli 2014 14:21 schreef zarGon het volgende:
[..]
Ik heb dit net even getest bij de user-piechart... Ik heb je code overgenomen en op de juiste plek geplakt. Het werkt niet, de overzichten verdwijnen. Wat zou het kunnen zijn?
Cool!quote:
Nope, geen foutmelding op de pagina zelf. PHP-code lijkt/is goed. Ik vermoed dat de SQL-query niet helemaal goed is. Heb niet gekeken of het werkt met een handmatig ingevulde UserID, i.p.v. $id.quote:Is er nog een specifieke error code? In principe zou dit moeten werken.
Omdat je hebt aangegeven dat je deze repo wil watchen. Zie https://github.com/settings/notifications.quote:Op dinsdag 1 juli 2014 15:06 schreef Nattekat het volgende:
Is er een reden dat mijn mailbox overspoeld is met mailtjes van github?
Jup, precies 6.quote:Op dinsdag 1 juli 2014 15:12 schreef zarGon het volgende:
[..]
Omdat je hebt aangegeven dat je deze repo wil watchen. Zie https://github.com/settings/notifications.
Ik had niet door dat je telkens een mailtje zou krijgen.. Heb een commit gedaan en 6 issues ingeschoten; dat zullen je mailberichten zijn.
als je ? gebruikt in je query, moet je geen labels gebruiken in je bind_param functie. Tevens wordt die bind_param functie nu niet goed gebruikt (elke variabele moet in een nieuwe aanroep).quote:Op zaterdag 26 juli 2014 13:29 schreef zarGon het volgende:
Is er niemand hier die me kan helpen met issue 5 en 6? https://github.com/zarGon(...)is/issues?state=open.
Als die zijn opgelost kan er tenminste voor één subsite (forum) gegevens toegevoegd worden en heb ik weer een beetje motivatie om hieraan te werken.
1 2 3 4 5 | <?php $stmt->bind_param(1, $Rolafkorting, PDO::PARAM_STR); $stmt->bind_param(2, $Rolomschrijving, PDO::PARAM_STR); $stmt->bind_param(3, $PK, PDO::PARAM_STR); ?> |
1 2 3 | <?php $stmt->execute(array($Rolafkorting, $Rolomschrijving, $pk)); ?> |
Over welk bestand heb je het preciesquote:Op dinsdag 19 augustus 2014 22:56 schreef remi1986 het volgende:
En echt, html en php bij elkaar?
De tranen springen in mijn ogen als ik dit allemaal bekijk.
admin/edit.phpquote:Op dinsdag 19 augustus 2014 22:58 schreef Nattekat het volgende:
[..]
Over welk bestand heb je het precies
- Wellicht is het handig als je deel 1 doorleest.quote:Op dinsdag 19 augustus 2014 22:56 schreef remi1986 het volgende:
Tevens in dat edit bestand waarom wordt er ineens mysqli gebruikt? (regel 29)
En echt, html en php bij elkaar?
De tranen springen in mijn ogen als ik dit allemaal bekijk.
Ok, dat het er niet uit ziet moet ik ook wel toegevenquote:
ik ben denk ik sneller als ik van scratch af aan begin. Ik dacht ff snel die query voor je te fixen (zie paar berichten hierboven)quote:Op dinsdag 19 augustus 2014 23:04 schreef zarGon het volgende:
[..]
- Wellicht is het handig als je deel 1 doorleest.
- Voor het admingedeelte is http://www.killersites.co(...)records-with-mysqli/ gebruikt.
- Als ik de skills had, had ik het allang alleen in elkaar geflanst en had ik dit topic niet geopend.
- Mocht je het willen verbeteren kun je helpen door de code aan te passen en te verbeteren.
Het werkt, en daar gaat het mij in eerste instantie om. Dat het beter kan wéét ik.quote:Op dinsdag 19 augustus 2014 23:05 schreef Nattekat het volgende:
[..]
Ok, dat het er niet uit ziet moet ik ook wel toegeven
Had gehoopt dat het vanaf de OP van het eerste deel al duidelijk was wat mijn kunnen en doen was.quote:Maar ik denk dat vooral onervarenheid hier een rol speelt, volgens mij is Zargon echt een gigantische newbie (niet lullig bedoeld) wat betreft het maken van software en is dit project ook een leercurve.
Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.quote:Op dinsdag 19 augustus 2014 23:05 schreef remi1986 het volgende:
[..]
Ik dacht ff snel die query voor je te fixen (zie paar berichten hierboven)
Er hebben zoveel mensen hier meegekeken die de kennis in huis hebben en weten hoe dit 'project' gerealiseerd kan worden, maar daadwerkelijk helpen hebben er maar twee of drie gedaan.quote:ik ben denk ik sneller als ik van scratch af aan begin.
Ik heb nooit jouw manier van werken bekritiseerd, ik vind het juist mooi dat je direct met zo'n groot project begint, ik zou het ook niet veel beter doen met mijn basis-php kennis.quote:Op dinsdag 19 augustus 2014 23:08 schreef zarGon het volgende:
[..]
Het werkt, en daar gaat het mij in eerste instantie om. Dat het beter kan wéét ik.
Klopte het niet dan wat ik zeiquote:[..]
Had gehoopt dat het vanaf de OP van het eerste deel al duidelijk was wat mijn kunnen en doen was.
ja er klopt niks van die pagina. Want er wordt ineens mysqli gebruikt .. dan moet je mysqli_query gebruiken en dan werken functies als bind_param en execute helemaal niet.quote:Op dinsdag 19 augustus 2014 23:11 schreef zarGon het volgende:
[..]
Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.
[..]
Er hebben zoveel mensen hier meegekeken die de kennis in huis hebben en weten hoe dit 'project' gerealiseerd kan worden, maar daadwerkelijk helpen hebben er maar twee of drie gedaan.
Alle hulp is welkom.
Ik zie het niet als kritiek. Ik vind het alleen jammer dat het nu nog - na twee delen - ter sprake moet komen. Ik wil graag verder en na de zoveelste 'ja dat moet niet zo' en 'dit moet beter' zonder daadwerkelijk te helpen word ik een beetje moe van, van dat soort commentaar. Dan moet ik namelijk weer gaan uitleggen hoe het zit, voor de zoveelste keer... Dat terwijl alles valt terug te lezen.quote:Op dinsdag 19 augustus 2014 23:11 schreef Nattekat het volgende:
[..]
Ik heb nooit jouw manier van werken bekritiseerd, ik vind het juist mooi dat je direct met zo'n groot project begint, ik zou het ook niet veel beter doen met mijn basis-php kennis.
Jawel, maar het is een herhaling van zetten. Het is al eerder besproken in de reeks/het topic. Ik zou het fijner vinden als we gewoon een stap verder kunnen komen zonder telkens in herhaling te vallen.quote:Klopte het niet dan wat ik zei
Ah op die fiets. Ik gaf meer een antwoord aan Remi hoe het zat, ik heb er verder ook geen problemen mee hoe het eruit ziet.quote:Op dinsdag 19 augustus 2014 23:17 schreef zarGon het volgende:
[..]
Ik zie het niet als kritiek. Ik vind het alleen jammer dat het nu nog - na twee delen - ter sprake moet komen. Ik wil graag verder en na de zoveelste 'ja dat moet niet zo' en 'dit moet beter' zonder daadwerkelijk te helpen word ik een beetje moe van, van dat soort commentaar. Dan moet ik namelijk weer gaan uitleggen hoe het zit, voor de zoveelste keer... Dat terwijl alles valt terug te lezen.
Ik wil gewoon een stap verder, maar het lijkt erop alsof men vooral blijft steken bij hoe het er nu uitziet.
En voordat je het persoonlijk neemt: dat is het niet. Het is alleen een beetje frustrerend dat het bij praten blijft, ik had liever gezien dat men daadwerkelijk meehelpt; al is het maar twee regels code.
[..]
Jawel, maar het is een herhaling van zetten. Het is al eerder besproken in de reeks/het topic. Ik zou het fijner vinden als we gewoon een stap verder kunnen komen zonder telkens in herhaling te vallen.
Opnieuw beginnen is geen probleem, vooral niet als de basis dan beter in elkaar zit. Vergroot ook de kans dat anderen wellicht mee willen doen.quote:Op dinsdag 19 augustus 2014 23:16 schreef remi1986 het volgende:
[..]
En ik wil best helpen, maar dan beginnen we overnieuw.
Graag!quote:Help momenteel een andere user ook met een systeem. In avondje goede structuur neergezet en maakt het werken voor iedereen een stuk fijner.
echt al dat hergebruik van codes is nergens voor nodig. Op iedere pagina zowat wordt een PDO object gemaakt. Doe dat in index.php en dat object is door het hele project bruikbaar.quote:Op dinsdag 19 augustus 2014 23:20 schreef zarGon het volgende:
[..]
Opnieuw beginnen is geen probleem, vooral niet als de basis dan beter in elkaar zit. Vergroot ook de kans dat anderen wellicht mee willen doen.
[..]
Graag!
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $sql= "SELECT PK_Gebruiker , Gebruikersnaam , UserID FROM Gebruiker WHERE UserID = " . $UserID . " "; $stmt=$con->prepare($sql); $stmt->execute(); ?> |
Het probleem is dat mijn 'oplossing' hiertegen niet werkte en ik verder geen idee heb hoe het op te lossen...quote:Op dinsdag 19 augustus 2014 23:42 schreef remi1986 het volgende:
Zo heeft dat hele prepare geen enkel nut. Nu is alsnog SQL injectie mogelijk.
De queries zijn goed. Regel 403 in edit.phpquote:Op dinsdag 19 augustus 2014 23:11 schreef zarGon het volgende:
[..]
Zou je mij ook kunnen voorzien van de goede SQL-query? (De inserts en de edits...) Dan kan ik in ieder geval eventueel zelf verder.
1 2 3 4 5 | <?php $stmt->bind_param(1, $Rolafkorting, PDO::PARAM_STR); $stmt->bind_param(2, $Rolomschrijving, PDO::PARAM_STR); $stmt->bind_param(3, $PK, PDO::PARAM_STR); ?> |
1 2 3 | <?php $stmt->execute(array($Rolafkorting, $Rolomschrijving, $pk)); ?> |
dit is standaard PDO?quote:Op dinsdag 19 augustus 2014 23:57 schreef Nattekat het volgende:
[..]
Het probleem is dat mijn 'oplossing' hiertegen niet werkte en ik verder geen idee heb hoe het op te lossen...
Er is wel aan gedacht iig.
(of dit is een ander die over het hoofd gezien is)
1 2 3 4 5 6 7 | <?php $stmt = $db->prepare("SELECT * FROM table WHERE id=? AND name=?"); $stmt->bindValue(1, $id, PDO::PARAM_INT); $stmt->bindValue(2, $name, PDO::PARAM_STR); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); ?> |
1 2 3 4 5 6 | <?php $stmt = $db->prepare("SELECT * FROM table WHERE id=:id AND name=:name"); $stmt->bindValue(':id', $id, PDO::PARAM_INT); $stmt->bindValue(':name', $name, PDO::PARAM_STR); $stmt->execute(); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); |
1 2 3 4 | <?php $stmt = $db->prepare("SELECT * FROM table WHERE id=:id AND name=:name"); $stmt->execute(array(':name' => $name, ':id' => $id)); $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); |
Dacht ik ook, ik heb waarschijnlijk een fout gemaakt waardoor het niet werkte. Mijn kennis ligt meer bij html en sql helaas...quote:Op woensdag 20 augustus 2014 00:04 schreef remi1986 het volgende:
[..]
dit is standaard PDO?
[ code verwijderd ]
[ code verwijderd ]
[ code verwijderd ]
Heb ik wat leesvoer voor je danquote:Op woensdag 20 augustus 2014 00:06 schreef Nattekat het volgende:
[..]
Dacht ik ook, ik heb waarschijnlijk een fout gemaakt waardoor het niet werkte. Mijn kennis ligt meer bij html en sql helaas...
Shmoopy was inderdaad, samen met RemCow en mij ooit GM.quote:Op maandag 16 juni 2014 10:11 schreef zarGon het volgende:
[..]
Dat zal dan voor 2004 zijn geweest?
Zoals je ziet is er een link geplaatst naar de MED. Als jij een link hebt (waarin staat dat zij Global Moderator is geworden), dan zie ik die graag..
In voorjaar 2004 was het beruchte voorval waardoor ik crew-af werd (opgezocht: 4 april 2004)quote:In april 2000 werd ik Moderator van Onzin, en ben dit altijd gebleven. Eerst met Knut, toen alleen, daarna met Vork en nu weer met Knut.
In augustus 2000 een extra baantje erbij, Global Mod.
1 2 3 4 5 | <?php $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); $uAnne_i1 = $uAnne_s1->diff($uAnne_e1)->days; ?> |
Mods met meerdere fora hebben dus meerdere van zulke berekeningen. Anne heeft er bijvoorbeeld 9.quote:181
1 2 3 | <?php $uAnne_total = $uAnne_i1 + $uAnne_i3 + $uAnne_i5 + $uAnne_i6; ?> |
Nu wilde ik de ranglijst uitbreiden; naast het aantal in dagen, wil ik het aantal ook weergeven in jaren/maanden/dagen. Bedoel, "3 j, 4 m, 26 d" zegt meer dan '1244 dagen'.quote:2297 (181+188+98+1830)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php // PUB $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); $uAnne_i1 = $uAnne_s1->diff($uAnne_e1)->days; // datediff in dagen $uAnne_i1_ymd = $uAnne_s1->diff($uAnne_e1); // wordt gebruikt voor ymd-berekening // F&F $uAnne_s3 = new DateTime("2006-08-07"); $uAnne_e3 = new DateTime("2007-02-11"); $uAnne_i3 = $uAnne_s3->diff($uAnne_e3)->days; // datediff in dagen $uAnne_i3_ymd = $uAnne_s3->diff($uAnne_e3); // wordt gebruikt voor ymd-berekening // Opsomming PUB + F&F in dagen (werkend!): $uAnne_total = $uAnne_i1 + $uAnne_i3; // YMD, niet werkend: $uAnne_total_ymd = $uAnne_i1_ymd + $uAnne_i3_ymd $uAnne_ymd = $uAnne_total_ymd->y . " j, " . $uAnne_total_ymd->m." m, ".$uAnne_total_ymd->d." d"; // Voorbeeldresultaat: 1 j, 2 m, 3 d ?> |
Maanden met 31 of 28/29 dagen dan?quote:Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
Dan heb je een resultaat dat relatief is. Je houdt geen rekening met een aantal zaken, zoals schrikkeljaren bijvoorbeeld.quote:Op vrijdag 12 december 2014 10:21 schreef Nattekat het volgende:
Je kan het aantal dagen delen door 365 en naar beneden afronden, daarna delen door 30 voor het aantal maanden, en wat je onderhoud is het aantal dagen.
1 2 3 4 | <?php $uAnne_s1 = new DateTime("2005-08-16"); $uAnne_e1 = new DateTime("2006-02-13"); ?> |
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?quote:Op vrijdag 12 december 2014 12:04 schreef remi1986 het volgende:
gooi die dates in een strtotime. Het verschil daartussen is het aantal seconden. Dat weer delen door 60 heb je aantal minuten etc.
ow wacht .. diff() is beter inderdaad.quote:Op vrijdag 12 december 2014 12:08 schreef zarGon het volgende:
[..]
Is dat niet hetzelfde als delen door 365/30? Door het in seconden te plaatsen en dat te delen mis je de context, no?
1 2 3 4 5 6 7 8 9 10 11 12 | <?php $january = new DateTime('2010-01-01'); $february = new DateTime('2010-02-01'); $interval = $february->diff($january); // %a will output the total number of days. echo $interval->format('%a total days')."\n"; // While %d will only output the number of days not already covered by the // month. echo $interval->format('%m month, %d days'); ?> |
Dit was ik ook tegengekomen, maar dit werkte ook niet.quote:Op vrijdag 12 december 2014 12:13 schreef remi1986 het volgende:
[..]
ow wacht .. diff() is beter inderdaad.
[ code verwijderd ]
The above example will output:
31 total days
1 month, 0 days
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |