tbaeck Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 Hei - jeg har en enkel chat som jeg har satt opp basert på dette scriptet: http://www.linuxuser.at/index.php?title=Mo..._Ajax_Chat_Ever Har imidlertid behov for å skille ut meldinger som kommer fra admin, slik at de f.eks er i bold eller rød skrift, står "admin" eller lignende. Tenkte det kanskje kunne gjøres ved å legge til en if ($REMOTE_ADDR == "admin ip adresse") { Men jeg får det ikke til.. Noen som vet hva jeg kan gjøre? Tror det er rimelig simpelt... trenger som sagt bare en ekstra : eller admin etter navnet... Her er koden som skriver til tekstfilen: <?php function makeSmiley($msg){ $file = file("smiley.txt"); for($i=0;$i<count($file);$i++){ $exp = explode('|', $file[$i]); $msg = str_replace($exp[0], $exp[1], $msg); } return $msg; } function filter($msg){ $f = file("badwords.txt"); for($i=0;$i<count($f);$i++){ $bad_words = explode(',', $f[$i]); } foreach ($bad_words as $naughty){ $msg = eregi_replace($naughty, "*****", $msg); } return $msg."\n"; } if(isset($_GET['msg']) && isset($_GET['name'])){ $text = $_GET['msg']; $name = $_GET['name']; $text = stripslashes($text); $text = filter($text); $text = makeSmiley($text); $f = fopen('msgs.txt', 'a'); fwrite($f, $name.": ".$text.""); fclose($f); } else { exit(); } ?> Lenke til kommentar
Ståle Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 if(isset($_GET['msg']) && isset($_GET['name'])){ $text = $_GET['msg']; $name = $_GET['name']; gjør om til: $ipadresser = array('10.0.0.1', '10.0.0.2'); if(isset($_GET['msg']) && isset($_GET['name'])){$text = $_GET['msg'];foreach($ipadresse as $ipadresse) {if ($_SERVER['REMOTE_ADDR'] == $ipadresse)$admin = 1;}if ($admin == 1)$name = '<strong style="font-weight:bold;">Adminz0r: ' . $_GET['name'] ' </strong>';else $name = $_GET['name']; da kommer det rød skrift og Adminzor foran navnet. Lenke til kommentar
tbaeck Skrevet 14. februar 2007 Forfatter Del Skrevet 14. februar 2007 Hei, først: TUSEN TUSEN TUSEN TAKK! Det ser ut som du har tenkt riktig.. Lurer imidlertid på om det fortsatt kan være en bug, da det nå ikke blir postet/dukker opp nye innlegg. Kommer ikke noen feilmelding, men det virker som om de ikke skrives til txt filen... Har prøvd både med admin-ip og uten. Clue? Lenke til kommentar
tbaeck Skrevet 14. februar 2007 Forfatter Del Skrevet 14. februar 2007 (endret) Tror jeg fikk det til nå alikevel: <?php function makeSmiley($msg){ $file = file("smiley.txt"); for($i=0;$i<count($file);$i++){ $exp = explode('|', $file[$i]); $msg = str_replace($exp[0], $exp[1], $msg); } return $msg; } function filter($msg){ $f = file("badwords.txt"); for($i=0;$i<count($f);$i++){ $bad_words = explode(',', $f[$i]); } foreach ($bad_words as $naughty){ $msg = eregi_replace($naughty, "*****", $msg); } return $msg."\n"; } if(isset($_GET['msg']) && isset($_GET['name'])){ $text = $_GET['msg']; if ($REMOTE_ADDR == "90.333.68.8") $name = "<font color=yellow>Admin</font>"; else $name = $_GET['name']; $text = stripslashes($text); $text = filter($text); $text = makeSmiley($text); $f = fopen('msgs.txt', 'a'); fwrite($f, $name.": ".$text.""); fclose($f); } else { exit(); } ?> Det jeg imidlertid ser nå, er at folk kan gi seg ut for å være admin ved å bruke HTML koder. Hvordan disabler jeg HTML koder i postingen? Endret 14. februar 2007 av tbaeck Lenke til kommentar
ehellabe Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 Jeg endret koden litt slik at <, > osv. blir erstattet med < o.l. (if-en jeg endra på) if ($REMOTE_ADDR == "90.333.68.8") { $name = "<font color=yellow>Admin</font>"; } else { $name = $_GET['name']; $name = htmlentities($name); } (hele koden) <?php function makeSmiley($msg){ $file = file("smiley.txt"); for($i=0;$i<count($file);$i++){ $exp = explode('|', $file[$i]); $msg = str_replace($exp[0], $exp[1], $msg); } return $msg; } function filter($msg){ $f = file("badwords.txt"); for($i=0;$i<count($f);$i++){ $bad_words = explode(',', $f[$i]); } foreach ($bad_words as $naughty){ $msg = eregi_replace($naughty, "*****", $msg); } return $msg."\n"; } if(isset($_GET['msg']) && isset($_GET['name'])){ $text = $_GET['msg']; if ($REMOTE_ADDR == "90.333.68.8") { $name = "<font color=yellow>Admin</font>"; } else { $name = $_GET['name']; $name = htmlentities($name); } $text = stripslashes($text); $text = filter($text); $text = makeSmiley($text); $f = fopen('msgs.txt', 'a'); fwrite($f, $name.": ".$text.""); fclose($f); } else { exit(); } ?> Har ikke fått testa det ut, men regner med at det virker. Einar Lenke til kommentar
Kagee Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 (endret) Edit: To late. Bruke jeg virkelig 4 minutter før jeg fikk postet dette svaret? Det du leter etter, befinner seg her: http://no.php.net/manual/en/function.htmlentities.php Eventuelt her: http://no.php.net/manual/en/function.htmlspecialchars.php Endret 14. februar 2007 av Kagee Lenke til kommentar
Ståle Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 (endret) Hei,først: TUSEN TUSEN TUSEN TAKK! Det ser ut som du har tenkt riktig.. Lurer imidlertid på om det fortsatt kan være en bug, da det nå ikke blir postet/dukker opp nye innlegg. Kommer ikke noen feilmelding, men det virker som om de ikke skrives til txt filen... Har prøvd både med admin-ip og uten. Clue? 7942593[/snapback] ops ja.. glemte en bokstav i den ene variablelen dette scriptet gjør at du kan ha flere admin iper, men hvis ike du trenger det er det like smart å bruke et av de andre scriptene. $ip = $_SERVER['REMOTE_ADDR']; $ipadresser = array('10.0.0.1', '10.0.0.2'); if(isset($_GET['msg']) && isset($_GET['name'])){ $text = $_GET['msg']; if (in_array($ip, $ipadresser)) $name = '<strong style="color:#f00;">Adminz0r: ' . $_GET['name'] ' </strong>'; else $name = $_GET['name']; for å bruke scriptet uten å sende via URL'en kan du bruke POST. edit; <strong style="font-weight:bold;"> OMG! Endret 14. februar 2007 av Ståle Lenke til kommentar
Ståle Skrevet 14. februar 2007 Del Skrevet 14. februar 2007 det var det den het ja =/ Lenke til kommentar
tbaeck Skrevet 15. februar 2007 Forfatter Del Skrevet 15. februar 2007 Da får jeg alt til å fungere - tusen takk alle. Hjelpen var over all forventning! Lenke til kommentar
tbaeck Skrevet 19. februar 2007 Forfatter Del Skrevet 19. februar 2007 (endret) Jeg fikk ikke scriptet over til aa fungere i IE, saa bytter til et annet.. Trenger hjelp til samme sak der.. faa bruker paa ip til aa komme i egen farge.. forslag mottaes med takk... her finner dere kildekoden http://www.ime.uerj.br/~progerio/script/vi.../chat/index.php Endret 19. februar 2007 av tbaeck 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å