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:
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']. "'"
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:
`verzender_id` int(11) NOT NULL,
`ontvanger_id` int(11) NOT NULL,
`status` int(1) NOT NULL default '0'
Hoppelijk weten jullie nu genoeg:)
?
Onbekende gebruiker
31-03-2009 18:26
Mag ik er even op wijzen dat je website nu gehackt kan worden?
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.
Dus als ik het goed begrijp johan, staat je userID in een cookie. Dat zal dus betekenen dat ik die ID even kan aanpassen en dus iemand anders z'n profiel kan overnemen?.
Is dat het geval, begin bij het begin en zorg eerst voor goede beveiliging.
Ik irriteer me een beetje!
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.
Ik irriteer me een beetje!
Waar zeg ik in hemels naam dat ik ID in een cookie zet ..........
SELECT ..........'" .$_COOKIE['id']. "' OR ontvanger_id='" .$_COOKIE['id']. "'" '
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 *
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';
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.