Avatar billede mpj86 Nybegynder
15. juli 2003 - 23:41 Der er 34 kommentarer og
1 løsning

Ikke 3 i træk

Hej

Nogle der kan lave så folk ikke kan skrive mere end 3 smilies i træk og der må f.eks godt være 10 smilies i ens kommentar bare hvor der ikke er 3 i træk eller mere....

Hvis der så er det skal den bare slette dem til der kun er 3.

smilies koderne:

:)  :D  :(  8)  :P  ;)  :?  :cry:  :shock:  :x  :oops:  :roll:  :twisted:  ;)!

Nogle der kan lave det?
Avatar billede sostack Nybegynder
16. juli 2003 - 07:39 #1
Ok:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                //echo $pattern . " : " . $replacement . "<br />\n";
                }
            }
        }
    }
}
return $tekststreng;
}
?>
Avatar billede mpj86 Nybegynder
16. juli 2003 - 10:41 #2
Her er koden til når jeg skriver en kommentar:


<?php
include('config.php');
$id=intval($_GET['id']);

session_start();
if(!$_SESSION['logget_ind'] == '1') {
header('Location: login.php');
exit;
} else {
    $date = date('d/m/Y - H:i:s');
    mysql_query("UPDATE brugere SET sidste_aktivitet='$date' WHERE nick='$_SESSION[user]'") or die('Fejl: '.mysql_error());
}

if($_POST['form_kommentar']){
    $kommentar = addslashes($_POST['form_kommentar']);
    $user = $_SESSION['user'];
    $mail = (isset($_POST['yesmail'])) ? $_SESSION['mail'] : NULL;
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,email,dato,kommentar,ip) VALUES ('$id','$user','$mail','$dato','$kommentar','$ip')") or die (mysql_error());
    header('Location: scooter.php?id='.$id);
}
require_once('topbar2.php');
?>

Hvor skal din kode ind henne?
Avatar billede mpj86 Nybegynder
16. juli 2003 - 10:46 #3
Eller er det bedre at have din kode på siden hvor man udskriver kommentaren??
Avatar billede sostack Nybegynder
16. juli 2003 - 10:47 #4
Gem min kode som  "smiley.php" i dit include bibliotek.
Skift din egen kode ud med denne:

<?php
include('config.php');
include('smiley.php');
$id=intval($_GET['id']);

session_start();
if(!$_SESSION['logget_ind'] == '1') {
header('Location: login.php');
exit;
} else {
    $date = date('d/m/Y - H:i:s');
    mysql_query("UPDATE brugere SET sidste_aktivitet='$date' WHERE nick='$_SESSION[user]'") or die('Fejl: '.mysql_error());
}

if($_POST['form_kommentar']){
    $kommentar = addslashes(smiley_check($_POST['form_kommentar']));
    $user = $_SESSION['user'];
    $mail = (isset($_POST['yesmail'])) ? $_SESSION['mail'] : NULL;
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,email,dato,kommentar,ip) VALUES ('$id','$user','$mail','$dato','$kommentar','$ip')") or die (mysql_error());
    header('Location: scooter.php?id='.$id);
}
require_once('topbar2.php');
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 10:58 #5
Det har jeg gjort nu men det dur ikke man kan skrive lige som mange smiliys man vil i træk...
Avatar billede sostack Nybegynder
16. juli 2003 - 11:33 #6
Ret din smiley.php til:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 12:44 #7
Nope det dur ikke man kan stædig skrive lige så mange man vil...
Avatar billede sostack Nybegynder
16. juli 2003 - 12:53 #8
Ja, skrive lige så mange man vil, men der kommer da kun de 3 første med over i databasen ??

Hvor mange prøver du med?

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 12:59 #9
Nope alle sammen kommer i db...

Jeg har prøvet med 3,6,10....
Avatar billede sostack Nybegynder
16. juli 2003 - 13:06 #10
vis mig lige den kode du har nu?

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 13:16 #11
smiley.php:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
?>



Skriv_kommentar.php:



<?php
include('config.php');
include('smiley.php');
$id=intval($_GET['id']);

session_start();
if(!$_SESSION['logget_ind'] == '1') {
header('Location: login.php');
exit;
} else {
    $date = date('d/m/Y - H:i:s');
    mysql_query("UPDATE brugere SET sidste_aktivitet='$date' WHERE nick='$_SESSION[user]'") or die('Fejl: '.mysql_error());
}

if($_POST['form_kommentar']){
    $kommentar = addslashes(smiley_check($_POST['form_kommentar']));
    $user = $_SESSION['user'];
    $mail = (isset($_POST['yesmail'])) ? $_SESSION['mail'] : NULL;
    $dato = date('d/m/Y - H:i:s');
    $ip = $_SERVER['REMOTE_ADDR'];
    mysql_query("INSERT INTO scooter_kommentar (scooter_id,navn,email,dato,kommentar,ip) VALUES ('$id','$user','$mail','$dato','$kommentar','$ip')") or die (mysql_error());
    header('Location: scooter.php?id='.$id);
}
require_once('topbar2.php');
?>
Avatar billede sostack Nybegynder
16. juli 2003 - 13:29 #12
Gem denne som testsmiley.php, kør den og kom med resultatet:
<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
echo check_smiley("Her er en test ;) ;) ;) ;) ;) ;) ;) 8) :roll: :oops: med mange smileys ;) :P :oops: der bliver kortet ned til 3 efter hinanden følgende smileys :cry: :shock: ;) ;) ;)! ;) :cry:");
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:03 #13
Avatar billede sostack Nybegynder
16. juli 2003 - 14:05 #14
ret check_smiley til smiley_check i echo linien (28)

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:10 #15
Ja det dur men det dur bare ikke når det skal i db der skriver den alle smileys ind...
Avatar billede sostack Nybegynder
16. juli 2003 - 14:12 #16
Har du mellemrum (space) mellem dine smileys når du skriver dem i kommentarfeltet?

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:15 #17
Ja sådan er de: :) ........
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:18 #18
Sådan her:  :)  :)  :)  :)  :)  :)  :)  :)  :) Men allesammen kommer i db...
Avatar billede sostack Nybegynder
16. juli 2003 - 14:21 #19
Ret din smiley.php til:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . "  " . $smileys[$j] . "  " . $smileys[$k] . "  " . $smileys[$l];
                $replacement = $smileys[$i] . "  " . $smileys[$j] . "  " . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                $pattern = $smileys[$i] . $smileys[$j] . $smileys[$k] . $smileys[$l];
                $replacement = $smileys[$i] . $smileys[$j] . $smileys[$k];
                for($cff = 0; $cff < 5; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:25 #20
Nu er den ved at være der:

Hvis jeg skriver dette:
:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :) :)  :)  :)  :)  :)  :)  :)  :)  :)
:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)


Så bliver det til:
:)  :)  :)  :)  :)  :)
:)  :)  :)
:)  :)  :)  :)  :)
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:29 #21
Hov det var sådan...


Hvis jeg skriver dette:
:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)

Så bliver det til:
:)  :)  :)  :)  :)


Hvis jeg skriver dette:
:)  :)  :)  :)  :)  :)  :)  :)

Så bliver det til:
:)  :)  :)
Avatar billede sostack Nybegynder
16. juli 2003 - 14:32 #22
ret $cff < 5 til $cff < 10 i 3 linier

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:34 #23
Øhh 3 linie er {....
Avatar billede sostack Nybegynder
16. juli 2003 - 14:39 #24
ret smiley.php til:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:", ";)!");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
$tekststreng = str_replace("  ", " ", $tekststreng);
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 10; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                $pattern = $smileys[$i] . $smileys[$j] . $smileys[$k] . $smileys[$l];
                $replacement = $smileys[$i] . $smileys[$j] . $smileys[$k];
                for($cff = 0; $cff < 10; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:44 #25
Nu dur kode bare ikke til denne smiliey: ;)!
Avatar billede sostack Nybegynder
16. juli 2003 - 14:51 #26
ret smiley.php til:

<?php
function smiley_check($tekststreng)
{
$smileys = Array(";)!", ":)", ":D", ":(", "8)", ":P", ";)", ":?", ":cry:", ":shock:", ":x", ":oops:", ":roll:", ":twisted:");
if(ereg(":", $tekststreng) || ereg(")", $tekststreng))
{
$tekststreng = str_replace("  ", " ", $tekststreng);
for($i = 0; $i < count($smileys); $i++)
    {
    for($j = 0; $j < count($smileys); $j++)
        {
        for($k = 0; $k < count($smileys); $k++)
            {
            for($l = 0; $l < count($smileys); $l++)
                {
                $pattern = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k] . " " . $smileys[$l];
                $replacement = $smileys[$i] . " " . $smileys[$j] . " " . $smileys[$k];
                for($cff = 0; $cff < 10; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                $pattern = $smileys[$i] . $smileys[$j] . $smileys[$k] . $smileys[$l];
                $replacement = $smileys[$i] . $smileys[$j] . $smileys[$k];
                for($cff = 0; $cff < 10; $cff++)
                    {
                        $tekststreng = str_replace($pattern, $replacement, $tekststreng);
                    }
                }
            }
        }
    }
}
return $tekststreng;
}
?>

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 14:55 #27
Det dur ikke helt hvis jeg skriver sådan en kommentar:

:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)




Så bliver det til:

:)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)  :)
Avatar billede sostack Nybegynder
16. juli 2003 - 14:58 #28
ret $cff < 10 til $cff < 20 i linie 18 og linie 24.
det kommer til at tage lang tid, men hvis dine brugere er så tåbelige, at de kan finde på at skrive så mange smileys, er det jo nok nødvendigt.

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 15:01 #29
Kan jeg bare rettet dette: $cff < 10

Til f.eks $cff < 2000 det vil bare tage længere tid?

Ja det er pisse irriterende at der er sådan nogle der ikke fat at de ikke skal bruge så mange smileys...
Avatar billede mpj86 Nybegynder
16. juli 2003 - 15:02 #30
Hvor kan jeg selv lære at lave sådan nogle function skal helst være på dansk.....
Avatar billede sostack Nybegynder
16. juli 2003 - 15:03 #31
Du skal huske på, at php som default har en max_executiontime på 30 sekunder, så 2000 er nok i overkanten

//sostack
Avatar billede mpj86 Nybegynder
16. juli 2003 - 15:04 #32
Hvad vil du så max sige at jeg kan sætte den til?
Avatar billede sostack Nybegynder
16. juli 2003 - 15:04 #33
prøw på http://www.webcafe.dk

//sostack
Avatar billede sostack Nybegynder
16. juli 2003 - 15:05 #34
Kommer tilbage i morgen tidlig!
Avatar billede mpj86 Nybegynder
16. juli 2003 - 15:06 #35
Ok takker..
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester