Alleen deleten als voor gebruiker bestemt is.

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Danny@dw-designs.n

[email protected]

19/04/2009 14:33:00
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
1
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!';
                    }
            }

?>


De gebruiker is ingelogd onder; $_SESSION['login-name'];

Alvast bedankt!
Gewijzigd op 01/01/1970 01:00:00 door [email protected]
 
PHP hulp

PHP hulp

25/04/2024 17:41:22
 
Jesper Diovo

Jesper Diovo

19/04/2009 15:14:00
Quote Anchor link
Een extra WHERE-conditie toevoegen die kijkt of het bericht ook nog van de gebruiker is die het script opvraagt.
 
Mr.Ark

Mr.Ark

19/04/2009 15:22:00
Quote Anchor link
Je voert die query uit vanuit de inbox?

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)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?PHP

/* Check. */
if($Rij['IDVANGERUIKERUITDB'] == $_SESSION['USERID'])
{

     /* Hier die get en alles. */
}
else
{
    /* GebruikerIDuitDB komt niet overeen met de SESESSIE ID
    echo 'U kunt dit bericht niet deleten.';
}


?>


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
 
Jesper Diovo

Jesper Diovo

19/04/2009 15:25:00
Quote Anchor link
@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.
 
Danny@dw-designs.n

[email protected]

19/04/2009 16:56:00
Quote Anchor link
Oke probleem opgelost.
NU nog met de text.

Hoe doe ik dit;
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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!';
                    }
            }

?>


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]
 
Jesper Diovo

Jesper Diovo

19/04/2009 17:16:00
Quote Anchor link
Je controleert ook niet of de query gelukt of mislukt is. Als je daarop controleert kun je ook de echo laten verschillen.

Zoiets heet foutafhandeling. Kijk er maar eens naar en ga het gebruiken ;-).
 
Danny@dw-designs.n

[email protected]

19/04/2009 17:17:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.';
                            }

?>


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]
 
Jesper Diovo

Jesper Diovo

19/04/2009 17:21:00
Quote Anchor link
Klopt, daarom moet je ook beter controleren, dan weet je precies wat er nu aan de hand is. Kijk maar naar de link die ik gaf ;-).
Gewijzigd op 01/01/1970 01:00:00 door Jesper Diovo
 
Danny@dw-designs.n

[email protected]

19/04/2009 17:28:00
Quote Anchor link
Ik heb alles geprobeerd wat dar staat maar 't werkt niet.
 
- SanThe -

- SanThe -

19/04/2009 17:39:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.';
}

?>
Gewijzigd op 01/01/1970 01:00:00 door - SanThe -
 
Danny@dw-designs.n

[email protected]

19/04/2009 17:43:00
Quote Anchor link
't werkt nog niet hoor:o!
 
Mr.Ark

Mr.Ark

19/04/2009 17:44:00
Quote Anchor link
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."


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)
PHP script in nieuw venster Selecteer het PHP script
1
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.';
}


?>


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.
 
- SanThe -

- SanThe -

19/04/2009 17:47:00
Quote Anchor link
[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.
 
Danny@dw-designs.n

[email protected]

20/04/2009 11:56:00
Quote Anchor link
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.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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.';
}


?>


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'];
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.