Toon posts:

PHP SQL query

Pagina: 1
Acties:
  • 618 views

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hoi mede Tweakers,

Ik ben een gastenboek aan het maken op mijn site, ik wil graag dat ik zelf berichten kan verwijderen zonder eerst in mn database te spitten. Mijn site is roy.drukproef.com .

De query die ik bij de verwijder knop wil maken bij elk bericht is deze, en dit is dus waar ik niet verder kom:

PHP:
1
mysql_query(DELETE FROM gallerei WHERE id=*waar ik niet verder kom*)


Hoe zorg ik ervoor dat de query alleen het bericht oppikt wat bij de verwijder knop hoort?

Acties:
  • 0 Henk 'm!

Verwijderd

Door te zorgen dat het ID van het te verwijderen item in de query komt te staan. Misschien is het een idee om bij hoofdstuk 1 te beginnen in plaats van alles over te slaan en te denken dat je onmiddelijk iets functioneels kunt programmeren.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op zaterdag 07 februari 2009 @ 19:32:
Door te zorgen dat het ID van het te verwijderen item in de query komt te staan. Misschien is het een idee om bij hoofdstuk 1 te beginnen in plaats van alles over te slaan en te denken dat je onmiddelijk iets functioneels kunt programmeren.
Ben ik allang. Ik heb dit ook met hulp geprogrammeert aangezien ik redelijk nieuw ben met PHP. Je hoeft me niet meteen zo af te katten.

Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Als je een formuliertje verstuurd waar je vinkjes kan zetten bij de comments die je wilt verwijderen dan kan je zo de ID's van de comments doorsturen. Die kan je daarna eenvoudig uit de $_POST superglobal halen en na controle gebruiken in je query.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • Sjoerd
  • Registratie: December 2003
  • Niet online
Maar hij geeft wel een antwoord, de id van je bericht moet daar komen... ;)

Modelbouw - Alles over modelbouw, van RC tot diorama


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Sjoerd schreef op zaterdag 07 februari 2009 @ 19:37:
Maar hij geeft wel een antwoord, de id van je bericht moet daar komen... ;)
Ja maar hoe doe je dit? :p
Als ik de variable $id gebruik verwijderd ie alles.

Acties:
  • 0 Henk 'm!

Verwijderd

Verwijderd schreef op zaterdag 07 februari 2009 @ 19:38:

Als ik de variable $id gebruik verwijderd ie alles.
Er is niets wat je voor $id in zou kunnen vullen dat alles verwijdert, tenzij je geen getal invult maar een stuk SQL injecteert.

Acties:
  • 0 Henk 'm!

  • RedFox
  • Registratie: November 2001
  • Laatst online: 16:58

RedFox

Heb je een OV ofzo?

Verwijderd schreef op zaterdag 07 februari 2009 @ 19:47:
[...]

Er is niets wat je voor $id in zou kunnen vullen dat alles verwijdert, tenzij je geen getal invult maar een stuk SQL injecteert.
behalve als je overal dezelfde id gebruikt....

You are not special. You are not a beautiful or unique snowflake. You're the same decaying organic matter as everything else.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dit is mijn hele code misschien helpt dat:

*snip*

[ Voor 97% gewijzigd door Creepy op 07-02-2009 20:43 . Reden: To much....... ]


Acties:
  • 0 Henk 'm!

  • vorlox
  • Registratie: Juni 2001
  • Laatst online: 02-02-2022

vorlox

I cna ytpe 300 wrods pre miute

Ah ik denk dat dat idd je probleem is.

Acties:
  • 0 Henk 'm!

  • Salomon
  • Registratie: Mei 2008
  • Laatst online: 05-07 13:54
Maak een hidden formfield aan met daarin de waarde van $id2, en vervolgens (na wat checks) $_POST['bericht_id'] voor het id invullen.

Acties:
  • 0 Henk 'm!

  • HendrikN
  • Registratie: Februari 2007
  • Laatst online: 16:23
En waar voer je de DELETE-query uit?Heeft een bericht uberhaupt wel een ID? :o

En uit wat voor vogel komt een gallerei?

[ Voor 21% gewijzigd door HendrikN op 07-02-2009 19:56 ]


Acties:
  • 0 Henk 'm!

Verwijderd

RedFox schreef op zaterdag 07 februari 2009 @ 19:49:

behalve als je overal dezelfde id gebruikt....
Dat is helemaal waar. Ik doe wellicht onterechte aannames over de kennis en inzicht van de topicstarter :)

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
HendrikN schreef op zaterdag 07 februari 2009 @ 19:55:
En waar voer je de DELETE-query uit?Heeft een bericht uberhaupt wel een ID? :o

En uit wat voor vogel komt een gallerei?
Ja in mn database (auto increment) :)

Acties:
  • 0 Henk 'm!

  • Salomon
  • Registratie: Mei 2008
  • Laatst online: 05-07 13:54
Behalve mijn laatste bericht ben ik meer voor een knopje verwijderen, <a href="blaat.php?id={$id2}&action=delete">Verwijder</a> ofzo.

Acties:
  • 0 Henk 'm!

Verwijderd

Salomon schreef op zaterdag 07 februari 2009 @ 20:04:
Behalve mijn laatste bericht ben ik meer voor een knopje verwijderen, <a href="blaat.php?id={$id2}&action=delete">Verwijder</a> ofzo.
Het lijkt mij zeer onverstandig om zoiets met een GET request te doen.

Acties:
  • 0 Henk 'm!

  • MidnightMotion
  • Registratie: April 2002
  • Laatst online: 03-04-2022
Verwijderd schreef op zaterdag 07 februari 2009 @ 20:06:
[...]

Het lijkt mij zeer onverstandig om zoiets met een GET request te doen.
Hoe zou je het anders doen? POST? Das weinig tot niks veiliger, zolang je voor het verwijderen maar checked of er iemand is ingelogd die de functie mag uitvoeren zie ik niet wat hier het probleem van is.

Eigenaar van domoticavergelijken.info


Acties:
  • 0 Henk 'm!

  • Salomon
  • Registratie: Mei 2008
  • Laatst online: 05-07 13:54
Ik snap ook niet waarom je dat onveilig vindt, je moet alles wel gewoon checken maar post is maar een halve procent lastiger om na te maken...

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Oke die verwijder link doet het in ieder geval (dat hij naar de goede link van het id gaat). Hoe doe ik nu met die ?action=delete ?
Ik ben hier nogal nieuw in, sorry dat ik domme vragen of iets stel.

[ Voor 12% gewijzigd door Verwijderd op 07-02-2009 20:23 ]


Acties:
  • 0 Henk 'm!

  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

MidnightMotion schreef op zaterdag 07 februari 2009 @ 20:20:
[...]


Hoe zou je het anders doen? POST? Das weinig tot niks veiliger, zolang je voor het verwijderen maar checked of er iemand is ingelogd die de functie mag uitvoeren zie ik niet wat hier het probleem van is.
POST acties worden niet door een prefetcher uitgevoerd, formulieren worden niet ingestuurd door zoekmachines en URL's komen in je history en mogelijk ook favorieten waardoor acties ongewenst nogmaals uitgevoerd kunnen worden.

Sole survivor of the Chicxulub asteroid impact.


Acties:
  • 0 Henk 'm!

  • Salomon
  • Registratie: Mei 2008
  • Laatst online: 05-07 13:54
dan zet je daarna een
if($_GET['action'] == 'delete') {
// wat checks om te kijken of de permissies goed zijn
// dan je verwijder query
}

Acties:
  • 0 Henk 'm!

  • Salomon
  • Registratie: Mei 2008
  • Laatst online: 05-07 13:54
AtleX schreef op zaterdag 07 februari 2009 @ 20:24:
[...]

POST acties worden niet door een prefetcher uitgevoerd, formulieren worden niet ingestuurd door zoekmachines en URL's komen in je history en mogelijk ook favorieten waardoor acties ongewenst nogmaals uitgevoerd kunnen worden.
Je moet die url ook beveiligen met een if he... Zodat ongeautoriseerde gebruikers/bots het niet kunnen zien.
Verder vind ik het interessant hoe je een bericht twee keer wil verwijderen?

Acties:
  • 0 Henk 'm!

  • sub0kelvin
  • Registratie: September 2002
  • Laatst online: 10-08-2023
Verwijderd schreef op zaterdag 07 februari 2009 @ 20:06:
[...]

Het lijkt mij zeer onverstandig om zoiets met een GET request te doen.
Het kan wel via een GET, mits je een "weet u dat zeker" gebruikt of een unieke en niet te raden token. (En bij voorkeur niet echt verwijderen maar een "deleted" flag activeren zodat je het altijd ongedaan kunt maken).
Salomon schreef op zaterdag 07 februari 2009 @ 20:24:
dan zet je daarna een
if($_GET['action'] == 'delete') {
// wat checks om te kijken of de permissies goed zijn
// dan je verwijder query
}
Dan zit je nog altijd met cross-site request forgeries. Een losse GET zonder gebruikers-confirmatie of item-afhankelijke tokens is erg gevaarlijk.

[ Voor 32% gewijzigd door sub0kelvin op 07-02-2009 20:36 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Salomon schreef op zaterdag 07 februari 2009 @ 20:25:

Je moet die url ook beveiligen met een if he... Zodat ongeautoriseerde gebruikers/bots het niet kunnen zien.
Verder vind ik het interessant hoe je een bericht twee keer wil verwijderen?
Je kunt zeggen wat je wilt, maar acties waarbij gegevens op de server worden gewijzigd moet je niet via GET requests doen, punt. Als je dat zélf wilt doen omdat je daar voor jezelf hele goede redenen voor kunt bedenken, gebruik het dan zélf, maar ga het niet aan anderen aanraden :)

Acties:
  • 0 Henk 'm!

  • Cosca
  • Registratie: Mei 2006
  • Laatst online: 14-11-2023
Voor dit soort dingen zijn GET requests toch echt af te raden...
Er is een grote kans dat iemand je ongewild op die link laat klikken, zonder dat je het door hebt..
Zijn allemaal hele fancy termen voor, maar laten we het erop houden dat het wordt afgeraden.

Een post moet je zelf versturen.

//edit:
Verwijderd schreef op zaterdag 07 februari 2009 @ 20:29:
[...]

Je kunt zeggen wat je wilt, maar acties waarbij gegevens op de server worden gewijzigd moet je niet via GET requests doen, punt. Als je dat zélf wilt doen omdat je daar voor jezelf hele goede redenen voor kunt bedenken, gebruik het dan zélf, maar ga het niet aan anderen aanraden :)
couldn't agree more

[ Voor 42% gewijzigd door Cosca op 07-02-2009 20:32 . Reden: toevoeging ]


Acties:
  • 0 Henk 'm!

  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 21:37

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op zaterdag 07 februari 2009 @ 19:52:
Dit is mijn hele code misschien helpt dat:

*snip*
Hier op GoT is het in eerst instantie de bedoeling dat je zelf opzoek gaat naar een oplossing. Je volledige code maar dumpen en hopen dat wij het voor je gaan fixen is niet de bedoeling.

Ondanks dat je zelf aangeeft dit al gedaan te hebben wil ik je toch vragen er een PHP-MySQL tutorial bij te pakken. Die kunnen je precies uitleggen hoe je vanuit PHP code zaken moet aanpassen/verwijderen in een DB. Dus ook hoe je een variabele in je query krijgt etc. Dit is echt een stukje basiskennis wat je jezelf zonder problemen aan zou moeten kunnen leren.

Lukt het dan alsnog niet dan kan je een nieuw topic openen. Maar geef dan minsten aan wat je zelf al hebt geprobreerd en wat daar niet mee lukte. Code erbij plaatsen is prima maar plaats alleen relevante code (zoals een klein stukje dat je probleem reproduceert) i.p.v. domweg maar alle code te plaatsen.

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Verwijderd schreef op zaterdag 07 februari 2009 @ 20:22:
Ik ben hier nogal nieuw in, sorry dat ik domme vragen of iets stel.
Domme vragen bestaan niet zeggen ze ;) Wat echter wél jammer is is dat het hier over iets behoorlijk basics gaat; iets wat elke goede tutorial je in een kwartier heeft bijgebracht. Een if-statement hier-en-daar, een delete query en een id doorgeven in een url is echt basic stuff en ik wil je dan ook vriendelijk verzoeken eerst even te trachten je die basics eigen te maken. Dat scheelt 'domme' vragen (hey, we zijn allemaal ooit bij 0 begonnen hoor ;) ) maar vooral topics waarbij we iemand aan het handje naar de oplossing moeten leiden.

[edit]
Fijn; en dan schiet die engerd vlug even voor :+ Maar wel: what he said :Y)

[ Voor 9% gewijzigd door RobIII op 07-02-2009 20:48 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij

Pagina: 1

Dit topic is gesloten.