NicholasWalker Skrevet 5. juni 2010 Skrevet 5. juni 2010 Hei, har vært med på folk som har lite liv og lager 100 vis av brukere på sidene mine. Så jeg lurer på hvordan jeg får ipen til den som registrerer seg i 'user_ip' i 'users' dben, og hvordan jeg kan gjøre sånn at de ikke kan registrere seg mer enn 3 ganger med den samme ipen...
Crowly Skrevet 5. juni 2010 Skrevet 5. juni 2010 (endret) $_SERVER['REMOTE_ADDR'] For å se alt som ligger i $_SERVER echo '<pre>'; print_r($_SERVER); echo '</pre>'; For å sjekke hvor mange ganger de har registrert seg function checkIP($ip) { $cIP = ip2long($ip); $fIP = long2ip($cIP); return $fIP; } // koble til databasen $ip_adr=checkIP($_SERVER['REMOTE_ADDR']); if (!in_array($ip_adr,array('0.0.0.0','127.0.0.1')) { $sql='SELECT count(*) FROM tabell WHERE ip='.$ip_adr; $antall=mysql_fetch_row(mysql_query($sql)); if ($antall[0]<3) // tillat ny registrering else // allerede registrert 3 ganger } Edit: Lagt til ip adresse validering, fant en funksjon her i kommentarfeltet, http://roshanbh.com.np/2008/04/ip-address-validation-php.html, som jeg ser er samme fremgangsmåte som eksempel 3 i php manualen for ip2long: http://no.php.net/ip2long Endret 5. juni 2010 av Crowly
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 Hvordan får jeg ipen i ip feltet da?
Sk!ppy Skrevet 5. juni 2010 Skrevet 5. juni 2010 Lager du et mafiaspill? Isåfall er dette grunnleggende kunnskaper.
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 Lager du et mafiaspill? Isåfall er dette grunnleggende kunnskaper. Hehe, nei. Lager en side bare...
Bytex Skrevet 5. juni 2010 Skrevet 5. juni 2010 Sikkert en klanside for MW2 med et lite forum der folk eller boter registrerer seg i hytt og pine og spammer reklame.
4588pkdkrikue5c Skrevet 5. juni 2010 Skrevet 5. juni 2010 (endret) Om du veit korleis du poster data til MySQL er det jo ikkje noko problem i det heile tatt. Då setter du berre inn $_SERVER['REMOTE_ADDR'] i feltet. Forstår ikkje heilt problemet. Om du tykkjer det er "rotete" kan du jo óg sette IP'en i ei variabel først. $ipadresse = $_SERVER['REMOTE_ADDR']. Kva er det egentleg du lurer på? Korleis du registerer berre, eller korleis du kan sjekke om IP'en eksiterer når du oppretter ei konto? Det vil vere lite hensiktsmessig å la brukare berre får registrere seg nokon få gonger per IP. Betre om du har ein e-post aktivering. Offentlege stadar vil jo då automatisk varte bannlyst. Endret 5. juni 2010 av steffenz
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 Problemet er at jeg vil ha ip adressen til den som registrer seg i et felt bak brukerens navn .. Er det bare : $_SERVER['REMOTE_ADDR'] som er ipen? Da er det ikke noe problemm...
Crowly Skrevet 5. juni 2010 Skrevet 5. juni 2010 Prøv å kjør echo $_SERVER['REMOTE_ADDR']; og se hva som skjer.... Hvis man lurer på noe så er det ikke noe galt i å lage midlertidige "gjett og sjekk" skript for å se hvordan ting oppfører seg, eller hvilke verdier ymse ting inneholder osv.
Sk!ppy Skrevet 5. juni 2010 Skrevet 5. juni 2010 Ja, det er riktig. Du burde forresten filtrere den, og passe på at det faktisk er en IP den returnerer. Ja, det er mulig å hacke en webside ved hjelp av $_SERVER
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 Sikkert en klanside for MW2 med et lite forum der folk eller boter registrerer seg i hytt og pine og spammer reklame. Det er jo ikke vbulletin eller et forum som er ute på nettet. Så tror ikke noen har boter til det nei.
Sk!ppy Skrevet 5. juni 2010 Skrevet 5. juni 2010 Men hva er det du lager? Er det et form for spill? For uansett hva det er, så er $_SERVER grunnleggende mener jeg.
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 (endret) okei, jeg prøvde dette: er det noe feil med det? $sql = "INSERT INTO users(user_name, user_pass, user_email ,user_date, user_level, user_ip) VALUES('" . mysql_real_escape_string($_POST['user_name']) . "', '" . sha1($_POST['user_pass']) . "', '" . mysql_real_escape_string($_POST['user_email']) . "', NOW(), 0)", $_SERVER['REMOTE_ADDR']; $result = mysql_query($sql); får ingen error men heller ingen ip i dben Endret 5. juni 2010 av WeExClan
Sk!ppy Skrevet 5. juni 2010 Skrevet 5. juni 2010 (endret) Borsett fra litt rotete kode ser jeg ikke noe feil, borsett fra der du setter inn user_level kanskje. Syns det blir ryddigere med sprintf. Se kode. $query = sprintf("INSERT INTO `users` (`user_name`, `user_Pass`, `user_email`, `user_date`, `user_level`, `user_ip`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", mysql_real_escape_string($_POST['user_name']), sha1($_POST['user_pass']), mysql_real_escape_string($_POST['user_email']), now(), "0", $_SERVER['REMOTE_ADDR']); $query = mysql_query($query); ( OG jeg anbefaller å filtrere $_SERVER vars, for det kan manipulerest. Endret 5. juni 2010 av Sk!ppy
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 (endret) Borsett fra litt rotete kode ser jeg ikke noe feil, borsett fra der du setter inn user_level kanskje. Syns det blir ryddigere med sprintf. Se kode. $query = sprintf("INSERT INTO `users` (`user_name`, `user_Pass`, `user_email`, `user_date`, `user_level`, `user_ip`) VALUES ('%s', '%s', '%s', '%s', '%s', '%s')", mysql_real_escape_string($_POST['user_name']), sha1($_POST['user_pass']), mysql_real_escape_string($_POST['user_email']), now(), "0", $_SERVER['REMOTE_ADDR']); $query = mysql_query($query); ( OG jeg anbefaller å filtrere $_SERVER vars, for det kan manipulerest. takker, men jeg får enda ikke IPen i databasen. Har det som varchar not null men funker ikke. Har det ip greiene hvis du er logget inn på siden så står det liksom hvilken ip du er på($_SERVER['REMOTE_ADDR') og det funker på siden men det funker ikke i databasen..... Endret 5. juni 2010 av WeExClan
Sk!ppy Skrevet 5. juni 2010 Skrevet 5. juni 2010 (endret) Ikke ha "not null", ha "som definert" eller "as defined". bruker varchar(20) 20, fordi jeg ikke husker antall sifre på en ip. (OM det ikke funker, bruk or die(mysql_error()); Endret 5. juni 2010 av Sk!ppy
NicholasWalker Skrevet 5. juni 2010 Forfatter Skrevet 5. juni 2010 Ikke ha "not null", ha "som definert" eller "as defined". bruker varchar(20) 20, fordi jeg ikke husker antall sifre på en ip. (OM det ikke funker, bruk or die(mysql_error()); Får "NULL" istedenfor ett blankt felt under user_ip...
Crowly Skrevet 5. juni 2010 Skrevet 5. juni 2010 now() er ingen php funksjon, legg den inn i sql'en, det samme kan man gjøre med standard verdier. Hvis user_level er integer så endre '0' til 0 Litt modifisert $query = sprintf("INSERT INTO `users` (`user_name`, `user_Pass`, `user_email`, `user_date`, `user_level`, `user_ip`) VALUES ('%s', '%s', '%s', NOW(), '0', '%s')", mysql_real_escape_string($_POST['user_name']), sha1($_POST['user_pass']), mysql_real_escape_string($_POST['user_email']), $_SERVER['REMOTE_ADDR']); //debug echo $query."<br />"; // sjekk at sql'en ser riktig ut mysql_query($query);
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå