1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <?php $servername = "localhost"; $username = "root"; $password = ""; $dbname = "ArkEvolved"; // Create connection $conn = new mysqli($servername, $username, $password, $dbname); // Check connection if ($conn->connect_error) { die("Connection failed: " . $conn->connect_error); } if(isset($_POST['delete'])){ $deleteQuery="DELETE from arkevolved where id='$_post[hidden]'"; mysql_query($deleteQuery,$con); } //select data from database $sql = "SELECT id, name, map FROM arkevolved"; $result = mysqli_query($conn, $sql); if ($result->num_rows > 0) { echo "<table><tr><th>ID</th><th>Name</th><th>Diet</th></tr>"; while($row = $result->fetch_assoc()) { echo "<tr><td>".$row["id"]."</td><td>".$row["name"]." </td> <td>".$row["map"]."</td><td>".$row "<input type=submit name=delete value=delete" . "'</td></tr>"; } echo "</table>"; } else { echo "0 results"; } $conn->close(); } ?> |
1 | $deleteQuery="DELETE from arkevolved where id=".$_POST["hidden"]; |
Maak er dan op zijn minst (int)$_POST van...quote:Op woensdag 12 april 2017 01:37 schreef Ralphmeister het volgende:
Er is al genoeg gezegd over de belabberde code maar pas de delete regel eens aan naar onderstaande..
[ code verwijderd ]
Je moet gewoon een moderne db lib gebruiken, met ondersteuning voor sql placeholders. Niet zelf het wiel opnieuw gaan uitvinden. Want wat doe je dan als je een string als sql argument wil gebruiken? De meeste oplossingen die daarvoor zelf verzonnen worden zijn zo lek als een mandje. Doe dat niet.quote:Op woensdag 12 april 2017 06:49 schreef Barrah het volgende:
[..]
Maak er dan op zijn minst (int)$_POST van...
1 2 3 4 5 6 7 8 9 10 11 12 | <?php try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { die( 'Connection failed: ' . $e->getMessage() ); } $sql = "DELETE from arkevolved where id = :id"; $sth = $dbh->prepare($sql); $sth->execute( array( ':id' => $_POST['hidden'] ) ); // etc. ?> |
Dit is inderdaad het echte antwoord. Maar gezien het beginnersniveau van TS zou ik niet teveel verwachten.quote:Op woensdag 12 april 2017 10:14 schreef Farenji het volgende:
[..]
Je moet gewoon een moderne db lib gebruiken, met ondersteuning voor sql placeholders. Niet zelf het wiel opnieuw gaan uitvinden. Want wat doe je dan als je een string als sql argument wil gebruiken? De meeste oplossingen die daarvoor zelf verzonnen worden zijn zo lek als een mandje. Doe dat niet.
Zo bijv met PDO:
[ code verwijderd ]
Nog beter is om ook gelijk een moderne taal te gebruiken en met een HELE grote boog om PHP heen te lopen.quote:Op woensdag 12 april 2017 10:14 schreef Farenji het volgende:
[..]
Je moet gewoon een moderne db lib gebruiken, met ondersteuning voor sql placeholders
ben wel benieuwd welke moderne serverside taal je dan bedoeld?quote:Op woensdag 12 april 2017 11:48 schreef Aaargh! het volgende:
[..]
Nog beter is om ook gelijk een moderne taal te gebruiken en met een HELE grote boog om PHP heen te lopen.
Er zijn diverse mogelijkheden afhankelijk van wat je precies wilt doen.quote:Op woensdag 12 april 2017 13:34 schreef mschol het volgende:
[..]
ben wel benieuwd welke moderne serverside taal je dan bedoeld?
Perl is als taal haast nog erger als PHPquote:
Dat is een misvatting, veroorzaakt door onwetendheid. Perl is pure kunst. Poezie van de hoogste orde!quote:Op woensdag 12 april 2017 14:51 schreef Aaargh! het volgende:
[..]
Perl is als taal haast nog erger als PHP
Hallo Promille,quote:
Ik zal even in m'n glazenbol kijken wat je bedoelt met "een error". Of kun je misschien ons helpen met wat voor error je krijgt?quote:ik kom er niet uit met mijn opdracht voor PHP. Ik heb de delete query ergens van gekopieerd en probeer het te laten werken alleen mijn site geeft dus een error.
Welke tabel? Hoe ziet die tabel eruit? Als jij denkt dat het aan die tabel ligt, dan lijkt het me vrij relevant om die gegevens ook met ons te delen. Hoe moeten wij anders helpen?quote:Zelf denk ik dat ik een fout heb in de tabel, alleen krijg het niet opgelost.
Welke regel? Welke error?quote:Geeft trouwens error aan in die regel dat er , of ; mist.
Oke, ik zal de sql-injection en het totale gebrek aan controle of degene die je pagina aanroept daadwerkelijk de delete zou mogen uitvoeren even negeren.quote:hier de code... alvast bedankt:
[ code verwijderd ]
Perl is een write-only taal. Je kan er wel dingen in schrijven maar probeer achteraf maar eens te achterhalen wat een Perl script doet.quote:Op woensdag 12 april 2017 15:05 schreef Farenji het volgende:
[..]
Dat is een misvatting, veroorzaakt door onwetendheid. Perl is pure kunst. Poezie van de hoogste orde!
Ik wilde het beroemde 99 bottles of beer script posten maar die compileert niet meer in moderne versies van perl.quote:Op woensdag 12 april 2017 16:14 schreef Aaargh! het volgende:
[..]
Perl is een write-only taal. Je kan er wel dingen in schrijven maar probeer achteraf maar eens te achterhalen wat een Perl script doet.
Als je de shift knop ingedrukt houdt en je ramt 5 minuten lang op de bovenste rij van je toetsenbord is de kans groot dat het een geldig Perl script is.
Enige wat erger is is het config formaat van Sendmail.
|
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |