Blokkeer Persoon
controleren of een variabele een waarde bevat doe je met de gewone http://php.net/manual/en/language.operators.comparison.php
en de inhoud kan je ook nog valideren met:
preg*, ctype*, str* functies!
Noppes, mijn manier was in orde niet?
Jasper, dat ligt er maar net aan, als je niet wilt toestaan dat men een post doet met enkel en alleen maar spaties moet je ook nog een trimmetje erbij halen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['iets']){
//if(isset($_POST['iets'])){ zal altijd bestaat weergeven.
//maar if(empty($_POST['iets'])){ werkt hier natuurlijk ook
echo 'bestaat';
}
else{
echo 'bestaat niet';
}
}
?>
<form action = '' method = 'POST'>
<input type="text" name="iets" />
<input type="submit" />
</form>
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if($_POST['iets']){
//if(isset($_POST['iets'])){ zal altijd bestaat weergeven.
//maar if(empty($_POST['iets'])){ werkt hier natuurlijk ook
echo 'bestaat';
}
else{
echo 'bestaat niet';
}
}
?>
<form action = '' method = 'POST'>
<input type="text" name="iets" />
<input type="submit" />
</form>
Gewijzigd op 26/03/2011 18:51:12 door gerhard l
Daar ben ik blij mee.
Nu heb ik nog 1 vraag
Als de user niet ingelogd is mag hij geen reactie plaatsen.
Hoe kan ik dat er nog bij in zetten?
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST')
{
if(strlen($_POST['comment']) < 2)
{
echo 'U heeft niks of iets te kort ingevuld!';
}
else
{
$query2 = ("SELECT blocked,blockreden FROM users WHERE id='".mysql_real_escape_string($_SESSION['id'])."'");
$controlle = mysql_query($query2);
if($controlle){
while($row = mysql_fetch_assoc($controlle)){
//variabelen vastzetten
$reden = $row['blockreden'];
$blocked = $row['blocked'];
}
//is de user geblokt?
if($blocked == '0'){
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query =("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."' ");
$sql = "
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) . "',
'" . mysql_real_escape_string ($posted_on) . "'
)
";
if (mysql_query ($sql)) {
echo '<p>Yeuh! Je bericht is geplaatst.</p>';
}
else {
echo '<p>' . mysql_error () . '</p>';
}
}
else
{
echo 'Wij hebben bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$reden.' </b> </div> ';
}
}
else{
echo 'error';
}
}
}
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(strlen($_POST['comment']) < 2)
{
echo 'U heeft niks of iets te kort ingevuld!';
}
else
{
$query2 = ("SELECT blocked,blockreden FROM users WHERE id='".mysql_real_escape_string($_SESSION['id'])."'");
$controlle = mysql_query($query2);
if($controlle){
while($row = mysql_fetch_assoc($controlle)){
//variabelen vastzetten
$reden = $row['blockreden'];
$blocked = $row['blocked'];
}
//is de user geblokt?
if($blocked == '0'){
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query =("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."' ");
$sql = "
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) . "',
'" . mysql_real_escape_string ($posted_on) . "'
)
";
if (mysql_query ($sql)) {
echo '<p>Yeuh! Je bericht is geplaatst.</p>';
}
else {
echo '<p>' . mysql_error () . '</p>';
}
}
else
{
echo 'Wij hebben bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$reden.' </b> </div> ';
}
}
else{
echo 'error';
}
}
}
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>';
}
?>
Kijken of hij ingelogd is door bijv. sessions
if (LOGGED_IN) is toch ook goed?
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php
if($_SERVER['REQUEST_METHOD'] == 'POST'){
if(strlen($_POST['comment']) < 2){
echo 'U heeft niks of iets te kort ingevuld!';
}
else{
$query2 = ("SELECT blocked,blockreden FROM users WHERE id='".mysql_real_escape_string($_SESSION['id'])."'");
$controlle = mysql_query($query2);
if($controlle){
while($row = mysql_fetch_assoc($controlle)){
//variabelen vastzetten
$reden = $row['blockreden'];
$blocked = $row['blocked'];
}
//is de user geblokt?
if($blocked == '0'){
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query =("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."' ");
$sql = "
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) . "',
'" . mysql_real_escape_string ($posted_on) . "'
)
";
if (mysql_query ($sql)) {
echo '<p>Yeuh! Je bericht is geplaatst.</p>';
}
else {
echo '<p>' . mysql_error () . '</p>';
}
}
else{
echo 'Wij hebben bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$reden.' </b> </div> ';
}
}
else{
echo 'error';
}
}
}
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(strlen($_POST['comment']) < 2){
echo 'U heeft niks of iets te kort ingevuld!';
}
else{
$query2 = ("SELECT blocked,blockreden FROM users WHERE id='".mysql_real_escape_string($_SESSION['id'])."'");
$controlle = mysql_query($query2);
if($controlle){
while($row = mysql_fetch_assoc($controlle)){
//variabelen vastzetten
$reden = $row['blockreden'];
$blocked = $row['blocked'];
}
//is de user geblokt?
if($blocked == '0'){
$posted_on = date("M j, Y g:i A");
$comment = htmlentities(strip_tags ($_POST['comment']));
$query =("INSERT INTO site_news_comments (article, userid, comment, posted_on) VALUES ('".$news_article_id."', '".$_SESSION['id']."', '".$comment."', '".$posted_on."' ");
$sql = "
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) . "',
'" . mysql_real_escape_string ($posted_on) . "'
)
";
if (mysql_query ($sql)) {
echo '<p>Yeuh! Je bericht is geplaatst.</p>';
}
else {
echo '<p>' . mysql_error () . '</p>';
}
}
else{
echo 'Wij hebben bepaalt dat jij geen reacties meer mag plaatsen.<br>De reden is: <b>'.$reden.' </b> </div> ';
}
}
else{
echo 'error';
}
}
}
echo'
<form action="" method="post">
<textarea name="comment" maxlength="500"></textarea><br /><br />
<input type="submit" name="post_comment" value="Plaats Reactie" />
</form>
</div>';
?>
Gewijzigd op 26/03/2011 19:04:38 door gerhard l
En wat wil je nu met die post aantonen??
Nee want dan kan je alsnog een melding krijgen: undefined index iets
Dus 1, altijd met isset controleren en daarna zoals eerder is aangegeven controleren/valideren
Wat is er nu zo moeilijk aan om op te volgen wat er gepost wordt!!
En dan nog maar weer wat leesvoer geven:
http://www.pfz.nl/wiki/troubleshooter/
http://www.pfz.nl/wiki/het-wiel-uitgevonden/
Code (php)
Alles leuk en aardig maar:
1. je dient altijd eerst te kijken of de $_POST bestaat en daarna kan je controleren/valideren
2. en als ik nu 3 spaties geef loopt ie vrolijk de else in bij bovenstaande controle
3. htmlentities en striptags haal je niet over een $_POST heen als het database ingaat
4. maak geen overbodige variabelen aan
5. je pleurt opgemaakte date in de database, datums sla je op in een date/datetime veld en dan kan je CURRENT_DATE / NOW() gebruiken op een mysql database, de opmaak regel je als je de info ophaalt
Gewijzigd op 26/03/2011 19:14:03 door Noppes Homeland
@Gerhard, nu kijk je of de gebruiker verbannen is, en niet of hij is ingelogd.
Henke van der bunt op 26/03/2011 19:02:42:
if (LOGGED_IN) is toch ook goed?
Ik zie nergens een define staan en het is ook zinloos om dat op die manier te controleren. Zodra iemand correct is ingelogd kan je het vastleggen in een sessie welke je op z'n beurt dan weer kan controleren, zonder dat je daar een define - constante - voor aanmaakt
Wesley PHP op 26/03/2011 19:06:32:
@Gerhard, nu kijk je of de gebruiker verbannen is, en niet of hij is ingelogd.
was nog een reactie op de code van TS daarboven, niet over de logged in vraag