Vriendenlijst werkt niet
Ik heb een profielenscript en ik wil daar een vriendenlijst aan toevoegen.
Alleen wil dit nog niet helemaal lukken:(
Ik heb al veel dingen geprobeerd met en zonder join en de and's en or's omdraaien en nog wel wat.
Hieronder zie je de query:
Code (php)
1
2
3
4
2
3
4
SELECT gebruikersnaam,id
FROM leden_gegevens JOIN leden_vriendlijst ON id=verzender_id OR id=ontvanger_id
WHERE leden_vriend_uitnodiging.status='1'
AND verzender_id='" .$_COOKIE['id']. "' OR ontvanger_id='" .$_COOKIE['id']. "'"
FROM leden_gegevens JOIN leden_vriendlijst ON id=verzender_id OR id=ontvanger_id
WHERE leden_vriend_uitnodiging.status='1'
AND verzender_id='" .$_COOKIE['id']. "' OR ontvanger_id='" .$_COOKIE['id']. "'"
Wat de bedoeling van deze query is dat hij alle vrienden laat zien van een ingelogde gebruiker.
Dat doet hij nu ook wel alleen worden de ingelogde gebruiker 3 keer geplaatst
terwijl hij er helemaal niet in hoor.
Want je kunt natuurlijk geen vriend worden van jezelf
Dit komt er uit:
1 marc
2 Jan
1 marc
3 gijs
1 marc
4 richard
En dit moet het zijn:
2 Jan
3 gijs
4 richard
Zo ziet de tabel leden_vriendenlijst eruit:
Code (php)
1
2
3
2
3
`verzender_id` int(11) NOT NULL,
`ontvanger_id` int(11) NOT NULL,
`status` int(1) NOT NULL default '0'
`ontvanger_id` int(11) NOT NULL,
`status` int(1) NOT NULL default '0'
Hoppelijk weten jullie nu genoeg:)
Je stopt zomaar variabelen in de query zonder ze eens grondig aan een wasbeurt te hebben ondergaan. Cookies kunnen mensen zo maar veranderen.
Jouw huidige query is dus erg vatbaar voor SQL injectie.
EDIT:
WHERE id <> 1???
(1 is dan het ID van marc en <> betekent NOT)
Gewijzigd op 01/01/1970 01:00:00 door GaMer B
Maar bedankt ik zal eens kijken.
status = 1 // het is ge aksepteert
status = 2 // afgewezen
$sql = "INSERT INTO leden_vriend_uitnodiging (user_id , vrient_id , status )";
$sql .= " VALUES ('". $user_id ."' , '". $vrient_id ."' , '". $status ."' )" ;
$sql = "UPDATE leden_vriend_uitnodiging SET status='". $status ."' WHERE user_id=".$user_id ." AND $vrient_id=".$vrient_id ;
En men is van elkaar bevriend dus
Hoef niet als de status 2 is.
$sql = "INSERT INTO leden_vriend_uitnodiging (user_id , vrient_id , status )";
$sql .= " VALUES ('". $user_id ."' , '". $vrient_id ."' , '". $status ."' )" ;
Zo zou ik het ongeveer doen.
Alleen dan wel een paar leuke function er om heen.
Gewijzigd op 01/01/1970 01:00:00 door johan
Verder zou je 's kunnen gaan kijken naar een subquery... Alles ophalen behalve waar het ID gelijk is aan de ingelogde gebruiker.
Gewijzigd op 01/01/1970 01:00:00 door Timen kut
Ik ga het gelijk toepassen!
Timen schreef op 31.03.2009 19:50:
Gaat het niet om een SELECT, Johan? n.v.t dus.. Je Nederlands is wel super trouwens!
Verder zou je 's kunnen gaan kijken naar een subquery... Alles ophalen behalve waar het ID gelijk is aan de ingelogde gebruiker.
Verder zou je 's kunnen gaan kijken naar een subquery... Alles ophalen behalve waar het ID gelijk is aan de ingelogde gebruiker.
LOL....
ON: Wat Johan zegt is wel waar....
Is dat het geval, begin bij het begin en zorg eerst voor goede beveiliging.
Waar zeg ik in hemels naam dat ik ID in een cookie zet ik heb een lost variabele naam genomen om aan te geven dat hier het ID van de destijds user die in gelogd is.
die daar ingevuld moet worden.
Nee natuurlijk niet in een cookie zou ik alen het session id “dat is een redelijk rand ID in zo ver dat het rand is op een PC ”.
Die ik bij het inlogen aan de user hang.
Ps het was een voor beelt han hoe het zauw kunnen.
Om een vriend Tbtje te kunnen makken.
En zo als ik ze ik zou er een leuke function er om heen makken.
Gewijzigd op 01/01/1970 01:00:00 door johan
johan schreef op 01.04.2009 00:03:
SELECT ..........'" .$_COOKIE['id']. "' OR ontvanger_id='" .$_COOKIE['id']. "'" 'Ik irriteer me een beetje!
Waar zeg ik in hemels naam dat ik ID in een cookie zet ..........
Waar zeg ik in hemels naam dat ik ID in een cookie zet ..........
Je mag je dan iriteren aan somige reacties, Maar je wekt in je 1e post toch duidelijk de indruk dat je COOKIEs gebruikt!
Maar vergeet niet dat de mensen hier in het algemeen meer ervaring hebben, en dus ook vaak genoeg op de koffie zijn gekomen door o.a. SQL injections. Een gewaarschuwd mens telt voor 2.
* EDIT *
Code (php)
1
2
3
2
3
SELECT naam,members.id AS wie
FROM members LEFT JOIN vriendjes ON (members.id=van_id AND members.id!='2') XOR (members.id=aan_id AND members.id!='2')
WHERE van_id='2' OR aan_id='2';
FROM members LEFT JOIN vriendjes ON (members.id=van_id AND members.id!='2') XOR (members.id=aan_id AND members.id!='2')
WHERE van_id='2' OR aan_id='2';
Dit geeft als resultaat op :
3 Jan
5 Monique
6 veronica
7 miranda
Dit is mijn query, welke op de zelfde manier werkt, alleen moet je de veldnamen even aanpassen. En op '2' het id nummer neerzetten van wie je het vriendjes lijst wilt zien.
Grts..
René
Gewijzigd op 01/01/1970 01:00:00 door Rene Sn
Hmmm SORY dan dat ik het id verwek dat ik een cookie in de qeury heb staan.
johan schreef op 01.04.2009 10:46:
Hmmm SORY dan dat ik het id verwek dat ik een cookie in de qeury heb staan.
No Problo, Maar heb je het nu voor elkaar dan ?
Is johan marc ofzo?
René schreef op 01.04.2009 15:25:
No Problo, Maar heb je het nu voor elkaar dan ?
johan schreef op 01.04.2009 10:46:
Hmmm SORY dan dat ik het id verwek dat ik een cookie in de qeury heb staan.
No Problo, Maar heb je het nu voor elkaar dan ?
Hmmm ??
beginner is hier degene die een probleem heb waar ik een mogelijke oplosing voor gaf
Maar bij mij werk het.
Oeps ik heb d'r naast gekeken, ik dacht dat jij de topic starter was met 't 'vriendjes' lijst probleem ;-) whahahaha
Naja maakt ook niet uit. de oplossing is voor marc. (en voor hen die d'r profijt van heeft)
Grts.
René
Gewijzigd op 01/01/1970 01:00:00 door Rene Sn
Als ik alles nu zo bekijk moet alles nu werken (toevoegen,weergeven,verwijderen,weigeren,accepteren).
Over die beveiliging met die cookies:
Dit profielensysteem is niet van mij maar iemand heeft deze gekocht maar daar zat geen vriendenlijst in.
Die heb ik dus nu gemaakt met behulp van jullie!