help 2 id's vergelijken met elkaar
ik heb een vraag ik ben bezig met een forum aan het maken maar nu loop ik tegen een probleem. Het probleem is dat ik niet wil dat er mensen zijn die dubbel kunnen posten op mijn forum. Nu heb al een stuk code uitgewerkt die de datum wanneer ze een post gedaan hebben vergelijkt met de tijd van nu en als daar 10 minuten tussen zit kan die gene weer een post doen, maar nu het echte probleem als er binnen 10 minuten gereageerd word kan die gene niet er op antwoorden. Nu heb ik het idee dat als ik de id van die gene vergelijk met de nieuwe id die er bij is gekomen dan kan er weer gepost worden, maar hoe kan ik dit nou uit werken want ik heb geen idee hoe ik 2 id's kan vergelijken in de zelfde table.
met vriendelijke groet johnno
Gewijzigd op 05/04/2011 21:13:23 door Johnno janssen
als je wilt voorkomen dat iemand 2x achterelkaar post dan kijk je toch naar de laatste post in het forum topic is de gebruiker anders dan is het goed anders helaas pinda kaas.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$id=mysql_real_escape_string($_GET['id']);
$sql="SELECT * FROM forum_answer WHERE question_id='$id'";
$result = mysql_query($sql);
$total = mysql_num_rows($result);
if ($total > 1){
$qry_1 =
"SELECT MAX(a_id) FROM forum_answer WHERE question_id='$id' limit 1";
$result_1 = mysql_query($qry_1);//Haalt ids op
$qry_2 = "SELECT a_datetime, MAX(a_id) FROM forum_answer WHERE question_id='$id' AND a_name='".$session->username."'";
$result_2 = mysql_query($qry_2);//Haalt personen op
$row1 = mysql_fetch_assoc($result_1);
$row = mysql_fetch_assoc($result_2);
if ($row['MAX(a_id)']==$row1['MAX(a_id)']){
echo '<div class="forum"><h3>Fout</h3>verander je post.</div>';
}
else echo'forum';
}
?>
$id=mysql_real_escape_string($_GET['id']);
$sql="SELECT * FROM forum_answer WHERE question_id='$id'";
$result = mysql_query($sql);
$total = mysql_num_rows($result);
if ($total > 1){
$qry_1 =
"SELECT MAX(a_id) FROM forum_answer WHERE question_id='$id' limit 1";
$result_1 = mysql_query($qry_1);//Haalt ids op
$qry_2 = "SELECT a_datetime, MAX(a_id) FROM forum_answer WHERE question_id='$id' AND a_name='".$session->username."'";
$result_2 = mysql_query($qry_2);//Haalt personen op
$row1 = mysql_fetch_assoc($result_1);
$row = mysql_fetch_assoc($result_2);
if ($row['MAX(a_id)']==$row1['MAX(a_id)']){
echo '<div class="forum"><h3>Fout</h3>verander je post.</div>';
}
else echo'forum';
}
?>
als het script gaat kijken wie de MAX id is, we gaan er van uit dat ik dat ben dan zegt het "verander je post." maar dan laat het ook het forum zien om weer te kunnen post en dat wil ik niet hoe kan ik dat oplossen heeft iemand een idee
bedankt alvast
Gewijzigd op 04/05/2011 21:46:23 door johnno janssen
1. Haal de laatste post uit een topic op
2. Vergelijk of het gebruikers id daarvan overeen komt met je gebruikers is sessie
3. Zo ja, geen reactie formulier tonen
4. Zo niet, wel een formulier tonen
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
$sql =
"
SELECT
user_id
FROM
replys
WHERE
id = '".$HIER_HET_ID_VAN_JE_REPLY."'
ORBER BY
datum
DESC
LIMIT 1
";
if( !$res = mysql_query( $sql ) )
{
# Fout in query
}
elseif( mysql_num_rows( $res ) == 0 )
{
# Geen resultaten
}
else
{
$rec = mysql_fetch_assoc( $res );
if( $rec['user_id'] == $_SESSION['user_id'] )
{
# Geen formulier
}
else
{
# Wel formulier
}
}
?>
$sql =
"
SELECT
user_id
FROM
replys
WHERE
id = '".$HIER_HET_ID_VAN_JE_REPLY."'
ORBER BY
datum
DESC
LIMIT 1
";
if( !$res = mysql_query( $sql ) )
{
# Fout in query
}
elseif( mysql_num_rows( $res ) == 0 )
{
# Geen resultaten
}
else
{
$rec = mysql_fetch_assoc( $res );
if( $rec['user_id'] == $_SESSION['user_id'] )
{
# Geen formulier
}
else
{
# Wel formulier
}
}
?>
Zo iets zou dan je basis kunnen zijn. Uiteraard moet je op de plekken van het commentaar nog je ding doen, en alles beveiligen.
Vergeet ook niet in je query het id mee te geven!
Gewijzigd op 05/05/2011 11:54:51 door Milo S