WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Mysql radera rad (https://www.wn.se/forum/showthread.php?t=36963)

Hoel 2009-05-20 23:29

Hejsan.
Jag har byggt en lätt bildupladdningsmotor.
När bilderna listas finns det en raderingsfunktion ;
Kod:

form action="'.$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING'].'" method="POST">
<input type="hidden" name="delete" value="DELETE image FROM IMAGE WHERE id='.$id.'" />
<input type="submit" value="Delete" />
</form>

Problemet är att databasen gör precis som jag vill :P
Den raderar allt, inklusive ID nummret.
Om jag raderar ALLA rader ur databasen, 1 - 24, så kommer nästa rad jag skapar få ett ID av 25.
Hur minskar jag samtilga ID då jag raderar en rad

Tack!

MMC 2009-05-20 23:36

Det vill du inte. Poängen med att ha auto_increment på en id-kolumn är att du ska få ett unikt ID för varje rad som läggs till i tabellen, och det blir ju inte unikt om du återanvänder gamla id:n.

Det låter som att den här frågan uppkom för att du försöker lösa ett annat problem/använda din id-kolumn på ett sätt som kanske inte är optimalt. Förklara gärna varför du vill att dina id:n ska minskas när du raderar en rad.

tartareandesire 2009-05-20 23:46

Exakt, varför måste du ha vissa siffror på ID-kolumnen? Är det för att du har problem med exempelvis slumpning av bilder annars så går det att lösa på annat mer lämpligt sätt.

allstars 2009-05-20 23:53

hjälp, varför skriver du SQL i en input???
du vet väl att man kan radera hela din databas pga detta, va?!

ge mig länk skall jag visa.

taz76 2009-05-21 00:30

Lägg inte heller $_SERVER['QUERY_STRING'] utan någon validering direkt i form action.. ;)

Citat:

Originally posted by allstars@May 20 2009, 23:53
hjälp, varför skriver du SQL i en input???
du vet väl att man kan radera hela din databas pga detta, va?
ge mig länk skall jag visa.

Så snällt av dig att visa ;)

tartareandesire 2009-05-21 00:32

Citat:

Ursprungligen postat av taz76
Lägg inte heller _SERVER[QUERY_STRING] utan någon validering direkt i form action..
Citat:

Ursprungligen postat av allstars
hjälp, varför skriver du SQL i en input???
du vet väl att man kan radera hela din databas pga detta, va?
ge mig länk skall jag visa.

Så snällt av dig att visa

Ska man vara petig så bör ur säkerhetsaspekt inte heller $_SERVER['PHP_SELF'] ligga där utan en explicit url utan variabler.

Perben 2009-05-21 12:26

Ooooh vilken farlig kod. Hoppas den inte används av nån annan än dig själv : )

Jonas 2009-05-21 17:07

Har du någon URL så skall jag hjälpa dig att få IDna i ordning när du raderar en rad.

tartareandesire 2009-05-21 17:15

Citat:

Originally posted by Jonas@May 21 2009, 17:07
Har du någon URL så skall jag hjälpa dig att få IDna i ordning när du raderar en rad.

Hehe =)

Är du rädd om din databas så lämnar du inte ut någon URL innan du täppt till säkerhetshålen vilka som påpekats är enorma i nuläget.

Jonas 2009-05-21 17:59

Citat:

Originally posted by tartareandesire@May 21 2009, 17:15
Hehe =)
Är du rädd om din databas så lämnar du inte ut någon URL innan du täppt till säkerhetshålen vilka som påpekats är enorma i nuläget.

Meeh, nu var du elak mot mig... :( :(

Jag skulle bara leka lite :(

Förresten, man kan inte klassa ovanstående kod som sårbar för SQL-Injections. Eftersom man behöver ju göra någon "injection" här ju... Vad skall man klassa det som?


Alla tider är GMT +2. Klockan är nu 18:39.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson