Alleen deleten als voor gebruiker bestemt is.
Ik ben nu bezig met het scripten van een inbox.
Alleen nu wil ik berichten kunnen verwijderen.
Echter mag persoon A het bericht via de URL niet kunnen verwijderen van persoon B etc..
Heb zelf all dit;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
if (isset($_GET['delete_id'])){
$mId = $_GET['delete_id'];
if($_SESSION['login-rank'] == 1) {
$query = "DELETE FROM inbox WHERE id = '$mId'";
$sql = mysql_query($query) or die(mysql_error());
echo 'Message is deleted from inbox.';
} elseif($_SESSION['login-rank'] != 1) {
echo 'You have no premission to delete!';
}
}
?>
if (isset($_GET['delete_id'])){
$mId = $_GET['delete_id'];
if($_SESSION['login-rank'] == 1) {
$query = "DELETE FROM inbox WHERE id = '$mId'";
$sql = mysql_query($query) or die(mysql_error());
echo 'Message is deleted from inbox.';
} elseif($_SESSION['login-rank'] != 1) {
echo 'You have no premission to delete!';
}
}
?>
De gebruiker is ingelogd onder; $_SESSION['login-name'];
Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
Een extra WHERE-conditie toevoegen die kijkt of het bericht ook nog van de gebruiker is die het script opvraagt.
Zo ja dan betekent het dat je ook een SELECT query uitvoert met de gegevens.
Dan kan je dus ook in die select query de gebruiker id die in de database opvragen en dan kan je toch gewoon zo checken?
Code (php)
Kan zijn dat ik er helemaal naast zit, Maar als het goed is sla je ook het ID van de gebruiker op in de database bij inbox, Dus dan kan je in je DELETE query achter id = '".intval($mId)."' AND gebruikerID = '".intval($_SESSION['USERID'])."'
Misschien beetje onduidelijk maar ik hoop dat je het snapt.
Heb al 36 uur niet geslapen dus het denken en uitleggen begint wat moeilijker te worden.
/* Edit */
Jezpur is me voor de 2e keer vandaag voor. ^-^
Gewijzigd op 01/01/1970 01:00:00 door Mr.Ark
@Ark: wordt toch eens tijd dan dat je je bed opzoekt? :-) Nachtelijk werk om een deadline te halen zorgt vaak voor meer problemen dan uitstel en fris aan het werk gaan.
NU nog met de text.
Hoe doe ik dit;
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
<?php
if (isset($_GET['delete_id'])){
$mId = $_GET['delete_id'];
if($_SESSION['login-rank'] == 1) {
$name = $_SESSION['login-name'];
$query = "DELETE FROM inbox WHERE id = '$mId' AND reciever = '" . $row_2['username'] . "'";
$sql = mysql_query($query) or die(mysql_error());
echo 'This reaction is deleted.';
} elseif($_SESSION['login-rank'] != 1) {
echo 'You have no premission to delete!';
}
}
?>
if (isset($_GET['delete_id'])){
$mId = $_GET['delete_id'];
if($_SESSION['login-rank'] == 1) {
$name = $_SESSION['login-name'];
$query = "DELETE FROM inbox WHERE id = '$mId' AND reciever = '" . $row_2['username'] . "'";
$sql = mysql_query($query) or die(mysql_error());
echo 'This reaction is deleted.';
} elseif($_SESSION['login-rank'] != 1) {
echo 'You have no premission to delete!';
}
}
?>
Als ik nu een id doe maar die is niet van de bijbehoorende gebruiker echo'ed hij nog steeds;
You reaction is deleted.
HOe doe ik dan dat als het Bericht niet bij hem hoort dat 't wat anders echo'ed.
Bvd, Danny
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
$query = "DELETE FROM inbox WHERE id = '$mId' AND reciever = '" . $row_2['username'] . "'";
if(!$result = mysql_query($query)) {
echo 'Helaas er is een fout!';
if(DEBUG == true)
{
echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql . '</pre>)';
}
} else {
echo 'Succesful deleted.';
}
?>
$query = "DELETE FROM inbox WHERE id = '$mId' AND reciever = '" . $row_2['username'] . "'";
if(!$result = mysql_query($query)) {
echo 'Helaas er is een fout!';
if(DEBUG == true)
{
echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql . '</pre>)';
}
} else {
echo 'Succesful deleted.';
}
?>
Dit zou 't moeten doen, heb nu een bericht met het id 2 en de reciever is webmaster.
Maar als ik met Admin ben ingelogd krijg ik nog steeds gewoon de text; "Succesful deleted."
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
Ik heb alles geprobeerd wat dar staat maar 't werkt niet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
$sql = "DELETE FROM inbox WHERE id = '" . $mId . "' AND reciever = '" . $row_2['username'] . "'";
if(!$result = mysql_query($query))
{
echo 'Helaas er is een fout!';
if(DEBUG == true)
{
echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql . '</pre>)';
}
}
elseif(mysql_affected_rows() > 0)
{
echo 'Succesful deleted.';
}
?>
$sql = "DELETE FROM inbox WHERE id = '" . $mId . "' AND reciever = '" . $row_2['username'] . "'";
if(!$result = mysql_query($query))
{
echo 'Helaas er is een fout!';
if(DEBUG == true)
{
echo ': ' . mysql_errno() . ':' . mysql_error() . '(<pre>' . $sql . '</pre>)';
}
}
elseif(mysql_affected_rows() > 0)
{
echo 'Succesful deleted.';
}
?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
't werkt nog niet hoor:o!
Quote:
@Ark: wordt toch eens tijd dan dat je je bed opzoekt? :-) Nachtelijk werk om een deadline te halen zorgt vaak voor meer problemen dan uitstel en fris aan het werk gaan.
Geef ik je helemaal gelijk in ^-^, Alleen krijg nog bezoek over de vloer, dus me bedje kan ik helaas nog niet opzoeken. Begon het inderdaad te merken met typen etc... (Begin beetje verslaafd te worden aan php zo te zien, haha !, Wat wil je ook als je alle tijd hebt.)
Ontopic:
Quote:
Dit zou 't moeten doen, heb nu een bericht met het id 2 en de reciever is webmaster.
Maar als ik met Admin ben ingelogd krijg ik nog steeds gewoon de text; "Succesful deleted."
Maar als ik met Admin ben ingelogd krijg ik nog steeds gewoon de text; "Succesful deleted."
Als je nou eens vertelt of je de user id ook in een sessie zet en wat dat is dan is het even wat makkelijker werken voor ons.
Je kan een fouten afhandeling ook op de volgende manier doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?PHP
/* Je Query. */
/* Resultaat van de query. */
$qResultaat = mysql_query($qQuery);
/* als ! geen resultaat. */
if(!$qResultaat)
{
echo 'Hé !, Fout met query. even de query: '.$qQuery.'';
}
else
{
/* Hier verder met je code. */
echo 'Query is gelukt.';
}
?>
/* Je Query. */
/* Resultaat van de query. */
$qResultaat = mysql_query($qQuery);
/* als ! geen resultaat. */
if(!$qResultaat)
{
echo 'Hé !, Fout met query. even de query: '.$qQuery.'';
}
else
{
/* Hier verder met je code. */
echo 'Query is gelukt.';
}
?>
Ik snap het volgens mij nog niet echt. Maar je hebt dus een Mailbox van elke gebruiker?
Als de gebruiker op delete drukt, Dan moet er gecontroleerd worden of de mailbox wel van de gebruiker is? en of het bericht verwijderd mag worden?
Correct me if i'm wrong.
[email protected] schreef op 19.04.2009 17:43:
't werkt nog niet hoor:o!
Aan dit soort meededelingen hebben we niets. Geef duidelijk en uitgebreid info over wat niet en wat wel werkt. Geef uiteraard ook de eventuele errors.
ark schreef op 19.04.2009 17:44:
Als je nou eens vertelt of je de user id ook in een sessie zet en wat dat is dan is het even wat makkelijker werken voor ons.
Je kan een fouten afhandeling ook op de volgende manier doen.
Ik snap het volgens mij nog niet echt. Maar je hebt dus een Mailbox van elke gebruiker?
Als de gebruiker op delete drukt, Dan moet er gecontroleerd worden of de mailbox wel van de gebruiker is? en of het bericht verwijderd mag worden?
Correct me if i'm wrong.
Je kan een fouten afhandeling ook op de volgende manier doen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?PHP
/* Je Query. */
/* Resultaat van de query. */
$qResultaat = mysql_query($qQuery);
/* als ! geen resultaat. */
if(!$qResultaat)
{
echo 'Hé !, Fout met query. even de query: '.$qQuery.'';
}
else
{
/* Hier verder met je code. */
echo 'Query is gelukt.';
}
?>
/* Je Query. */
/* Resultaat van de query. */
$qResultaat = mysql_query($qQuery);
/* als ! geen resultaat. */
if(!$qResultaat)
{
echo 'Hé !, Fout met query. even de query: '.$qQuery.'';
}
else
{
/* Hier verder met je code. */
echo 'Query is gelukt.';
}
?>
Ik snap het volgens mij nog niet echt. Maar je hebt dus een Mailbox van elke gebruiker?
Als de gebruiker op delete drukt, Dan moet er gecontroleerd worden of de mailbox wel van de gebruiker is? en of het bericht verwijderd mag worden?
Correct me if i'm wrong.
Inderdaad, elke gebruiker heeft een inbox en als de gebruiker zijn bericht delete moet er gekeken worden of dat bericht van hem is.
Maar als de gebruiker bijvoorbeeld ?delete_message=1 doet en die hort niet bij hem dat hij dan niet delete.
En mijn users hebben allemaal een sessie naam
Hun sessie naam haalt ik uit het database..
Heel simpel, gebruiker piet heeft sessie naam piet.
Dit staat trouwens onder; $_SESSION['login-name'];