Verwijder account script
Op mijn site staat een delete knop (voor account), waar een niet werkend script achter zit. Ik krijg geen foutmelding alleen een wit scherm.
De velden in mijn database zijn:
id
naam
password
username
date
Ik ben nogal een noob dus snap nog niet echt hoe ik dat moet doen. De bedoeling is dus dat de ingelogde gebruiker door middel van een verificatie zijn account kan verwijderen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
$connect= mysql_connect("localhost", "name", "password");
mysql_select_db("db name");
$id = $_GET['id'];
$user_query = mysql_query("SELECT * FROM users WHERE id='" . $_COOKIE['user_id'] . "'");
$user = mysql_fetch_assoc($user_query);
if($user['id']==$id)
{
mysql_query("DELETE * FROM `users` WHERE id='$id'");
}
else
if($user['id']!=$id)
{
echo 'You are trying to delete some one elses account.<br /><a href="myaccount.php">Back</a>';
}
?>
$connect= mysql_connect("localhost", "name", "password");
mysql_select_db("db name");
$id = $_GET['id'];
$user_query = mysql_query("SELECT * FROM users WHERE id='" . $_COOKIE['user_id'] . "'");
$user = mysql_fetch_assoc($user_query);
if($user['id']==$id)
{
mysql_query("DELETE * FROM `users` WHERE id='$id'");
}
else
if($user['id']!=$id)
{
echo 'You are trying to delete some one elses account.<br /><a href="myaccount.php">Back</a>';
}
?>
- geen foutafhandeling
- niet onnodig $vars kopiëren
- gebruik geen wildcard (*) maar selecteer de velden die je wilt ophalen
wat loopt er mis?
Gewijzigd op 12/06/2011 21:39:52 door Jasper DS
Heb ook verbinding met database, dat had ik getest door middel van:
Code (php)
1
2
3
4
2
3
4
<?php
$connect= mysql_connect("localhost", "name", "password") or die("no connection");
mysql_select_db("db name") or die("no db selected");
?>
$connect= mysql_connect("localhost", "name", "password") or die("no connection");
mysql_select_db("db name") or die("no db selected");
?>
Or die kan je beter niet begrijpen + ik snap de logica van je script niet goed. Bouw een foutafhandeling in bij je query's en zet de error reporting aan.
moet else en if op regel 13/14 niet als elseif geschreven worden?
ik zou lijn 14 gewoon helemaal weg doen want uit lijn 9 volgt lijn 14 => lijn 14 kan dus weg
Weet iemand misschien waar ik een goed werkend script vandaan kan halen - liefst 1 met uitleg van wat er gebeurd?
Als ik dit bekijk denk ik dat je member systeem ook niet echt goed (lees veilig) is.
PHP Jasper op 12/06/2011 21:56:43:
Als ik dit bekijk denk ik dat je member systeem ook niet echt goed (lees veilig) is.
Daar zit inderdaad nog sql injectie in. Ben ik een oplossing voor aan het zoeken/code aan het invoeren.
Ik zou ook niet rekenen op de cookie maar eerder voor een sessie gaan met eventueel neg een check of de sessie geldig is.
PHP Jasper op 12/06/2011 22:00:10:
Ik zou ook niet rekenen op de cookie maar eerder voor een sessie gaan met eventueel neg een check of de sessie geldig is.
Komt er dus eigenlijk een beetje op neer dat dit script nutteloos is? - niet alleen door bovenstaande, maar ook gezien de andere reacties.
Ik heb de code natuurlijk nog niet bekeken.. Heb je het script zelf geschreven of heb je het van ergens?
Deze code heb ik van internet. Van een vergelijkbare engelse site als dit. Zelf ben ik nog een beetje een noob. Kan zeg maar alleen een forum/login/logout bouwen door middel van youtube filmpjes.
Kan je de link anders even sturen dan zal ik dat eens bezien.
Bedoel je de link van de site waar ik hem vandaan heb. De code van deze site staat hier bovenaan he?
Is het gewoon niet raadzamer om een veld te maken bij de gebruiker met de naam 'verwijderd', waarmee je daarin kan aangeven of een gebruiker verwijderd is. Op die manier kan je zijn profiel disablen, de inlog disablen en andere gebruikers-gerelateerde acties.
dus bij de delete query regel moet nog een echo bij van gebruiker succesvol verwijderd.
dan laat die wss wel wat zien.