blog script
Ik heb hier een blog script, Blog lezen + Reactie plaatsen.
Alleen nu zitten er nog wat problemen in.
* er komt 2 keer op de pagina te staan dat het bericht gepost is, of niet.
* als er geen blog is dan komt er toch een reactieformulier tevoorschijn.
* en 1 Reactie komt wel 4 keer in de database
* En de tekst er is nog geen reactie geplaatst komt niet te voorschijn.
Wat doe ik verkeerd?
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
<?php
include ("config.php");
define("TITLE", "Blog");
layoutboven();
checklogin();
CONNECTIE GEDEELTE
$try['connect'] = mysql_connect($cfg['host'], $cfg['user'], $cfg['pass']) or die(mysql_error());
$try['selectd'] = mysql_select_db($cfg['datb'], $try['connect']) or die (mysql_error());
$query = ("SELECT blog FROM leden WHERE naam = '" . $_GET['gebruiker'] . "'") or die(mysql_error());
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo'<div id="contentbalk2"><font color="#000000"><img src="img/script_edit.png">
Blog van ' . $_GET['gebruiker'] . '</font><br>'.$row['blog'].'
</div>
<br>
<br>
<br>
';
$getComments = mysql_query("SELECT * FROM blog_reacties WHERE blogvan = '" . $_GET['gebruiker'] . "' ORDER by id DESC");
if($getComments == 0){
echo 'Er is nog niet gereageerd op deze blog, word de eerste!';
}else{
echo '';
while($Comments = mysql_fetch_array($getComments)){
$userinfo = ("SELECT * FROM leden WHERE naam = '".$Comments['poster']."'") or die(mysql_error());
$userresult = mysql_query($userinfo) or die(mysql_error());
while($user = mysql_fetch_array($userresult)){
echo'<div style="overflow:hidden; padding: 4px;
background: url(img/forumbg.png) #FFFFFF repeat-x;
border:solid 1px #CACCD1;
color: #3b3e47;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-o-borer-radius: 2px;
border-radius: 2px; -moz-border-radius: 2px; min-height: 160px;" width="100px" class="vak">
<div style="float: left; padding: 0px 0px 0px 0px; width: 120px;">
<center><strong>
<img border="0" src="img/user.png"> <a target="_blank" href="profiel?gebruiker='.$Comments['poster'].'">
<font color="000000">'.$Comments['poster'].'</font></a></strong></center><center><strong>Normaal lid</strong></center>
<center><center><a target="_blank" href="profiel?gebruiker='.$Comments['poster'].'">
<img width="100" height="100" src="avatar/'.$user['avatar'].'"></a></center></center>
<strong>Status:</strong> <img border="0" src="img/online/'.$user['ingelogd'].'.png"><br>
<strong>Rang:</strong> '.$user['rang'].'<br>
<strong>Posts:</strong> '.$user['forumposts'].'<br>
<strong>Respect:</strong> '.$user['karma'].'<br><br></div>
<div style="overflow:hidden; padding: 6px; margin-left: float: left; 10px; background: #FFFFFF;
color: #3b3e47;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-o-borer-radius: 2px;
border-radius: 2px; -moz-border-radius: 2px; min-height: 160px;">
<strong>Gepost op: '.$Comments['datum'].'</strong><br><br>'.$Comments['bericht'].'</div></div><br>
';
?>
<?php
if (isset($_POST['submit']))
{
if (empty($_POST['bericht']))
{
error('red','Vul een bericht in!');
}elseif(strlen($_POST['bericht']) < "5")
{
error('red','Vul een bericht van minstens 5 letters in!');
}else{
$bericht = $_POST['bericht'];
$poster = mysql_real_escape_string($_SESSION['login']);
$datum = TIME();
mysql_query("INSERT INTO blog_reacties (poster,blogvan,datum,bericht) VALUES ('" . $poster . "', '" . $_GET['gebruiker'] . "',NOW(),'" . $bericht . "')") or die(mysql_error());
mysql_query("INSERT INTO `log` (`ip`,`datum`,`type`,`van`) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "', NOW(), 'Blogreactie', '" . $poster . "')") or die(mysql_error());
error('green','Je bericht is geplaatst! <a href="blog?gebruiker=' . $_GET['gebruiker'] . '">Klik hier om hem te bekijken</a>');
}
}else{
?>
<?php
}
}
}
echo '
<script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced"
});
</script>
<form action="" method="post">
Bericht:<br>
<textarea width="100%" name="bericht"></textarea>
<br>
<input type="submit" value="Verstuur" name="submit">
</form>';
layoutonder();
}
}
?>[/code[
Mvg Marvin
include ("config.php");
define("TITLE", "Blog");
layoutboven();
checklogin();
CONNECTIE GEDEELTE
$try['connect'] = mysql_connect($cfg['host'], $cfg['user'], $cfg['pass']) or die(mysql_error());
$try['selectd'] = mysql_select_db($cfg['datb'], $try['connect']) or die (mysql_error());
$query = ("SELECT blog FROM leden WHERE naam = '" . $_GET['gebruiker'] . "'") or die(mysql_error());
$result = mysql_query($query) or die(mysql_error());
while($row = mysql_fetch_array($result)){
echo'<div id="contentbalk2"><font color="#000000"><img src="img/script_edit.png">
Blog van ' . $_GET['gebruiker'] . '</font><br>'.$row['blog'].'
</div>
<br>
<br>
<br>
';
$getComments = mysql_query("SELECT * FROM blog_reacties WHERE blogvan = '" . $_GET['gebruiker'] . "' ORDER by id DESC");
if($getComments == 0){
echo 'Er is nog niet gereageerd op deze blog, word de eerste!';
}else{
echo '';
while($Comments = mysql_fetch_array($getComments)){
$userinfo = ("SELECT * FROM leden WHERE naam = '".$Comments['poster']."'") or die(mysql_error());
$userresult = mysql_query($userinfo) or die(mysql_error());
while($user = mysql_fetch_array($userresult)){
echo'<div style="overflow:hidden; padding: 4px;
background: url(img/forumbg.png) #FFFFFF repeat-x;
border:solid 1px #CACCD1;
color: #3b3e47;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-o-borer-radius: 2px;
border-radius: 2px; -moz-border-radius: 2px; min-height: 160px;" width="100px" class="vak">
<div style="float: left; padding: 0px 0px 0px 0px; width: 120px;">
<center><strong>
<img border="0" src="img/user.png"> <a target="_blank" href="profiel?gebruiker='.$Comments['poster'].'">
<font color="000000">'.$Comments['poster'].'</font></a></strong></center><center><strong>Normaal lid</strong></center>
<center><center><a target="_blank" href="profiel?gebruiker='.$Comments['poster'].'">
<img width="100" height="100" src="avatar/'.$user['avatar'].'"></a></center></center>
<strong>Status:</strong> <img border="0" src="img/online/'.$user['ingelogd'].'.png"><br>
<strong>Rang:</strong> '.$user['rang'].'<br>
<strong>Posts:</strong> '.$user['forumposts'].'<br>
<strong>Respect:</strong> '.$user['karma'].'<br><br></div>
<div style="overflow:hidden; padding: 6px; margin-left: float: left; 10px; background: #FFFFFF;
color: #3b3e47;
-webkit-border-radius: 2px;
-moz-border-radius: 2px;
-o-borer-radius: 2px;
border-radius: 2px; -moz-border-radius: 2px; min-height: 160px;">
<strong>Gepost op: '.$Comments['datum'].'</strong><br><br>'.$Comments['bericht'].'</div></div><br>
';
?>
<?php
if (isset($_POST['submit']))
{
if (empty($_POST['bericht']))
{
error('red','Vul een bericht in!');
}elseif(strlen($_POST['bericht']) < "5")
{
error('red','Vul een bericht van minstens 5 letters in!');
}else{
$bericht = $_POST['bericht'];
$poster = mysql_real_escape_string($_SESSION['login']);
$datum = TIME();
mysql_query("INSERT INTO blog_reacties (poster,blogvan,datum,bericht) VALUES ('" . $poster . "', '" . $_GET['gebruiker'] . "',NOW(),'" . $bericht . "')") or die(mysql_error());
mysql_query("INSERT INTO `log` (`ip`,`datum`,`type`,`van`) VALUES ('" . $_SERVER['REMOTE_ADDR'] . "', NOW(), 'Blogreactie', '" . $poster . "')") or die(mysql_error());
error('green','Je bericht is geplaatst! <a href="blog?gebruiker=' . $_GET['gebruiker'] . '">Klik hier om hem te bekijken</a>');
}
}else{
?>
<?php
}
}
}
echo '
<script type="text/javascript" src="tiny_mce/tiny_mce.js"></script>
<script type="text/javascript">
tinyMCE.init({
mode : "textareas",
theme : "advanced"
});
</script>
<form action="" method="post">
Bericht:<br>
<textarea width="100%" name="bericht"></textarea>
<br>
<input type="submit" value="Verstuur" name="submit">
</form>';
layoutonder();
}
}
?>[/code[
Mvg Marvin
Gewijzigd op 08/03/2011 18:25:40 door Marvin Radioo
- Zoek op wat elke functie teruggeeft, gebruik geen 'or die' dat is geen foutafhandeling. Een nette if statement kan ook.
- $query = ("SELECT blog FROM leden WHERE naam = '" . $_GET['gebruiker'] . "'") or die(mysql_error()); <= Weet je wat je daar doet? Nee zeker?
Je stopt daar een string in de variabele $query. Omdat het een string is hoeven er geen haakjes omheen. De or die met mysql_error klopt ook niet, want je stopt een string in een variabele, je doet niks met mysql. Let op sql injections mogelijk, gebruik mysql_real_escape_string, zie de voorbeelden daar.
- Toon nooit php / mysql fouten aan de gebruiker. Die kunnen misbruikt worden.
- Als je de assoc manier van mysql_fetch_array gebruikt, gebruik dan gewoon mysql_fetch_assoc.
- Houd één manier aan. Of css, of ouderwets met font e.d. Ik raad css aan.
- Selecteer wat je wilt hebben, gebruik geen *.
- Oké, hier herhaal ik toch maar iets, als je een functie gaat gebruiken, bekijk wat die teruggeeft, zoals bijvoorbeeld mysql_query.
- Wie kan me helpen met join?
- Gebruik geen inline style (of javascript). Houd alles op één plek in de head.
- Controleren of een post is gedaan doe je met if($_SERVER['REQUEST_METHOD'] == 'POST')
- Backticks (`) horen niet in sql thuis.