abonnement Unibet Coolblue Bitvavo
pi_41418819
quote:
Op zaterdag 2 september 2006 11:28 schreef super-muffin het volgende:
oke dat was makkelijk

en dat voor mijn edit? Hoe verhelp ik dat?
uh een submit gebruiken (m.b.v. javascript je link dus een formulier laten submitten met een veld dat het id als waarde heeft) en dan checken of je een post waarde hebt?
pi_41419366
hm, klinkt ingewikkeld. Ik weet niet veel van Javascript, is er geen andere manier?
pi_41419486
<form method="post" action="$server">
<input type="hidden" name="id" value="$row[id]">
<input type="submit" value="del">
</form>
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41419518
Uhm, wat dacht je van die
1
2
3
if(isset($_GET['id']) ) {
mysql_query('DELETE FROM leden WHERE id='.$_GET['id']);
    } 


Boven je select query te plaatsen?

En please, zet error_reporting(E_ALL) aan zodat je geen ranzige code meer schrijft

$row[id] => Dat verwijst naar een constante met de naam id maar wat je eigenlijk wil is '$row['id'] gebruiken. Hiermee verwijs naar het element met de naam 'id' in je array
pi_41419810
Oe leuk, en dan een leuke SQL query toevoegen aan $_GET['id'] zodat er tabellen gedropt worden
[20:25] [Knut] Een vrouw met een kerst fetish...
[20:26] [Knut] Niet zo letterlijk dat ik haar met baard om moet HOHOHOEN
[20:26] [Knut] maar je snapt het idee wel.
pi_41419841
Ow, en het is beter gebruik om een status veld toe te voegen aan je database en dat status veld in je query's te gebruiken.
informatie daadwerkelijk deleten komt je nog al eens duur te staan
[20:25] [Knut] Een vrouw met een kerst fetish...
[20:26] [Knut] Niet zo letterlijk dat ik haar met baard om moet HOHOHOEN
[20:26] [Knut] maar je snapt het idee wel.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:28:35 #232
1972 Swetsenegger
Egocentrische Narcist
pi_41420039
quote:
Op zaterdag 2 september 2006 12:20 schreef Knut het volgende:
Ow, en het is beter gebruik om een status veld toe te voegen aan je database en dat status veld in je query's te gebruiken.
informatie daadwerkelijk deleten komt je nog al eens duur te staan
Tja, als je zo bang bent om het verkeerde te deleten, kan je beter geen delete optie inbouwen
pi_41420061
quote:
Op zaterdag 2 september 2006 12:18 schreef Knut het volgende:
Oe leuk, en dan een leuke SQL query toevoegen aan $_GET['id'] zodat er tabellen gedropt worden
jaa leuk
probeer het maar eens en bederf je eigen voorpret
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41420116
quote:
Op zaterdag 2 september 2006 12:20 schreef Knut het volgende:
Ow, en het is beter gebruik om een status veld toe te voegen aan je database en dat status veld in je query's te gebruiken.
informatie daadwerkelijk deleten komt je nog al eens duur te staan
in eerste instantie deed ik dat ook altijd, en aan de ene kant heeft het ook zeker voordelen. maar aan de andere kant wordt je database er niet schoner en kleiner op. ik ben er vanaf gestapt, zonder spijt tot nog toe.
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:31:32 #235
1972 Swetsenegger
Egocentrische Narcist
pi_41420124
quote:
Op zaterdag 2 september 2006 12:29 schreef Desdinova het volgende:

[..]

jaa leuk
probeer het maar eens en bederf je eigen voorpret
Want?
je stukje code staat wijd open voor sqlinjection hoor
pi_41420253
quote:
Op zaterdag 2 september 2006 12:31 schreef Swetsenegger het volgende:

[..]

Want?
je stukje code staat wijd open voor sqlinjection hoor
niet mijn stukje code maar dubbele sql queries worden niet meer uitgevoerd door mysql_query() toch?
As a rule, I never touch anything more sophisticated and delicate than myself.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 12:42:37 #237
1972 Swetsenegger
Egocentrische Narcist
pi_41420361
quote:
Op zaterdag 2 september 2006 12:38 schreef Desdinova het volgende:

[..]

niet mijn stukje code maar dubbele sql queries worden niet meer uitgevoerd door mysql_query() toch?
Sinds wanneer? en daarnaast hoeft het geen dubbele query te zijn, als je je in id een and ofzo plakt krijg je al meer informatie terug dan voor jou bedoelt is. Zie een discussie die ik had met jera in 1 van de oudere topics waarin ik ook iets teveel vertrouwde op magic quotes en dergelijke. Staat ook een werkend voorbeeld in.
pi_41420556
quote:
Op zaterdag 2 september 2006 12:42 schreef Swetsenegger het volgende:

[..]

Sinds wanneer? en daarnaast hoeft het geen dubbele query te zijn, als je je in id een and ofzo plakt krijg je al meer informatie terug dan voor jou bedoelt is. Zie een discussie die ik had met jera in 1 van de oudere topics waarin ik ook iets teveel vertrouwde op magic quotes en dergelijke. Staat ook een werkend voorbeeld in.
ok top
ga ik me ff wat meer verdiepen in sql injection, want ik vertrouw idd ook op de magic quotes atm.
As a rule, I never touch anything more sophisticated and delicate than myself.
pi_41420752
quote:
Op zaterdag 2 september 2006 02:35 schreef JeRa het volgende:

[..]

In PHP is een punt de operator voor concatenatie (optelling) van twee strings. Voorbeeldje:
[ code verwijderd ]

Maar hoogstwaarschijnlijk is het gewoon een toevallige regeleinde die niet consequent wordt toegepast in die video tut?
ok duidelijk
pi_41422423
Of je gebruikt sprintf() om van het gezeik af te zijn:

$sql = sprintf("DELETE FROM leden WHERE id=%d",$_GET['id']);

Maar natuurlijk kan sprintf() ook nog helpen (er zijn meerdere mogelijkheden) bij XSS probleempjes omdat je gemakkelijk de lengte en format van een string (of int,float whatever) kan beperken.

Maar aangezien het voorbeeld lijkt te gaan over een CMSachtig iets waar niet iedereen zo maar gebruikersbeheer kan toepassen (of google alle links kan volgen, ook leuk) valt het probleem hier nogal mee.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 14:15:24 #241
1972 Swetsenegger
Egocentrische Narcist
pi_41422662
quote:
Op zaterdag 2 september 2006 14:06 schreef smesjz het volgende:
Of je gebruikt sprintf() om van het gezeik af te zijn:

$sql = sprintf("DELETE FROM leden WHERE id=%d",$_GET['id']);

Maar natuurlijk kan sprintf() ook nog helpen (er zijn meerdere mogelijkheden) bij XSS probleempjes omdat je gemakkelijk de lengte en format van een string (of int,float whatever) kan beperken.

Maar aangezien het voorbeeld lijkt te gaan over een CMSachtig iets waar niet iedereen zo maar gebruikersbeheer kan toepassen (of google alle links kan volgen, ook leuk) valt het probleem hier nogal mee.
http://www.php.net/mysql_real_escape_string
pi_41425698
Voor dat soort dingetjes is PDO wel zo handig. Omslachtig, maar handig:

1
2
3
4
5
6
7
8
9
$db = new PDO('mysql:host=mysqlhost;dbname=dbnaam', 'naam', 'ww');

// Prepare statement
$stmt = $db->prepare('DELETE FROM `leden` WHERE `naam` = :naam');
$stmt->bindValue('naam', 'Danny');

// Execute
$stmt->execute();
unset($stmt);


Werkt voor strings, integers, floats, etc. en je hebt nooit meer last van SQL injection (zolang je exceptions maar catcht).
pi_41429448
Lang leve intval() en mysql_real_escape_string().
pi_41430918
Als ik een query als deze heb:

1SELECT COUNT(iets) as aantal FROM orders GROUP BY datum ORDER BY datum DESC


Dan komt daar 1 kolom uit met 100 rijen en in elke cel een getal. Is er een manier om dat simpel om te zetten naar een array? Dus iets als:

1
2
3
<?php
$data
= array (10, 20, 30, 15, 39, 29, 3);
?>


Zodat ik dus het resultaat van die query als array kan gebruiken? Omdat er maar 1 kolom uit komt kan het dus simpel in een 1 dimensionale array, maar ik kan daar zo snel niet een makkelijke functie voor vinden.
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 19:47:32 #245
1972 Swetsenegger
Egocentrische Narcist
pi_41430966
$row['aantal'] is toch al een array
pi_41431140
quote:
Op zaterdag 2 september 2006 12:20 schreef Knut het volgende:
Ow, en het is beter gebruik om een status veld toe te voegen aan je database en dat status veld in je query's te gebruiken.
informatie daadwerkelijk deleten komt je nog al eens duur te staan
dat is een goeie

En dan in de mysql_query zeggen dat alleen de actieve worden geselecteerd neem ik aan
-edit-
heel slim, dat is precies wat je zegt
pi_41431401
quote:
Op zaterdag 2 september 2006 19:47 schreef Swetsenegger het volgende:
$row['aantal'] is toch al een array
Die snap ik niet? Als ik het volgende heb:

1
2
3
<?php
$result
= mysql_query("SELECT COUNT(*) as aantal FROM orders GROUP BY datum ORDER BY datum DESC LIMIT 100");
?>


Hoe krijg ik dan daar een array uit?
pi_41431517
quote:
Op vrijdag 1 september 2006 21:22 schreef Piles het volgende:

[..]

Jep (als DATETIME, als dat nog uitmaakt).
Maar MySQL werkt nu gewoon door elkaar. Hij selecteert de laatste datum en zomaar een foto
Ik heb de moed inmiddels opgegeven. Allerlei querys geprobeerd (ook met timestamp), maar ik krijg niet de laatste foto. Ik heb nu gewoon geen GROUP BY erbij staan, maar mocht iemand nog een idee hebben
  FOK!-Schrikkelbaas zaterdag 2 september 2006 @ 20:06:37 #249
1972 Swetsenegger
Egocentrische Narcist
pi_41431555
quote:
Op zaterdag 2 september 2006 20:01 schreef HuHu het volgende:

[..]

Die snap ik niet? Als ik het volgende heb:
[ code verwijderd ]

Hoe krijg ik dan daar een array uit?
mysql_fetch_array of mysql_fetch_assoc?
pi_41431580
quote:
Op zaterdag 2 september 2006 14:06 schreef smesjz het volgende:
Of je gebruikt sprintf() om van het gezeik af te zijn:

$sql = sprintf("DELETE FROM leden WHERE id=%d",$_GET['id']);

Maar natuurlijk kan sprintf() ook nog helpen (er zijn meerdere mogelijkheden) bij XSS probleempjes omdat je gemakkelijk de lengte en format van een string (of int,float whatever) kan beperken.

Maar aangezien het voorbeeld lijkt te gaan over een CMSachtig iets waar niet iedereen zo maar gebruikersbeheer kan toepassen (of google alle links kan volgen, ook leuk) valt het probleem hier nogal mee.
Dit voorbeeld is niet voor een CMS of zo. Maar ik wil het wel gaan gebruiken in een heel erg basis CMS waar voor moet ingelogd worden zo dat niet iedereen er bij kan.
abonnement Unibet Coolblue Bitvavo
Forum Opties
Forumhop:
Hop naar:
(afkorting, bv 'KLB')