op is juist maar toch fout?
ik gebruik gegevens uit de database om een soort van inlogsysteem te laten werken,
het werkt met een aantal sleutels ( ongeveer 20 tekens 6 sleutels )
nu controleer ik of het ip adres van de ingelogde gebruiker klopt
ik heb al eens een echo gedaan op $ip en op $token['ip'] en dat is hetzelfde,
waarom is het dan niet gelijk?
Toevoeging op 18/04/2012 17:00:33:
oeps het moet ip is juist maar toch fout? zijn
het werkt met een aantal sleutels ( ongeveer 20 tekens 6 sleutels )
nu controleer ik of het ip adres van de ingelogde gebruiker klopt
ik heb al eens een echo gedaan op $ip en op $token['ip'] en dat is hetzelfde,
waarom is het dan niet gelijk?
Toevoeging op 18/04/2012 17:00:33:
oeps het moet ip is juist maar toch fout? zijn
Iets wat meer informatie wat betreft de opbouw van je MySQL tabel zou handig zijn om te kunnen zien hoe je je data opslaat. Gebruik voor de zekerheid ook eens trim.
ip is gewoon text er zijn geen error's
waarvoor moet ik trim gebruiken
waarvoor moet ik trim gebruiken
Post eens wat meer relevante code, ik neem aan dat je zelf ook wel begrijpt dat niemand hier iets van kan maken.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
$token_ophaal = "SELECT gebruiker_id, ip FROM token WHERE sleutel1='".mysql_real_escape_string($_GET['s1'])."' and sleutel2='".mysql_real_escape_string($_GET['s2'])."' and sleutel3='".mysql_real_escape_string($_GET['s3'])."' and sleutel4='".mysql_real_escape_string($_GET['s4'])."' and sleutel5='".mysql_real_escape_string($_GET['s5'])."' and sleutel6='".mysql_real_escape_string($_GET['s6'])."'";
if(!$token = mysql_query($token_ophaal))
{
echo '<div id="error">Sorry, Er is een foutje verschenen.<div id="log">'.mysql_error().'<br />In query: '.$token_ophaal.'</div></div>';
}
elseif(mysql_num_rows($token) == 0)
{
//inlog hack melden ( sql uitvoeren )
}
else
{
$token = mysql_fetch_assoc($token);
$ip = $_SERVER['REMOTE_ADDR'];
if($token['ip'] == $ip) {
?>
$token_ophaal = "SELECT gebruiker_id, ip FROM token WHERE sleutel1='".mysql_real_escape_string($_GET['s1'])."' and sleutel2='".mysql_real_escape_string($_GET['s2'])."' and sleutel3='".mysql_real_escape_string($_GET['s3'])."' and sleutel4='".mysql_real_escape_string($_GET['s4'])."' and sleutel5='".mysql_real_escape_string($_GET['s5'])."' and sleutel6='".mysql_real_escape_string($_GET['s6'])."'";
if(!$token = mysql_query($token_ophaal))
{
echo '<div id="error">Sorry, Er is een foutje verschenen.<div id="log">'.mysql_error().'<br />In query: '.$token_ophaal.'</div></div>';
}
elseif(mysql_num_rows($token) == 0)
{
//inlog hack melden ( sql uitvoeren )
}
else
{
$token = mysql_fetch_assoc($token);
$ip = $_SERVER['REMOTE_ADDR'];
if($token['ip'] == $ip) {
?>
Zet eens in je laatste stukje van je if-elseif-else (else) statement eens dit neer:
Array ( [gebruiker_id] => (klopt) [ip] => ++.+++.+++.+++ )
Die output klopt van geen kant meer. Geef gewoon de complete, onveranderde, waarde.
sorry, ik probeer het ip te beschermen en ga dus een ander opgeven
Array ( [gebruiker_id] => 2 [ip] => 98.156.369.198 )
Array ( [gebruiker_id] => 2 [ip] => 98.156.369.198 )
waarom wordt toch steeds met het ip gewerkt?? Het is vandaag de dag niet meer zeker of je gebruiker vanaf hetzelfde ip inlogt. Je gebruiker kan op school zijn en via het school ip inloggen, je gebruiker kan in de tram zitten en met zijn smartphone ip inloggen en je gebruiker kan thuis zijn en met zijn home-peeceetje en ip inloggen. Het is en blijft onlogisch om het ip op te slaan en ook bijvoorbeeld om een ip te bannen.
maar het is juist de bedoeling dat het maar vanaf 1 plaats kan.
op school moet het werken en verder nergens.
op school moet het werken en verder nergens.
IP van je school regelen in checken of het IP adres klopt?
Omdat er nog geen beter alternatief is.
Kun je eens var_dump($token['ip'], $ip); doen?
Kun je eens var_dump($token['ip'], $ip); doen?
Bas Kreleger op 18/04/2012 19:57:17:
IP van je school regelen in checken of het IP adres klopt?
dat heb ik al en dat klopt met hetgeen in de database, maar toen ik het daarstraks opstarten gaf hij een error dat het ip niet klopte
Toevoeging op 18/04/2012 20:13:10:
string(15) "98.156.369.198 " string(13) "98.156.369.198"
ik begin een foutje te zien ( kan die spatie een probleem geven ( zal hem maar verwijderen, kan wel niet controleren tot morgen ))
Waarom moet je trim gebruiken dan? Zorg er ook voor dat data zonder voor of eind spaties de database in gaat ;)
Zoals je kan zien geef ik dus eigenlijk al de oplossing in het eerste bericht. Dus ja, een string van 15 tekens is niet hetzelfde als string met 13 tekens.
Zoals je kan zien geef ik dus eigenlijk al de oplossing in het eerste bericht. Dus ja, een string van 15 tekens is niet hetzelfde als string met 13 tekens.
Gewijzigd op 18/04/2012 20:17:13 door Mebus Hackintosh
a, daarvoor die trim
ik had die gegevens handmatig ingevoerd maar ik zal die trim er eens inbouwen ( om die fout te vermijden )
Toevoeging op 18/04/2012 20:18:03:
ik kon niet echt de functie achterhalen ( ik dacht iets van alle tekens omzetten naar spatie )
ik had die gegevens handmatig ingevoerd maar ik zal die trim er eens inbouwen ( om die fout te vermijden )
Toevoeging op 18/04/2012 20:18:03:
ik kon niet echt de functie achterhalen ( ik dacht iets van alle tekens omzetten naar spatie )
Dat doet nl2br. Ik had anders verder ook niet duidelijk gemaakt wat trim precies doet, dus mijn excuus.




