delete doormiddel van een post
ik had dit...
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$con = mysql_connect("3","2","1");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("coendamiaan", $con);
$sql="DELETE FROM ipban WHERE (ip)
VALUES
('$_POST[ip]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "IP is unbanned..";
mysql_close($con)
?>
$con = mysql_connect("3","2","1");
if (!$con)
{
die('Could not connect: ' . mysql_error());
}
mysql_select_db("coendamiaan", $con);
$sql="DELETE FROM ipban WHERE (ip)
VALUES
('$_POST[ip]')";
if (!mysql_query($sql,$con))
{
die('Error: ' . mysql_error());
}
echo "IP is unbanned..";
mysql_close($con)
?>
Code (php)
1
Error: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'VALUES ('82.82.83.234')' at line 2
BUT!.......
that dont work :(
Gewijzigd op 01/01/1970 01:00:00 door Damiaan
Code (php)
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
<?php
$sql="
DELETE FROM
ipban
WHERE
ip = '".mysql_real_escape_string($_POST[ip])."'
";
?>
$sql="
DELETE FROM
ipban
WHERE
ip = '".mysql_real_escape_string($_POST[ip])."'
";
?>
mysql_real_escape_string() is er voor de veiligheid, userinput (bv. een POST) mag nooit zonder beveiliging in een query worden gezet. Doe je dat wel, dan moet je niet zeuren dat je op een slechte dag in één klap jouw database kwijt bent.
Vergeet niet om met mysql_affected_rows() te controleren of er wel een record is verwijderd, alleen controleren of de query technisch is gelukt, is onvoldoende. Een query die technisch lukt, kan best wel eens helemaal niets uitvoeren, zie de WHERE in de query. Wellicht is er helemaal geen record die aan de voorwaarden voldoet.
Offtopic: Ik verwijder zelden iets, geef gewoon de status op van een record: "verwijderd" of "actief". Data staat maar zelden in de weg.
Edit: stond nog wat quote-rommel die er niet hoorde te staan.
@Barman: Het is nog vroeg...
Gewijzigd op 01/01/1970 01:00:00 door Frank -
$sql="DELETE FROM ipban WHERE ip
VALUES
('$_POST[ip]')";
(ik ga overigens niet verder in op de fout- en beveiligingsgevoeligheid van de code)
Een foutje wat jullie allemaal maakten op de vroege morgen (daarom sta ik ook wat later op, kan het iedereen aanraden) is dat de code nog steeds een php notice zal achterlaten. $_POST[ip] ip hoort tussen '-quotes. $_POST['ip']
dankje it workes :)