Avatar billede nc85 Nybegynder
20. september 2005 - 11:54 Der er 13 kommentarer

Bruger må først skrive igen når der er gået 30min hvordan?

Hey alle...

Har en nærmest opslagstavle, brugeren kan smide deres lille "hilsen" - når han har gjort dette så må han først skrive på denne side igen efter x antal minutter, hvilket jeg gerne vil have til at være 30

Hvordan laver jeg lige dette?
Avatar billede jakobdo Ekspert
20. september 2005 - 12:05 #1
Du kan gøre flere ting!
F.eks. kan du gemme en cookie, som udløber efter 30 minutter! (cookie kan dog slettes)
Du kan gemme IP på brugeren! (men kommer folk fra samme ip, vil du så blokere alle)
Du kan evt med en session (men lukker brugeren sin browser og ind igen, så kan han igen)

Logger folk ind for at skrive på tavlen?
Avatar billede dustie Mester
20. september 2005 - 12:06 #2
Du kan lave et timestamp felt i databasen og bruge noget SQL i stil med:
SELECT * FROM tabel WHERE ip LIKE '$ip' AND time >= DATE_SUB(NOW(),INTERVAL 1800 SECOND) AND time <= NOW()

Koden er ikke testet, men det skulle virker ;)
Avatar billede dustie Mester
20. september 2005 - 12:08 #3
Hvis man skal logge ind for at skrive kan du lave et check på både ip og brugernavn. Så flere fra samme ip ikke bliver blokeret.
Avatar billede nc85 Nybegynder
20. september 2005 - 12:13 #4
Man logger ind for at bruge opslagstavlen ja...

Der er et timestamp felt i db - når brugeren skriver sin meddelse bliver det bare til now()

Men så vil du have jeg napper folks ip også, også laver den SQL sætning du skrev -> dustie?
Avatar billede horsmark Nybegynder
20. september 2005 - 12:17 #5
<snip>hvis du har brugernavnet er ip underordnet</snip>
Avatar billede horsmark Nybegynder
20. september 2005 - 12:27 #6
$sql = "SELECT * FROM minOpslagstavle WHERE brugernavn = '".$username."' ORDER BY brugerTid DESC ";
$query = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_array($query);

$iMinutesBetweenEntries = 60;
$iUserTimeForLastEntry = $row['brugerTid'];
$iTimeBetweenEntries = $iMinutesBetweenEntries * 60 * 1000;
if ( $iUserTimeForLastEntry > (time() - $iTimeBetweenEntries)){
print "Kære " .$username = ". Du kan først indsætte ny besked om "
} else {
  print "<form> ....
}
Avatar billede horsmark Nybegynder
20. september 2005 - 12:28 #7
noget alá ovenstående .-)
Avatar billede nc85 Nybegynder
20. september 2005 - 12:29 #8
Kan ikke få det til at virke, men tror desuden heller ik det er den måde det skal laves på...

Jeg vil gerne have det til at virke sådan at hvis brugeren har skrevet noget inden for den sidste ½time, så skal formen ikke fremkomme, men derimod en meddelse til at der er x antal minutter til de kan skrive et nyt indlæg
Avatar billede nc85 Nybegynder
20. september 2005 - 12:45 #9
hmm, kan ikke få det til at fungere...

Kan du ik lige fortælle mig hvordan jeg skal sætte det ind i dette:

---------------------------

<?
//Check om bruger er logget ind
include("../member/check-login.php");

//Hent forbindelse
include("../includes/config.inc.php");

//Hent sessions
$Bruger_ID = $_SESSION['Bruger_ID'];
$Brugernavn = $_SESSION['Brugernavn'];

$SQL = "SELECT * FROM opslagstavlen ORDER BY Tid LIMIT 20";
$query = mysql_query($SQL) or die(mysql_error());



?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Meet-me - Hvis du mangler n&aelig;rv&aelig;r</title>
<meta name="Description" content="Meet-me.dk - Mødested for folk der søger lidt nærvær! Gamle venner genforenes, nye venner mødes! Muligheder er der nok af - Det hele er gratis">
<meta name="Keywords" content="venner,drenge,fyre,mænd,dating,chat,kæreste,piger,damer,date,kontakt">
<meta name="Robots" content="ALL">
<meta name="Revisit-after" content="3">
<meta http-equiv="Content-language" content="dan">
<meta name="DC.Title" content="Dating, chat, webcam, hot or not, debat og spil. Find kæreste og venner her. Gratis oprettelse.">
<meta name="DC.Description" content="Meet-me.dk - Mødested for folk der søger lidt nærvær! Gamle venner genforenes, nye venner mødes! Muligheder er der nok af - Det hele er gratis">
<meta name="DC.Subject" content="venner,drenge,fyre,mænd,dating,chat,kæreste,piger,damer,date,kontakt">
<meta name="DC.Identifier" content="http://www.meet-me.dk">
<meta name="DC.Publisher" content="Nicky Christensen">
<meta name="DC.Format" scheme="MIME" content="text/html">
<style type="text/css" media="all">
@import url(../css/meet-me.css);
@import url(../css/fonts.css);
</style>
</head>

<body>
<table width="772" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="../images/top-shadow.gif" alt="" title="" /></td>
  </tr>
  <tr>
    <td id="mainShadow">
   
    <table width="754" border="0" cellspacing="0" cellpadding="0"  id="topBlue">
      <tr>
        <td class="white10px"><? include("../date.php"); ?></td>
        <td class="white10px"><div align="right">Regler &amp; Betingelse | FAQ&nbsp;&nbsp;</div></td>
      </tr>
    </table>
   
    <table width="754" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><img src="../images/head.gif" alt="Meet-me - Hvis du mangler nærvær" title="Meet-me - Hvis du mangler nærvær" /></td>
      </tr>
      <tr>
        <td id="menu"><img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../index.php" class="whitenav">Home</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../historier" class="whitenav">Historier</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../forum" class="whitenav">Forum</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../opslagstavlen" class="whitenav">Opslagstavlen</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../medlemmer" class="whitenav">Medlemmer</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../sjov" class="whitenav">Sjov</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../kontakt" class="whitenav">Kontakt</a></td>
      </tr>
    </table>
    <br />
    <table width="754" border="0" cellspacing="0" cellpadding="0" style="background-image:url(../images/contentbar.gif); background-repeat:no-repeat;">
      <tr>
        <td width="522" valign="top">&nbsp;</td>
        <td>&nbsp;</td>
        <td width="221" valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top" id="contentborders">
        <table width="490" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top"><img src="../images/overskrifter/meet-me.gif" alt="Meet-me" title="Meet-me" />
            </td>
            </tr>
            <tr>
            <td valign='top'><br />
 
          <?
          while($row = mysql_fetch_assoc($query)) {
             
              echo "<table width=490 cellspacing=5 cellpadding=0 border=0 style='border:1px solid #CCCCCC;'><tr>";
              echo "<td width=60 valign='top'>"
              ?>
            <img src="../vispic.php?imgtype=userimg&imgname=<?=$Brugernavn?>-<?=$Bruger_ID?>.jpg&maxWidth=50&maxHeight=50&time=<?=time()?>">
              <?
            echo "</td><td valign='top'>";
            echo "<strong><a href='../profile?id=" .$row['Bruger_ID'] . "'>".$row['Brugernavn']."</a></strong>";
            echo "<br />";
            echo $row['Besked'];
            echo "<br /><em style='font-size:9px;'>".$row['Tid']."</em>";
            echo "</td></tr></table><br />";
            ?>
              <?
              }
              ?>
          </td>
          </tr>
        </table></td>
        <td>&nbsp;</td>
        <td valign="top" id="loginborders" style="background-image:url(../images/bg/bg-bluegradient.gif); background-repeat:repeat-x;"><table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td><img src="../images/overskrifter/private-omr.gif" alt="Login her" title="Login her" /></td>
          </tr>
          <tr>
            <td>
            <?
           
            //Hent variabler fra form
            $besked = $_REQUEST['besked'];
            $user = $_REQUEST['Brugernavn'];
            $user_id = $_REQUEST['Bruger_ID'];
           
            if($besked == "") {
                echo '<script>alert("Du skal skrive en besked");</script>';
                exit();
            }
            //Smid ind i databasen
            $SQL = "INSERT INTO opslagstavlen (Bruger_ID, Brugernavn, Besked) VALUES ('$user_id','$user','$besked')";
            $query = mysql_query($SQL);
           
   
            ?>
            <form name="opslagstavlen" id="opslagstavlen" method="post" action="index.php">
              Besked:<br />
              <textarea name="besked" cols="36" rows="5" wrap="VIRTUAL"></textarea>
              <input type="hidden" name="Brugernavn" value="<? echo $Brugernavn; ?>" />
              <input type="hidden" name="Bruger_ID" value="<? echo $Bruger_ID; ?>" />
              <br />
              <input type="submit" name="Submit" value="Submit" />
            </form>
            </td>
          </tr>
        </table></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><img src="../images/bottom-shadow.gif" alt="" title="" /></td>
  </tr>
</table>
</body>
</html>
Avatar billede horsmark Nybegynder
20. september 2005 - 12:54 #10
har du oprettet din beskedtid kollonne i db´en ?
Avatar billede nc85 Nybegynder
20. september 2005 - 12:59 #11
Jeps, den hedder bare Tid
Avatar billede horsmark Nybegynder
20. september 2005 - 13:20 #12
<?
//Check om bruger er logget ind
include("../member/check-login.php");

//Hent forbindelse
include("../includes/config.inc.php");

//Hent sessions
$Bruger_ID = $_SESSION['Bruger_ID'];
$Brugernavn = $_SESSION['Brugernavn'];

$SQL = "SELECT * FROM opslagstavlen ORDER BY Tid LIMIT 20";
$query = mysql_query($SQL) or die(mysql_error());

function isUserAllowedToAddEntry($Brugernavn){
    $iMinutesBetweenEntries = 60;
    $iTimeBetweenEntries = $iMinutesBetweenEntries * 60 * 1000;
    $SQL = "SELECT * FROM opslagstavlen WHERE Brugernavn = ".$Brugernavn." ORDER BY Tid DESC";
    $query = mysql_query($SQL) or die(mysql_error());
    if( mysql_num_rows($query) < 1 ){
        return true;
    }
    $row = mysql_fetch_array($query);
    $iEntryTime = $row['Tid'];
    if( ($iEntryTime + $iTimeBetweenEntries ) > time() ) return false;
    return true;
}


?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Meet-me - Hvis du mangler n&aelig;rv&aelig;r</title>
<meta name="Description" content="Meet-me.dk - Mødested for folk der søger lidt nærvær! Gamle venner genforenes, nye venner mødes! Muligheder er der nok af - Det hele er gratis">
<meta name="Keywords" content="venner,drenge,fyre,mænd,dating,chat,kæreste,piger,damer,date,kontakt">
<meta name="Robots" content="ALL">
<meta name="Revisit-after" content="3">
<meta http-equiv="Content-language" content="dan">
<meta name="DC.Title" content="Dating, chat, webcam, hot or not, debat og spil. Find kæreste og venner her. Gratis oprettelse.">
<meta name="DC.Description" content="Meet-me.dk - Mødested for folk der søger lidt nærvær! Gamle venner genforenes, nye venner mødes! Muligheder er der nok af - Det hele er gratis">
<meta name="DC.Subject" content="venner,drenge,fyre,mænd,dating,chat,kæreste,piger,damer,date,kontakt">
<meta name="DC.Identifier" content="http://www.meet-me.dk">
<meta name="DC.Publisher" content="Nicky Christensen">
<meta name="DC.Format" scheme="MIME" content="text/html">
<style type="text/css" media="all">
@import url(../css/meet-me.css);
@import url(../css/fonts.css);
</style>
</head>

<body>
<table width="772" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><img src="../images/top-shadow.gif" alt="" title="" /></td>
  </tr>
  <tr>
    <td id="mainShadow">
 
    <table width="754" border="0" cellspacing="0" cellpadding="0"  id="topBlue">
      <tr>
        <td class="white10px"><? include("../date.php"); ?></td>
        <td class="white10px"><div align="right">Regler &amp; Betingelse | FAQ&nbsp;&nbsp;</div></td>
      </tr>
    </table>
 
    <table width="754" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><img src="../images/head.gif" alt="Meet-me - Hvis du mangler nærvær" title="Meet-me - Hvis du mangler nærvær" /></td>
      </tr>
      <tr>
        <td id="menu"><img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../index.php" class="whitenav">Home</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../historier" class="whitenav">Historier</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../forum" class="whitenav">Forum</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../opslagstavlen" class="whitenav">Opslagstavlen</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../medlemmer" class="whitenav">Medlemmer</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../sjov" class="whitenav">Sjov</a>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src="../images/menu-arrow.gif" alt="" align="middle" title="" />&nbsp;&nbsp;&nbsp;<a href="../kontakt" class="whitenav">Kontakt</a></td>
      </tr>
    </table>
    <br />
    <table width="754" border="0" cellspacing="0" cellpadding="0" style="background-image:url(../images/contentbar.gif); background-repeat:no-repeat;">
      <tr>
        <td width="522" valign="top">&nbsp;</td>
        <td>&nbsp;</td>
        <td width="221" valign="top">&nbsp;</td>
      </tr>
      <tr>
        <td valign="top" id="contentborders">
        <table width="490" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td valign="top"><img src="../images/overskrifter/meet-me.gif" alt="Meet-me" title="Meet-me" />
            </td>
            </tr>
            <tr>
            <td valign='top'><br />

          <?
          while($row = mysql_fetch_assoc($query)) {
           
              echo "<table width=490 cellspacing=5 cellpadding=0 border=0 style='border:1px solid #CCCCCC;'><tr>";
              echo "<td width=60 valign='top'>"
              ?>
            <img src="../vispic.php?imgtype=userimg&imgname=<?=$Brugernavn?>-<?=$Bruger_ID?>.jpg&maxWidth=50&maxHeight=50&time=<?=time()?>">
              <?
            echo "</td><td valign='top'>";
            echo "<strong><a href='../profile?id=" .$row['Bruger_ID'] . "'>".$row['Brugernavn']."</a></strong>";
            echo "<br />";
            echo $row['Besked'];
            echo "<br /><em style='font-size:9px;'>".$row['Tid']."</em>";
            echo "</td></tr></table><br />";
            ?>
              <?
              }
              ?>
          </td>
          </tr>
        </table></td>
        <td>&nbsp;</td>
        <td valign="top" id="loginborders" style="background-image:url(../images/bg/bg-bluegradient.gif); background-repeat:repeat-x;"><table width="200" border="0" align="center" cellpadding="0" cellspacing="0">
          <tr>
            <td><img src="../images/overskrifter/private-omr.gif" alt="Login her" title="Login her" /></td>
          </tr>
          <tr>
            <td>
            <?
         
            //Hent variabler fra form
            $besked = $_REQUEST['besked'];
            $user = $_REQUEST['Brugernavn'];
            $user_id = $_REQUEST['Bruger_ID'];
         
            if($besked == "") {
                echo '<script>alert("Du skal skrive en besked");</script>';
                exit();
            }
            //Smid ind i databasen
            $SQL = "INSERT INTO opslagstavlen (Bruger_ID, Brugernavn, Besked) VALUES ('$user_id','$user','$besked')";
            $query = mysql_query($SQL);
         
                      if( isUserAllowedToAddEntry($Brugernavn) ){
              ?>
              <form name="opslagstavlen" id="opslagstavlen" method="post" action="index.php">
              Besked:<br />
                  <textarea name="besked" cols="36" rows="5" wrap="VIRTUAL"></textarea>
                  <input type="hidden" name="Brugernavn" value="<? echo $Brugernavn; ?>" />
                  <input type="hidden" name="Bruger_ID" value="<? echo $Bruger_ID; ?>" />
                  <br />
                  <input type="submit" name="Submit" value="Submit" />
                </form>
              <? } else {
                  print "Der skal gå 30 min før du kan oprette en besked igen!";
                  }?>
            </td>
          </tr>
        </table></td>
      </tr>
    </table></td>
  </tr>
  <tr>
    <td><img src="../images/bottom-shadow.gif" alt="" title="" /></td>
  </tr>
</table>
</body>
</html>
Avatar billede jakobdo Ekspert
20. september 2005 - 13:21 #13
Over din insert:
$SQL = "INSERT INTO opslagstavlen (Bruger_ID, Brugernavn, Besked) VALUES ('$user_id','$user','$besked')";
            $query = mysql_query($SQL);

Kunne du lave:
$query = mysql_query("SELECT * FROM opslagstavlen WHERE Bruger_ID = $Bruger_ID AND dato > DATE_ADD(NOW(),INTERVAL -30 MINUTE)");
if(mysql_num_rows($query)>0)
echo "Du må ikke skrive endnu"
else
echo "Det er ok";
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