NicholasWalker Skrevet 5. juni 2010 Del 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... Lenke til kommentar
Crowly Skrevet 5. juni 2010 Del 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 Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del Skrevet 5. juni 2010 Hvordan får jeg ipen i ip feltet da? Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del Skrevet 5. juni 2010 Lager du et mafiaspill? Isåfall er dette grunnleggende kunnskaper. Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del Skrevet 5. juni 2010 Lager du et mafiaspill? Isåfall er dette grunnleggende kunnskaper. Hehe, nei. Lager en side bare... Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del Skrevet 5. juni 2010 Kan jeg spørre hva du lager egentlig? Lenke til kommentar
Bytex Skrevet 5. juni 2010 Del 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. Lenke til kommentar
4588pkdkrikue5c Skrevet 5. juni 2010 Del 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 Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del 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... Lenke til kommentar
Crowly Skrevet 5. juni 2010 Del 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. Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del 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 Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del 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. Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del 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. Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del 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 Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del 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 Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del 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 Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del 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 Lenke til kommentar
NicholasWalker Skrevet 5. juni 2010 Forfatter Del 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... Lenke til kommentar
Crowly Skrevet 5. juni 2010 Del 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); Lenke til kommentar
Sk!ppy Skrevet 5. juni 2010 Del Skrevet 5. juni 2010 Det burde funke ja, litt feil av meg der. Lenke til kommentar
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å