Data met een form inserten in MySQL Database ( advance )

Status
Niet open voor verdere reacties.

indexspelen

Gebruiker
Lid geworden
17 mei 2008
Berichten
90
De titel zegt het al ;)

Helaas is mijn probleem iets moeilijker dan dat.
Ik wil met een form kiezen in welke tabel mijn data moet komen.
Ik zal even mijn script met jullie delen:
HTML:
<form action="insert.php" method="post">
Tabel <input type="text" name="tabel" />
Link <input type="text" name="link" />
Nummer: <input type="text" name="nummer" />
<input type="submit" value="voeg toe" />
</form>

PHP:
<?php
$con = mysql_connect("localhost","usrnme","password");
if (!$con)
 {
 die('Could not connect ' . mysql_error());
 }

mysql_select_db("indexspelen_be",$con);
$sql="INSERT INTO shoutbox (link, nummer)
VALUES
('$_POST[link]','$_POST[nummer]')";

if (!mysql_query($sql,$con))
  {
  die('Error: ' . mysql_error());
  }
echo "1 record added";mysql_close($con)
?>

Zo..
Nu wil ik dit bereiken:
Ik wil dat wat ik invul bij de form, naam: tabel
Komt in insert.php op de plek van 'shoutbox' , na $sql="INSERT INTO

Ik hoop dat mijn vraag duidelijk is.
Mvg.
 
Laatst bewerkt:
Ehh...

$sSQL = "INSERT INTO " . $tabel . " ( veld, veld2 ) VALUES ( 'a', 'b' ) ";

Een query is gewoon een string die verzonden wordt, dus je kunt zonder problemen de tabel naam erin plakken.

Je moet alleen goed opletten dat de naam van een bestaande tabel wordt meegegeven, en niet een tabel die niet bestaat (of een SQL-injection, want je kunt dit niet escapen! het is geen waarde)
 
Dus het wordt:
$sql="INSERT INTO " . $_POST['tabel'] . " (link, nummer)

en dan klopt alles eigenlijk :p?
 
Jep, behalve natuurlijk dat als de tabel niet bestaat, je query faalt, en dat als iemand een string als
Code:
 ; DROP DATABASE;
of hoe het precies moet zijn (ik zou het niet proberen) meestuurt, je hele database verwijderd wordt :)

Ik zou dus wel even heel goed opletten wat je precies doorlaat, en waar je een error op geeft.
(En ik zal het er even bij zetten; een <select> ervan maken is geen oplossing, dan kunnen er nog steeds foute dingen ingezonden worden )

Maar verder zal het gewoon werken.
 
Ik zal er zeker wat bij zetten waardoor het beveiligd wordt :p

Merci voor je uitleg, Frats
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan