Door
- Rob -
op 28-11-2016 19:29
gewijzigd op 28-11-2016 19:33
5.681 views
Hallo PHP hulp! Ik heb een vraag: Hoe kan ik ervoor zorgen dat als ik op een plaatje druk dat die de data verwijderd van dat id. Hieronder screens met wat duidelijkere uitleg.
Dat is hoe de pagina eruit ziet, en als je op dat kruisje drukt, moet de data van die rij worden verwijderd. Maar dat is moeilijker door dit (denk ik):
Je kan hier geen form doen, zodat die de data kan met method"POST" of method "GET" kan gebruiken. Enige ideeën hoe ik kan zorgen dat als je op dat plaatje drukt dat de data verwijderd wordt met een SQL met het id wat daar links staat bij 'id'.
Dat kan ook, maar met AJAX is het sneller omdat je niet steedsheen en weer hoeft te klikken, omdat alles op de achtergrond wordt uitgevoerd, op de scrollpositie waar je ook was. Met jouw manier zal je scrollpositie weer verdwijnen naar boven.
Of je verwijderen.php nu bereikt via een formulier of een AJAX-request, in beide gevallen is het heel belangrijk dat je in dit standalone script controleert of de aanroeper wel de juiste rechten heeft om bepaalde acties uit te voeren, in dit geval het permanent verwijderen van items uit een database (wat is er trouwens op tegen om deze een "deleted" status te geven?).
Deze thread is nu al twee pagina's lang met allerlei puzzelstukjes aan het jongleren. Als je nu eens een stapje terug doet en eerst eens even stap voor stap door het plan loopt waarin wat beeldvorming plaatsvindt? Wat wil je precies doen en hoe ga je dit aanpakken?
Ik krijg de indruk dat de topicstarter maar (maximaal) half weet wat deze aan het doen is, en nog belangrijker, wat de implicaties van deze beslissingen allemaal kunnen zijn. Begin eens bij het begin.
Ik wil dit paneel zo snel mogelijk af hebben, zodat de eigenaar alvast topics kan uploaden op het forum. In een update verbeter ik alle foute en voeg ook een deleted status doe. Ik ben nog maar een paar dagen bezig met PHP, daarom weet ik ook niet helemaal waar ik mee bezig ben, maar zeker 3/4 deel snap ik wel. Ook kan alleen een administrator dingen verwijderen, andere mensen hebben daar geen rechten voor.
Ik wil dit paneel zo snel mogelijk af hebben, zodat de eigenaar alvast topics kan uploaden op het forum.
Het is vrij onhandig dat een systeem al in gebruik is wanneer je deze nog aan het bouwen bent.
In een update verbeter ik alle foute en voeg ook een deleted status doe.
Maar dat zou toch al in het ontwerp moeten zitten? De database vormt het fundament van je applicatie. Dit is zoiets als de grondvesten van een huis vervangen nadat je het huis gebouwd hebt :/.
Ik ben nog maar een paar dagen bezig met PHP, daarom weet ik ook niet helemaal waar ik mee bezig ben, maar zeker 3/4 deel snap ik wel.
Code kloppen doe je doorgaans aan het einde, na het (in grote lijnen) ontwerpen van je applicatie. Het schrijven van code zou niet meer dan een "uitdraai" van het ontwerp moeten zijn.
Ook kan alleen een administrator dingen verwijderen, andere mensen hebben daar geen rechten voor.
Zitten alle controles dan ook in verwijderen.php? Iedereen kan dit script aanroepen.
En paar dagen pas PHP kennen, en meteen al deadlines stellen. Ai ai ai.
Ik hoop dat je ook heel goed naar de veiligheid hebt gekeken. Want het zou zonde zijn als je site opeens malware serveert, of je database voor iedereen opent door een lek.
Alleen admins kunnen dat script aanroepen. En het systeem is nog niet in gebruik. En het is maar een paneel voor een retro bedrijf, waarom zou iemand dat willen hacken? Als niemand zijn persoonlijke wachtwoorden gebruikt is er volgensmij niet zo'n probleem. Maar ik zou het graag af willen hebben, zodat ik alle exploits en om er voor te zorgen dat het veilig is, zelf wil ik eerder het systeem afhebben zodat ik het aan de eigenaar kan showen.
Retro bedrijf? Ik moet toch niet aan illegale gelekte Habbo's denken, hé? ;-)
Okee, wees gewoon eerlijk naar je klant, en zeg dat je nog niet ervaren bent in PHP. Straks wordt jij nog verantwoordelijk gezien als het zo lek als een zeef is, en er persoonlijke data is uitgelekt.
Nu kan je nog terug!
Opgever is een vriend :D, hij weet dat ik nog niet ervaren ben. Maar er wordt niks vrijgegeven van IP, wachtwoord want mijn broer gaat zorgen dat wachtwoord niet te achterhalen is. En mail wordt voor iedereen aangemaakt op db. Ook nog een klein vraagje als t mogelijk is:
Als er een tijd is in de database wanneer de data is opgeslagen bijvoorbeeld: 2016-11-30 16:43:32 de datum en tijd is. Dat ik kan zorgen dat als php die tijd pakt uit de database, dat als het 9:59 minuten later is nog steeds toegang hebt tot bv. een pagina. En na precies 10 minuten na die tijd dat je geen toegang meer hebt. Dus dat php alles pakt van die tijd met tot en met 10 minuten later, 2016-11-30 16:53:32 en dat je dan dus geen toegang hebt, maar in de tussentijd wel.
Of het nu de koning of een een vriend is. Je wilt toch geen lekke en brakke applicatie aanbieden, met de ervaring die je nog maar enkele dagen hebt. Als ik dit topic zo doorlees is er nog weinig goede structuur.
En wat je hier mee bedoeld, snap ik niet helemaal:
En mail wordt voor iedereen aangemaakt op db.
Alle data sla je toch op in een database.
Mijn advies, en ik denk dat anderen wel mee zullen gaan hierin: Ga eerst zelf even lekker uitgebreid experimenteren met PHP, maar ga niet direct dingen live in productie brengen. Ik heb in mijn carriére van 15 jaar PHP al vaker dergelijke scripts gezien die in no-time gehacked werden, omdat de schrijvers nog maar net PHP kenden. Tegenwoordig vinden diverse hacks ook geautomatiseerd plaats.
En je tijdverhaal in je edit, geen idee wat je wilt zeggen. Maar als het ter beveiliging is, slaat het nergens op. Wat als iemand nou langer dan 10 minuten over een actie doet, zoals een nieuwsbericht schrijven?
Heb je al bekendheid met Remote file inclusion, XSS, CSRF en SQL-injection?