blog script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Marvin Radioo

Marvin Radioo

08/03/2011 18:23:04
Quote Anchor link
Hallo,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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>
&nbsp;&nbsp;
<strong>Status:</strong> <img border="0" src="img/online/'
.$user['ingelogd'].'.png"><br>
&nbsp;&nbsp;
<strong>Rang:</strong> '
.$user['rang'].'<br>
&nbsp;&nbsp;
<strong>Posts:</strong> '
.$user['forumposts'].'<br>
&nbsp;&nbsp;
<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
 
PHP hulp

PHP hulp

25/04/2024 08:13:36
 

08/03/2011 20:58:47
Quote Anchor link
Meerdere dingen herhaal ik niet.

- 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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.