Probleem dubbelaccountcheck

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Full Stack Developer/ Applicatie Ontwikkelaar

Wat jij doet Als Applicatie Ontwikkelaar ben je onderdeel van het team die de Rimote omgeving ontwikkeld en onderhoud. Hierbij kan je denk aan de cloud, on premise en webapplicaties welke worden gebruikt in bijvoorbeeld industriële bakkerijen, biogasinstallaties en kwekerijen. Deze applicaties verzorgen (remote) de aansturing en monitoring van processen, machines en robots. Van a tot z ben je betrokken bij projecten. Dit betekent vanaf ontwerp tot oplevering. Je moet samen met jouw team een goed product neer zetten. Dit begint met het opzetten van het ontwerp. De basis van de software moet staan als een huis. Daarvoor moet jij

Bekijk vacature »

Ervaren PHP ontwikkelaar

Functie Jij als PHP ontwikkelaar komt te werken in een team van 4 andere PHP ontwikkelaars. Je zult je voornamelijk bezig houden met: – Het ontwikkelen van nieuwe features – Doorontwikkelen van de API – Nadenken over de technische infrastructuur – Datakwaliteit Samen met het team ben jij verantwoordelijk voor de verdere ontwikkeling van de software en om de positie als marktleider in Europa te behouden. Ze werken volgens SCRUM in 2 wekelijkse sprints, werken met Jira voor alle tickets en communiceren veel via Slack. Eisen • Minimaal 3 jaar ervaring als back end developer • Je hebt affiniteit met

Bekijk vacature »

C# developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als C# Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij dit jaar Microsoft Partner of the Year geworden. Sogetisten staan klaar voor elkaar, hebben lol met elkaar en daarmee behalen we de mooiste resultaten! Werken bij Sogeti

Bekijk vacature »

Full stack ontwikkelaar Laravel, Vue.js

Functie Als ontwikkelaar binnen deze organisatie hou jij je voornamelijk met lopende projecten voor de verschillende klanten. Zo bouw je de ene dag aan prijsschifting systemen en de andere dag onderzoek je crawlers en stel je ze zo in dat de data goed binnen komt binnen het systeem. Daarnaast bouw je mee aan dashboards en ben je dus constant bezig met het verbeteren van het platform. Er is een vaste werkwijze, zo werken ze met Trello kaarten en onderverdelen ze deze aan het begin van iedere week onder de developers. Dit wordt door de lead developer gedaan, maar in samenspraak

Bekijk vacature »

Java developer

Functie Je gaat aan de slag als Tester voor een aantal mooie projecten. Je komt terecht in een DevOps team waar jij aan de slag gaat om de kwaliteit te waarborgen omtrent de maatwerk software voor de klanten. Je draait je hand er niet voor om de adviserende rol te bekleden op het gebied van testautomatisering en het opzetten van testframeworks. Zoals aangegeven ga je daadwerkelijk in het eigen team aan de slag en is het daarnaast ook gebruikelijk bij de klanten op locatie te komen om te werken aan de opdrachten. Je krijgt zodoende echt een mooie kijk in

Bekijk vacature »

Senior/Lead Python developer

Functie Samen met je team, bestaande uit een senior, 2 mediors en één junior ontwikkelaar ga je op een Agile-gebaseerde aanpak werken aan hun software. Je hebt oog voor kwaliteit, risico’s en klantbelang. Communicatie met je collega’s en waar nodig ook met klanten speelt een belangrijke rol in het bereiken van een succesvol resultaat. Als persoon ben je slim, krijg je dingen voor elkaar en ga je resultaatgericht te werk. Binnen het development team is er veel zelfstandigheid, los van de stand-up (10:00 uur) en zo nu en dan pair-programming sessies. Technieken die zij gebruiken zijn o.a. Python, Django, MySQL,

Bekijk vacature »

Medior front-end developer gezocht (€3.300 -

Functie Wat ga je doen? Jij als front-end developer gaat werken binnen de teams van/voor onze klant. Je werkt in een team met starters en ervaren ontwikkelaars met allemaal 1 overeenkomst; passie voor het vak. Maak je een fout? Geen probleem, leer ervan en ga dan weer door. Door de variëteit aan werk kun je in verschillende omgevingen een kijkje nemen en jezelf dus snel ontwikkelen. Wat hebben we jou te bieden? • Uitdagende projecten bij mooie klanten (bij jou in de buurt, of binnenkort intern vanuit ons kantoor!) • Een jonge organisatie met talentvolle collega’s • Veel ruimte voor

Bekijk vacature »

Medior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Medior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

C# .NET Developer

Functie omschrijving Wij zijn op zoek naar een C# .NET Developer voor een leuke opdrachtgever in de omgeving van Hilversum! Voor een leuk bedrijf in de omgeving van Hilversum zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. Ben jij iemand die graag aan verschillende projecten werkt en het ook leuk vindt om bij klanten op bezoek te gaan? Dan ben jij de perfecte kandidaat! Deze functie is erg divers, je moet dus goed kunnen schakelen. Je komt te werken in een klein team van developers. Binnen het bedrijf hangt er een gemoedelijke informele

Bekijk vacature »

Software Developer PHP JavaScript Python HBO SQL

Samengevat: Wij zijn een softwarebedrijf voor Autodealers. Ben jij een Medior of Senior Software Developer? Heb je ervaring met PHP, JavaScript of Python? Vaste baan: Java.Developer Software HBO €3.000 - €5.200 Bij ons op de werkvloer is er een positieve en informele sfeer. Naast een goede begeleiding en een enthousiaste klantenkring biedt deze werkgever een prettige omgeving met zeer afwisselende werkzaamheden. Houd jij van aanpakken en denk je dat je deze uitdaging aankunt? Dan zoeken wij jou! Zij werken voor grote klanten. Zij doen omvangrijke projecten die we bij deze werkgever op kantoor realiseren (geen detachering). Zij werken met state-of-the-art

Bekijk vacature »

C# Developer Research and Development - Delft

Vacature details Vakgebied: Software/IT Opleiding: Medior Werklocatie: Delft Vacature ID: 6307 Introductie C# Developer Research and Development - Delft - Onze klant is één van de meest innovatieve bedrijven in de region van Delft. Op dit moment zijn ze voor het innovatie centrum. In het innovatie centrum wordt gewerkt aan de nieuwste technieken voor navigatie software. R&D / C# / Pattern Recognition / Algorithms / 3d Data / DotNET Functieomschrijving Als C# Developer kom je te werken in een innovatief scrumteam. We ontwikkelen en door ontwikkelen de nieuwste technieken op het gebied van navigatie software. Deze software wordt onder andere

Bekijk vacature »

Backend developer

Functie omschrijving Ben jij graag bezig met de back-end van applicaties? Zou je dit graag willen doen voor een kleine werkgever waar ook tijd is voor een drankje op zijn tijd? Je taken hierbij zullen bestaan uit: Gebruik maken van de volgende technieken: .NET (core), C#, SQL, XML, MVC, JSON, REST & SOAP API. Gebruik maken van de volgende tools: Visual Studio, GIT, Jira, Jenkins. Bovengenoemde technieken en tools ga je gebruiken om: Nieuwe functionaliteiten te ontwikkelen. Wijzigingsverzoeken van klanten uitvoeren. Verzorgen van koppelingen tussen data. Bedrijfsprofiel Jouw nieuwe werkgever bevindt zich in regio Raamdonksveer en bieden oplossingen op gebied

Bekijk vacature »

Oracle APEX developer

Wat je gaat doen: Als Oracle APEX ontwikkelaar bij DPA werk je samen met collega’s aan de meest interessante opdrachten. Je zult je ervaring met SQL, PL/SQL, JavaScript, HTML en CSS inzetten om wensen van opdrachtgevers te vertalen naar technische oplossingen. Je werk is heel afwisselend, omdat DPA zich niet beperkt tot een specifieke branche. Zo ben je de ene keer bezig binnen de zorgsector, de andere keer is dit bij de overheid. Wat we vragen: Klinkt goed? Voor deze functie breng je het volgende mee: Je hebt een hbo- of universitaire opleiding afgerond Je hebt 2 tot 5 jaar

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Lead developer (PHP, Symfony, DDD)

Functie Als Lead developer zorg je ervoor dat het team (bestaande uit zowel junior als ervaren developers) in staat is om de kwaliteit van de software (en code) verder te verhogen. In samenwerking met het team, de product owner en de andere lead developers zet je technische lijnen uit en bepaal je de prioriteiten per sprint. Lijkt het jou interessant om complexe problemen op te lossen en bijvoorbeeld een nieuwe applicatiestructuur in Symfony op te zetten? Dan komen wij graag met je in contact. Eisen • HBO werk- en denkniveau (ze kijken niet naar papieren, maar naar denkniveau, motivatie en

Bekijk vacature »
Kristof Hendrickx

Kristof Hendrickx

13/11/2013 13:07:20
Quote Anchor link
Hallo,
ik dacht dat mijn code die telkens bij het inloggen word uitgevoerd vlekkeloos was, namelijk volgende code:
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
$gebruikersnaam = strtolower($gebruikersnaam);
    $sql = 'SELECT Username, Password FROM users WHERE Username="'.$gebruikersnaam.'" AND Password="'.$wachtwoord.'"';
      $resultaat = mysqli_query($db, $sql) OR die ('Er liep wat fout, als dit blijft terugkomen neem dan contact op met ons!');
        $aantal = mysqli_num_rows($resultaat);
    $sql = 'SELECT Username FROM ip WHERE Ip = "'.$_SERVER['REMOTE_ADDR'].'" AND Username = "'.$gebruikersnaam.'"';
    $resultaat = mysqli_query($db, $sql) OR die ('Er liep wat fout, als dit blijft terugkomen neem dan contact op met ons!');
    $dubbel = mysqli_num_rows($resultaat);
    if($dubbel == 0)
    {
      $sql = 'INSERT INTO ip(Username, Ip, Date) VALUES ("'.$gebruikersnaam.'", "'.$_SERVER['REMOTE_ADDR'].'", NOW())';
      $resultaat = mysqli_query($db, $sql) OR die ('Er liep wat fout, als dit blijft terugkomen neem dan contact op met ons!');
    }
    $sql = 'SELECT Username FROM ip WHERE Ip = "'.$_SERVER['REMOTE_ADDR'].'"';
    $resultaat = mysqli_query($db, $sql);
    $hoeveel = mysqli_num_rows($resultaat);
    if($hoeveel != 0)
    {
      for($i = 0; $i < $hoeveel; $i++)
      {
        $deze = mysqli_result($resultaat, $i);
        if($deze != $gebruikersnaam)
        {
          $sql = 'UPDATE ip SET Dubbel = "1" WHERE Username="'.$deze.'" AND Ip="'.$_SERVER['REMOTE_ADDR'].'"';
          $uitvoer = mysqli_query($db, $sql) OR die ('Er liep wat fout, als dit blijft terugkomen neem dan contact op met ons!');
          $sql = 'UPDATE ip SET Dubbel = "1" WHERE Username="'.$gebruikersnaam.'" AND Ip="'.$_SERVER['REMOTE_ADDR'].'"';
          $uitvoer = mysqli_query($db, $sql) OR die ('Er liep wat fout, als dit blijft terugkomen neem dan contact op met ons!');
        }  
      }  
    }
    if($aantal == '0')
    {
            echo "Gebruikersnaam en wachtwoord komen niet overeen, ga terug naar de <a class='one' href='index.php'>Home-pagina</a>!<br /><a class='one' href='wwvergeten.php'>Wachtwoord vergeten?</a>";
    }


Bij de meeste inloggegevens werkt het, maar nu is er 1 account waarbij dit niet goed functioneert, namelijk een account met de naam lisalovestormy, dit word regelmatig als dubbelaccount bekeken terwijl er ofwel vergeten word het andere account ook als dubbelaccount aan te geven, of dit onterecht als dubbelaccount aangegeven word, wat uiteraard niet de bedoeling is, om de dubbelaccounts te weergeven vraag ik gewoon de namen op waarbij dubbel hoog staat, ik ben in de database gaan kijken en deze staat bij lisalovestormy ook hoog, vandaar dat ik zeker ben dat hier het probleem optreed.

Nu is mijn vraag hoe dit probleem mogelijk ontstaat en hoe ik dit kan oplossen.
 
PHP hulp

PHP hulp

15/11/2024 13:28:55
 
Kris Peeters

Kris Peeters

13/11/2013 13:27:02
Quote Anchor link
Pas je database-tabel aan.
De velden die uniek moeten zijn (bv. username en email), moet je op UNIQUE zetten (bv. met phpMyAdmin).
Dan kan je geen dubbele inserts maken
 
Kristof Hendrickx

Kristof Hendrickx

13/11/2013 15:16:19
Quote Anchor link
Dit heeft toch niets met mijn vraag te maken? Er zijn geen dubbele entries hoor, het probleem is dat 1 account als dubbel bekeken word, mar het staat ook maar 1 keer in de database, trouwens als unique ;)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

13/11/2013 15:35:07
Quote Anchor link
Wat Kris zegt heeft er wel degelijk mee te maken. Je moet natuurlijk helemaal niet met dubbele accounts willen werken. Ik doe het zoals hier op phphulp:

inloggen doe je met je email en wachtwoord. Het email moet uniek zijn. Telkens als een gebruiker zich registreert moet ie een e-mailadres opgeven dat nog niet in de database voorkomt. er wordt in de validatie van het formulier op gecontroleerd. Tevens staat de kolom email in de users tabel op unique. Ook als een lid zijn e-mailadres wil wijzigen zal er weer gecheckt worden of het een e-mailadres is dat nog niet voorkomt in de database.

Of begrijpen we je niet? dan moet je de vraag misschien duidelijker stellen.
 
Ward van der Put
Moderator

Ward van der Put

13/11/2013 16:36:33
Quote Anchor link
In je code ga je er ten onrechte van uit dat één gebruiker één IP-adres heeft. Eén gebruiker kan echter online zijn via meerdere IP-adressen. En omgekeerd kunnen er via één IP-adres ook meerdere gebruikers tegelijk online zijn.

Hier doe je dat bijvoorbeeld erg onlogisch:

$sql = 'SELECT Username FROM ip
WHERE Ip = "'.$_SERVER['REMOTE_ADDR'].'"
AND Username = "'.$gebruikersnaam.'"';

En hier doe je er nog een schepje bovenop:

$sql = 'SELECT Username FROM ip
WHERE Ip = "'.$_SERVER['REMOTE_ADDR'].'"';
 
Kristof Hendrickx

Kristof Hendrickx

13/11/2013 18:26:36
Quote Anchor link
Ik weet dat meerdere op hetzelfde ip kunnen zitten, vandaar dat ik in dat geval niet rechtstreeks blokkeer maar van een 0 een 1 maak, ook word elk ip gelogd met de gebruikersnaam erbij, ik weet inderdaad dat wisselende ip's mogelijk zijn, wanneer zal er niets in de ip-tabel komen? als die regel al bestaat en er geen andere gebruiker is met dat ip-adres.

ik vergelijk dingen die ik al ken met de nieuwe dingen, zelfde gebruikersnaam bij zelfde ip ok, verder zonder iets, andere gebruiker zelfde ip? aanpassing doen en verder, die aanpassing gebeurd ten onrechte bij een bepaald account.

Hier word nergens gecontroleerd op dubbele gebruikersnaam, wat niet kan omdat dit al lang unique staat, en mail hetzelfde verhaal.
Gewijzigd op 13/11/2013 18:27:06 door Kristof Hendrickx
 
Ward van der Put
Moderator

Ward van der Put

14/11/2013 07:05:52
Quote Anchor link
Wat bedoel je dan met een "dubbelaccount"?
 
Kristof Hendrickx

Kristof Hendrickx

15/11/2013 16:20:17
Quote Anchor link
Inderdaad 2 accounts met hetzelfde ip, dan word er iets veranderd, ik begrijp jullie probleem niet.
 
Ward van der Put
Moderator

Ward van der Put

15/11/2013 16:31:14
Quote Anchor link
Kristof Hendrickx op 15/11/2013 16:20:17:
Inderdaad 2 accounts met hetzelfde ip, dan word er iets veranderd, ik begrijp jullie probleem niet.
Twee accounts met hetzelfde IP-adres is geen beveiligingsprobleem. Er kunnen vanaf één IP-adres gerust tientallen gebruikers tegelijk online zijn.
 
Erwin H

Erwin H

15/11/2013 16:40:09
Quote Anchor link
En ik denk dat hier verder totaal niemand begrijpt wat jij hier allemaal mee probeert te doen.

Zo is je definitie van een 'dubbelaccount' nu niet echt gebruikelijk. Jij bedoelt ermee dat je wil bijhouden of een user vanaf meerdere ip adressen is ingelogd (al dan niet tegelijk), terwijl over het algemeen onder een dubbelaccount wordt verstaan dat iemand meerdere usernames heeft op hetzelfde emailadres, of dat iemand met meerdere emailadressen een account heeft. Verwarrend dus.
Daarnaast is ook de vraag wat wil je helemaal hiermee bereiken? Wat is het doel? Je moet het natuurlijk helemaal zelf weten, maar soms helpt dat wel om oplossingen te vinden.

Verder wat je code betreft, dit deel vind ik erg opvallend:
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
    $sql
= 'SELECT Username FROM ip WHERE Ip = "'.$_SERVER['REMOTE_ADDR'].'"';
    $resultaat = mysqli_query($db, $sql);
    $hoeveel = mysqli_num_rows($resultaat);
    if($hoeveel != 0)
    {

      for($i = 0; $i < $hoeveel; $i++)
      {

        $deze = mysqli_result($resultaat, $i);
        if($deze != $gebruikersnaam)
        {

          $sql = 'UPDATE ip SET Dubbel = "1" WHERE Username="'.$deze.'" AND Ip="'.$_SERVER['REMOTE_ADDR'].'"';
          $uitvoer = mysqli_query($db, $sql) OR die ('...');
          $sql = 'UPDATE ip SET Dubbel = "1" WHERE Username="'.$gebruikersnaam.'" AND Ip="'.$_SERVER['REMOTE_ADDR'].'"';
          $uitvoer = mysqli_query($db, $sql) OR die ('...');
        }  
      }  
    }

?>

Probeer eens uit te leggen wat hier nu de bedoeling van is, want ik probeer er achter te komen, maar begrijp er echte helemaal niets van. Je haalt alle users op die blijkbaar eens hebben ingelogd vanaf een bepaald ip. Daar filter je de nu ingelogde gebruiker uit (in php, waarom niet in sql?), om vervolgens alle records met het betreffende ip op te hogen, ook voor de nu ingelogde gebruiker. Waarom dus eerst filteren en dan toch weer wel opvoeren? En waarom in een loop, waardoor je de records met die gebruiker elke keer weer aanpast?
Volgens mij kan je het gewoon in 1 simpele query doen:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?php
$sql
= 'UPDATE ip SET Dubbel = "1" WHERE Ip="'.$_SERVER['REMOTE_ADDR'].'"';
?>

Uiteindelijk is dat namelijk wel het effect van de bovenstaande code, alleen dan wat minder omslachtig.
Gewijzigd op 15/11/2013 16:42:37 door Erwin H
 



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.