Avatar billede kegud Nybegynder
02. juni 2003 - 14:57 Der er 12 kommentarer og
1 løsning

tagwall med sessions

nu er jeg ikke så total meget inde i at bruge sessions. men jeg har tænkt mig at lave en tagwall med sessions, hvor ens ip bliver logget, og så skal man ikke kunne skrive igen før et minut eller 2 senere. Jeg er godt træt af syge spammere. Nogen der har nogle eksempler på noget
Avatar billede sqren Nybegynder
02. juni 2003 - 15:01 #1
Tag et kig på www.hotscripts.com
Avatar billede ahv Nybegynder
02. juni 2003 - 15:06 #2
Jeg har en klar om 10-15 min.
Avatar billede ahv Nybegynder
02. juni 2003 - 15:11 #3
Tagwall.php

<?php
$connection = mysql_pconnect("host","username","password");
mysql_select_db("database");
$ip = getenv ("REMOTE_ADDR");
$time = date("Y-m-d H:i:s", (time()-60*60*1*1));
$querycheck = mysql_query ("SELECT * FROM tagwall WHERE ip='$ip' AND dato > '$time'");
$rowcheck = mysql_fetch_array($querycheck);
if ($rowcheck) {
    $write = 1;
}

if($_POST[skriv]){
if($_POST[navn] && $_POST[besked]){
if($_POST[mail]<>"")
{
$mailtjek = eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$_POST[mail]);
if($mailtjek==0)
{
$error = 1;
}}}else{
$error = 2;
}

if(!$error){
$_POST[besked] = addslashes($_POST[besked]);
$_POST[besked] = ereg_replace("<([^>]+)>", "", $_POST[besked]);

$_POST[site] = "http://$_POST[site]";
$_POST[site] = ereg_replace("http://([a-zA-Z0-9@:%_.~#-\?&]*)", "<a target=_blank href=\"http://\\1\">\\1</a>", $_POST[site]);

mysql_query("insert into tagwall (navn, mail, site, besked, dato, ip) values ('$_POST[navn]', '$_POST[mail]', '$_POST[site]', '$_POST[besked]', now(), '$ip')");
header("Location: tagwall.php");
}}
?>

<html>
<head>
<title>Tagwall</title>

<style>

body{font-size: 11px; font-family: tahoma; color: #FFFFFF; background-color: #24272F;}
table{font-size: 11px; font-family: tahoma; color: #FFFFFF; }
A:link {text-decoration: none; color: #FFFFFF;}
A:visited {text-decoration: none; color: #FFFFFF;}
A:active {text-decoration: none; color: #FFFFFF;}
A:hover {text-decoration: none; color: #C0C0C0;}

</style>
</head>

<body>

<?php
if (!$write) {
if($error == 1){ echo "Den indtastede mail er <b>ikke</b> korrekt.<br>"; }
if($error == 2){ echo "Du mangler at udfylde nogle felter"; }

?>

<b>
<form method="post" action="tagwall.php">
Navn:<br>
<input type="text" name="navn" size="30" maxlength="30" style="color: #000000;background-color: #ffffff;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; font-size: 8pt; font-family: Verdana; color: #000000; font-weight: bold;" value="<?php echo $_POST[navn]; ?>"><br>
E-Mail:<br>
<input type="text" name="mail" size="30" maxlength="100" style="color: #000000;background-color: #ffffff;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; font-size: 8pt; font-family: Verdana; color: #000000; font-weight: bold;" value="<?php echo $_POST[mail]; ?>"><br>
Hjemmeside:<br>
<input type="text" name="site" size="30" maxlength="100" style="color: #000000;background-color: #ffffff;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; font-size: 8pt; font-family: Verdana; color: #000000; font-weight: bold;" value="<?php echo $_POST[site]; ?>"> (uden http://)<br>
Besked:<br>
<textarea wrap="virtual" rows="5" name="besked" cols="40" style="color: #000000;background-color: #ffffff;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; font-size: 8pt; font-family: Verdana; color: #000000; font-weight: bold;"><?php echo $_POST[besked]; ?></textarea><br>
<input type="submit" name="skriv" value="Skriv" style="color: #000000;background-color: #ffffff;border-left: 1px solid #000000; border-right: 1px solid #000000; border-top: 1px solid #000000; border-bottom: 1px solid #000000; font-size: 8pt; font-family: Verdana; color: #000000; font-weight: bold;">
</form>
</b></font>

<br><br>

</body>
</html>

<?php
}
$visfra = $_GET[visfra];

if(!$_GET[visfra])
{
$visfra = 0;
}

$query = mysql_query ("SELECT * FROM tagwall ORDER BY id DESC limit $visfra, 10");
while ($row = mysql_fetch_array($query)) {
echo "<table width='500' bgcolor='#333742' style='border-collapse: collapse;' cellpadding='3'>";
echo "<tr><td style='border: 1px solid black;'><span style='float: right;'>$row[dato]</span><span style='text-align:left;'>";
echo "<a href='mailto: $row[mail]'><b>$row[navn]</b></a> <a href='$row[site]'>$row[site]</a></span></td></tr>";
echo "<tr><td style='border-left: 1px solid black; border-right: 1px solid black; border-bottom: 1px solid black;'>".nl2br(stripslashes($row[besked]))."</td></tr>";
echo "</table><br>";
}

$antal = mysql_num_rows(mysql_query("SELECT id FROM tagwall"));

if($visfra>0)
{
$bagud = $visfra-10;
echo "<a href='$PHP_SELF?visfra=$bagud'>Forrige</a> ";
}
$page = 1;
for($start=0; $antal > $start; $start=$start+10){
if($visfra != $page*10-10)
{
echo "<a href='$PHP_SELF?visfra=$start'>$page</a> ";
}else{
echo $page." ";
}
$page = $page+1;
}
if($visfra< $antal-10)
{
$naeste = $visfra+10;
echo " <a href='$PHP_SELF?visfra=$naeste'>Næste</a>";
}
mysql_close($connection);
?>


Tabelstruktur:

# phpMyAdmin MySQL-Dump
# version 2.5.0
# http://www.phpmyadmin.net/ (download page)
#
# Vært: localhost
# Genereringstidspunkt: 02/06 2003 kl. 15:11:01
# Server version: 4.0.12
# PHP version: 4.3.0
# Database: : `exp`
# --------------------------------------------------------

#
# Struktur dump for tabellen `tagwall`
#
# Creation: 02/06 2003 kl. 15:07:35
# Last update: 02/06 2003 kl. 15:09:36
#

CREATE TABLE `tagwall` (
  `id` int(11) NOT NULL auto_increment,
  `navn` varchar(50) NOT NULL default '',
  `mail` varchar(150) NOT NULL default '',
  `site` varchar(150) NOT NULL default '',
  `besked` text NOT NULL,
  `dato` datetime NOT NULL default '0000-00-00 00:00:00',
  `ip` varchar(20) NOT NULL default '',
  PRIMARY KEY  (`id`)
) TYPE=MyISAM AUTO_INCREMENT=2 ;
Avatar billede ahv Nybegynder
02. juni 2003 - 15:13 #4
En lille opdatering til den hvor kdoen er lidt kønnere kommer om lidt.
Avatar billede ahv Nybegynder
02. juni 2003 - 15:25 #5
Det skal måske siges at tagwallen nu indeholder:
- 10 pr. side
- Mailtjek
- Tjekker at navn og besked er udfyldt
- Man kan ikke skrive to beskeder lige efter hinanden der skal gå 2 min.


<?php
$connection = mysql_pconnect("host","username","password");
mysql_select_db("database");
$prside = 10;
$ip = getenv ("REMOTE_ADDR");
$time = date("Y-m-d H:i:s", (time()-60*60*1*1));
$querycheck = mysql_query ("SELECT * FROM tagwall WHERE ip='$ip' AND dato > '$time'");
$rowcheck = mysql_fetch_array($querycheck);
if ($rowcheck) {
    $write = 1;
}

if ($_POST[skriv]) {
    if ($_POST[navn] && $_POST[besked]) {
        if ($_POST[mail]<>"") {
            $mailtjek = eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$_POST[mail]);
            if ($mailtjek==0) {
                $error = 1;
            }
        }
    } else {
        $error = 2;
    }
    if (!$error) {
        $_POST['besked'] = addslashes($_POST['besked']);
        $_POST['besked'] = ereg_replace("<([^>]+)>", "", $_POST['besked']);
        $_POST['site'] = "http://$_POST[site]";
        $_POST['site'] = ereg_replace("http://([a-zA-Z0-9@:%_.~#-\?&]*)", "<a target=_blank href=\"http://\\1\">\\1</a>", $_POST['site']);
        mysql_query("insert into tagwall (navn, mail, site, besked, dato, ip) values ('$_POST[navn]', '$_POST[mail]', '$_POST[site]', '$_POST[besked]', now(), '$ip')");
        header("Location: tagwall.php");
    }
}
?>
<html>
<head>
<title>Tagwall</title>
<style>
body {
    font-size: 11px;
    font-family: tahoma;
    color: #FFFFFF;
    background-color: #24272F;
}
table {
    font-size: 11px;
    font-family: tahoma;
    color: #FFFFFF;
}
a:link {
    text-decoration: none;
    color: #FFFFFF;
}
a:visited {
    text-decoration: none;
    color: #FFFFFF;
}
a:active {
    text-decoration: none;
    color: #FFFFFF;
}
a:hover {
    text-decoration: none;
    color: #C0C0C0;
}
textarea,input {
    color: #000000;
    background-color: #ffffff;
    border: 1px solid #000000;
    font-size: 8pt;
    font-family: Verdana;
    color: #000000;
    font-weight: bold;
}
</style>
</head>
<body>
<?php
if (!$write) {
    if ($error == 1) {
        echo "Den indtastede mail er <b>ikke</b> korrekt.<br>";
    }
    if ($error == 2) {
        echo "Du mangler at udfylde nogle felter";
    }
?>

<b>
<form method="post" action="tagwall.php">
Navn:<br>
<input type="text" name="navn" size="30" maxlength="30" value="<?php echo $_POST[navn]; ?>"><br>
E-Mail:<br>
<input type="text" name="mail" size="30" maxlength="100" value="<?php echo $_POST[mail]; ?>"><br>
Hjemmeside:<br>
<input type="text" name="site" size="30" maxlength="100" value="<?php echo $_POST[site]; ?>"> (uden http://)<br>
Besked:<br>
<textarea wrap="virtual" rows="5" name="besked" cols="40"><?php echo $_POST[besked]; ?></textarea><br>
<input type="submit" name="skriv" value="Skriv">
</form>
</b></font>
<br/><br/>

<?php
}

$visfra = $_GET[visfra];

if (!$_GET['visfra']) {
    $visfra = 0;
}

$query = mysql_query ("SELECT * FROM tagwall ORDER BY id DESC limit $visfra, $prside");
while ($row = mysql_fetch_array($query)) {
    echo "<table width='500' bgcolor='#333742' style='border-collapse: collapse;' cellpadding='3'>";
    echo "<tr><td style='border: 1px solid black;'><span style='float: right;'>$row[dato]</span><span style='text-align:left;'>";
    echo "<a href='mailto: $row[mail]'><b>$row[navn]</b></a> <a href='$row[site]'>$row[site]</a></span></td></tr>";
    echo "<tr><td style='border-left: 1px solid black; border-right: 1px solid black; border-bottom: 1px solid black;'>".nl2br(stripslashes($row[besked]))."</td></tr>";
    echo "</table><br>";
}

$antal = mysql_num_rows(mysql_query("SELECT id FROM tagwall"));

if($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}

$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside){
    if ($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page = $page + 1;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}
mysql_close($connection);
?>
</body>
</html>
Avatar billede ahv Nybegynder
02. juni 2003 - 15:29 #6
Flere opdateringer, før kunne man bare blive ved at trykke send så lavede den flere, dette er ændret;



<?php
$connection = mysql_pconnect("host","username","password");
mysql_select_db("database");
$prside = 10;
$ip = getenv ("REMOTE_ADDR");
$time = date("Y-m-d H:i:s", (time()-60*60*1*1));
$querycheck = mysql_query ("SELECT * FROM tagwall WHERE ip='$ip' AND dato > '$time'");
$rowcheck = mysql_fetch_array($querycheck);
if ($rowcheck) {
    $write = 1;
}

if ($_POST['skriv']) {
    if ($_POST['navn'] && $_POST['besked']) {
        if ($_POST['mail']<>"") {
            $mailtjek = eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-z]{2,4}$",$_POST['mail']);
            if ($mailtjek==0) {
                $error = 1;
            }
        }
    } else {
        $error = 2;
    }
    if (!$error) {
        $_POST['besked'] = addslashes($_POST['besked']);
        $_POST['besked'] = ereg_replace("<([^>]+)>", "", $_POST['besked']);
        $_POST['site'] = "http://$_POST[site]";
        $_POST['site'] = ereg_replace("http://([a-zA-Z0-9@:%_.~#-\?&]*)", "<a target=_blank href=\"http://\\1\">\\1</a>", $_POST['site']);
        mysql_query("insert into tagwall (navn, mail, site, besked, dato, ip) values ('$_POST[navn]', '$_POST[mail]', '$_POST[site]', '$_POST[besked]', now(), '$ip')");
        header("Location: tagwall.php");
    }
}
?>
<html>
<head>
<title>Tagwall</title>
<style type="text/css">
body {
    font-size: 11px;
    font-family: tahoma;
    color: #FFFFFF;
    background-color: #24272F;
}
table {
    font-size: 11px;
    font-family: tahoma;
    color: #FFFFFF;
}
a:link {
    text-decoration: none;
    color: #FFFFFF;
}
a:visited {
    text-decoration: none;
    color: #FFFFFF;
}
a:active {
    text-decoration: none;
    color: #FFFFFF;
}
a:hover {
    text-decoration: none;
    color: #C0C0C0;
}
textarea,input {
    color: #000000;
    background-color: #ffffff;
    border: 1px solid #000000;
    font-size: 8pt;
    font-family: Verdana;
    color: #000000;
    font-weight: bold;
}
</style>
<script type="text/javascript">
var c = 0;
function check() {
    if (c == 0) {
        c++;
        return true;
    } else {
        return false
    }
}
</script>
</head>
<body>
<?php
if (!$write) {
    if ($error == 1) {
        echo "Den indtastede mail er <b>ikke</b> korrekt.<br>";
    }
    if ($error == 2) {
        echo "Du mangler at udfylde nogle felter";
    }
?>

<b>
<form method="post" action="tagwall.php" onsubmit="return check();">
Navn:<br>
<input type="text" name="navn" size="30" maxlength="30" value="<?php echo $_POST['navn']; ?>"><br>
E-Mail:<br>
<input type="text" name="mail" size="30" maxlength="100" value="<?php echo $_POST['mail']; ?>"><br>
Hjemmeside:<br>
<input type="text" name="site" size="30" maxlength="100" value="<?php echo $_POST['site']; ?>"> (uden http://)<br>
Besked:<br>
<textarea wrap="virtual" rows="5" name="besked" cols="40"><?php echo $_POST['besked']; ?></textarea><br>
<input type="submit" name="skriv" value="Skriv">
</form>
</b></font>
<br/><br/>

<?php
}

$visfra = $_GET['visfra'];

if (!$_GET['visfra']) {
    $visfra = 0;
}

$query = mysql_query ("SELECT * FROM tagwall ORDER BY id DESC limit $visfra, $prside");
while ($row = mysql_fetch_array($query)) {
    echo "<table width='500' bgcolor='#333742' style='border-collapse: collapse;' cellpadding='3'>";
    echo "<tr><td style='border: 1px solid black;'><span style='float: right;'>$row[dato]</span><span style='text-align:left;'>";
    echo "<a href='mailto: $row[mail]'><b>$row[navn]</b></a> <a href='$row[site]'>$row[site]</a></span></td></tr>";
    echo "<tr><td style='border-left: 1px solid black; border-right: 1px solid black; border-bottom: 1px solid black;'>".nl2br(stripslashes($row['besked']))."</td></tr>";
    echo "</table><br>";
}

$antal = mysql_num_rows(mysql_query("SELECT id FROM tagwall"));

if($visfra > 0) {
    $bagud = $visfra - $prside;
    echo "<a href='$_SERVER[PHP_SELF]?visfra=$bagud'>Forrige</a> ";
}

$page = 1;
for ($start = 0; $antal > $start; $start = $start + $prside){
    if ($visfra != $page * $prside - $prside) {
        echo "<a href='$_SERVER[PHP_SELF]?visfra=$start'>$page</a> ";
    } else {
        echo $page." ";
    }
    $page = $page + 1;
}
if ($visfra < $antal - $prside) {
    $naeste = $visfra + $prside;
    echo " <a href='$_SERVER[PHP_SELF]?visfra=$naeste'>Næste</a>";
}
mysql_close($connection);
?>
</body>
</html>
Avatar billede ahv Nybegynder
02. juni 2003 - 15:39 #7
Hov den er sat til 1 time lige nu;

$time = date("Y-m-d H:i:s", (time()-60*2*1*1));

Sådan skal time linien se ud så er det 2 min.
Avatar billede kegud Nybegynder
02. juni 2003 - 15:53 #8
for nice, ahv.. tjekker lige det igennem og så smider jeg point hvis det funker :)
Avatar billede ahv Nybegynder
02. juni 2003 - 15:59 #9
Nu fik jeg fat på den gamle tagwall, tror lige jeg laver lidt ekstra ting på såsom admin så man kan slette tags osv. Jeg vender tilbage med et link til denne version.
Avatar billede kegud Nybegynder
02. juni 2003 - 16:07 #10
ikke nødvendigt, finder jeg selv ud af ;) men mange gange tak for det du har lavet!!
Avatar billede mulles.tk Nybegynder
16. juni 2003 - 22:38 #11
ahv --> Hvis du vil lave et admin system, skal jeg nok give dig point for det ;)
Avatar billede ahv Nybegynder
16. juni 2003 - 22:43 #12
mulles.tk ->
Så må du jo oprette et spm. i PHP-kategorien om dette :D
Avatar billede mulles.tk Nybegynder
16. juni 2003 - 22:51 #13
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