blokkeer persoon
ik heb het volgend script:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if(isset($_POST['post_comment']))
$posted_on = date("M j, Y g:i A");
if (! isset($_POST['comment'])) {
$_POST['comment'] = ''; // nu bestaat de variabele ten minste
}
$comment = strip_tags ($_POST['comment']);
if($comment == NULL){
$error_message = 'You have left a field empty.<br /><br />';
}else{
if (LOGGED_IN)
{
mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."');");
$error_message = 'You have successfully left a comment.<br /><br />';
}
}
?>
if(isset($_POST['post_comment']))
$posted_on = date("M j, Y g:i A");
if (! isset($_POST['comment'])) {
$_POST['comment'] = ''; // nu bestaat de variabele ten minste
}
$comment = strip_tags ($_POST['comment']);
if($comment == NULL){
$error_message = 'You have left a field empty.<br /><br />';
}else{
if (LOGGED_IN)
{
mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."');");
$error_message = 'You have successfully left a comment.<br /><br />';
}
}
?>
Nou moet er dus bij in komen, wanneer in de tabel users bij de persoon blocked op 1 staat, moet er een error_message komen dat hij geen berichten meer mag versturen.
Zou iemand dat misschien in de code willen zetten voor mij?
alvast bedankt!
Hier zul je in moeten zetten of hij een comment mag sturen of niet.
dan ga je het fetchen
dan kijk je of blocked gelijk is aan 1
zoja melding geven dat hij geen berichten mag versturen
zo nee verstuur bericht
. verder denk wel aan mysql injection :)
Toevoeging op 17/03/2011 18:47:12:
@yea rupie je mag wel zinnigere antwoorden geven :) het is niet veboden
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
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
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'))
{
if (!isset($_POST['comment']))
{
echo"no comment";
}
else
{
$controlle = mysql_query("SELECT blokked FROM site_news_comments WHERE blokked=1 AND id='".$_SESSION['id']."'");
if($controlle == FALSE)
{
$posted_on = NOW();
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."'");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
else
{
echo"ERROR";
}
}
else
{
echo"This person blocked you, you cant send a comment";
}
}
}
else
{
//form
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST'))
{
if (!isset($_POST['comment']))
{
echo"no comment";
}
else
{
$controlle = mysql_query("SELECT blokked FROM site_news_comments WHERE blokked=1 AND id='".$_SESSION['id']."'");
if($controlle == FALSE)
{
$posted_on = NOW();
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."'");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
else
{
echo"ERROR";
}
}
else
{
echo"This person blocked you, you cant send a comment";
}
}
}
else
{
//form
}
?>
even aangepast
Gewijzigd op 17/03/2011 18:57:35 door Robert dat ben ik
Ik zou nu meteen gaan testen :D Overigens een controle op submit doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
Code (php)
Wat is dit, controleer je of de websitemaker wel een veld die comment heet in zijn formulier heeft gezet? gebruik empty()
Code (php)
1
2
3
2
3
<?php
$controlle = mysql("SELECT blokked FROM site_news_comments WHERE blokked=1 AND id='".$_SESSION['id']."'");
?>
$controlle = mysql("SELECT blokked FROM site_news_comments WHERE blokked=1 AND id='".$_SESSION['id']."'");
?>
sinds wanneer gebruiken we deze functie?
Overigens kun je NOW() gewoon direct in de query zetten ipv een var aan te maken.
En waarom mysql_real_escape_string in de ene query wel op $_SESSION[id] en de andere keer niet?
Gewijzigd op 17/03/2011 18:56:38 door Yea Rupie
en ja een NOW(); kun je in een var zetten ja misschien handig je weet nooit :P
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
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
<?php
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo"U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result)){
if($controlle == FALSE)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."');");
if($query == TRUE) { echo 'You have successfully left a comment.<br /><br />'; }
}
else
{
echo'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b></div>
</div>
</div>
</div>
';
}
else
{
{
//formulier
?>
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo"U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result)){
if($controlle == FALSE)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."');");
if($query == TRUE) { echo 'You have successfully left a comment.<br /><br />'; }
}
else
{
echo'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b></div>
</div>
</div>
</div>
';
}
else
{
{
//formulier
?>
maar ik krijg een error: unexected t_else
op de else boven het formulier.
Gewijzigd op 17/03/2011 19:18:11 door Henke van der bunt
gebruik double-quotes om je variabele i.p.v. single-quotes.
heb m veranderd nu ^
Dit is hem, maar dan wat meer gefixt volgens mij.
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
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
<?php
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
if($controlle == FALSE)
{
//$posted_on = date("Y-m-d H:i:s");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', NOW());");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
}
else
{
echo 'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b>';
}
}
}
}
else
{
//formulier
}
?>
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
if($controlle == FALSE)
{
//$posted_on = date("Y-m-d H:i:s");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', NOW());");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
}
else
{
echo 'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b>';
}
}
}
}
else
{
//formulier
}
?>
edit: SanThe's punt verwerkt
Gewijzigd op 17/03/2011 19:37:33 door Jelmer -
NOW() is sql en geen php, dus kan niet in een $var staan.
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Resource id #43' at line 1
Toevoeging op 17/03/2011 19:40:01:
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
38
39
40
41
42
43
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
38
39
40
41
42
43
<?php
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
if($controlle == FALSE)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."')");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
}
else
{
echo 'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b>';
}
}
}
}
else
{
echo'
<form action="" method="post">
<textarea name="comment" maxlength="500"></textarea><br /><br />
<input type="submit" name="post_comment" value="Plaats Reactie" />
</form>
</div>
</div>
</div>
</div> ';
}
?>
if(isset($_POST['post_comment']))
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked,blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
$result = mysql_query($controlle) or die(mysql_error());
while($row = mysql_fetch_array($result))
{
if($controlle == FALSE)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."')");
if($query == TRUE)
{
echo 'You have successfully left a comment.<br /><br />';
}
}
else
{
echo 'Je mag geen Reacties meer plaatsen in het nieuws van de staff.<br>De reden is:<b>'.$row['blockreden'].' </b>';
}
}
}
}
else
{
echo'
<form action="" method="post">
<textarea name="comment" maxlength="500"></textarea><br /><br />
<input type="submit" name="post_comment" value="Plaats Reactie" />
</form>
</div>
</div>
</div>
</div> ';
}
?>
Gewijzigd op 17/03/2011 19:40:14 door Henke van der bunt
$controlle = mysql_query("....");
$result = mysql_query($controlle) ...
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
38
39
40
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
38
39
40
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked FROM users WHERE id='".$_SESSION['id']."' AND blocked=1");
$controll = mysql_query("SELECT blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
while($row = mysql_fetch_array($controll))
{
if($controlle == 0)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."')");
if($query == TRUE)
{
echo 'Je hebt een reactie geplaatst!<br /><br />';
}
}
else
{
echo 'De Ferbo staff heeft bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$row['blockreden'].' </b> </div> ';
}
}
}
}
else
{
echo'
<form action="" method="post">
<textarea name="comment" maxlength="500"></textarea><br /><br />
<input type="submit" name="post_comment" value="Plaats Reactie" />
</form>
</div>';
}
?>
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if (!isset($_POST['comment']))
{
echo "U bent vergeten een bericht in te vullen";
}
else
{
$controlle = mysql_query("SELECT blocked FROM users WHERE id='".$_SESSION['id']."' AND blocked=1");
$controll = mysql_query("SELECT blockreden FROM users WHERE blocked=1 AND id='".$_SESSION['id']."'");
while($row = mysql_fetch_array($controll))
{
if($controlle == 0)
{
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query = mysql_query("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".mysql_real_escape_string($news_article_id)."', '".mysql_real_escape_string($_SESSION['id'])."', '".mysql_real_escape_string($comment)."', '".$posted_on."')");
if($query == TRUE)
{
echo 'Je hebt een reactie geplaatst!<br /><br />';
}
}
else
{
echo 'De Ferbo staff heeft bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$row['blockreden'].' </b> </div> ';
}
}
}
}
else
{
echo'
<form action="" method="post">
<textarea name="comment" maxlength="500"></textarea><br /><br />
<input type="submit" name="post_comment" value="Plaats Reactie" />
</form>
</div>';
}
?>
ik heb nu dit.
als blocked op 1 staat dan werkt hij goed.
staat hij op 0 dan gebeurt er helemaal niks!
Hoe kan dat?
Gewijzigd op 17/03/2011 21:32:38 door Henke van der bunt
Geeft deze functie wel een 0 terug?
probeer dit eens: