tbaeck Skrevet 14. februar 2007 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(); } ?>
Ståle Skrevet 14. februar 2007 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.
tbaeck Skrevet 14. februar 2007 Forfatter 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?
tbaeck Skrevet 14. februar 2007 Forfatter 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
ehellabe Skrevet 14. februar 2007 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
Kagee Skrevet 14. februar 2007 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
Ståle Skrevet 14. februar 2007 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
tbaeck Skrevet 15. februar 2007 Forfatter Skrevet 15. februar 2007 Da får jeg alt til å fungere - tusen takk alle. Hjelpen var over all forventning!
tbaeck Skrevet 19. februar 2007 Forfatter 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
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å