Hulp nodig bij: Parse error: syntax error, unexpected $end in D:\Program Files\wamp\www\Sdoo\compone

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

H van Hoften

H van Hoften

16/02/2013 19:16:47
Quote Anchor link
Ik ben al 2 dagen aan het zoeken in het script waarom ik de fout melding krijg. Het script werkt wel
op de hosting server van onze site.
Maar als ik dit lokaal wit uitvoeren op mijn windows pc krijg ik de fout melding
Alle haakjes {} en
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?>
? nagelopen maar niets gevonden.
Wie wil mij helpen?
Quote:
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
117
118
119
120
<?php


jimport('joomla.html.parameter');
jimport('joomla.html.editor');
// no direct access

defined('_JEXEC') or die;

// load the html drawing class
// require_once( $mainframe->getPath( 'front_html' ) );


$mainframe = JFactory::getApplication();

global $database, $my;
global $mosConfig_live_site, $mosConfig_frontend_login, $mosConfig_db;

$menu = $mainframe->get( 'menu' );
$params = new JParameter($ini);

$params->def( 'page_title', 1 );
$params->def( 'header_login', $menu->name );
$params->def( 'header_logout', $menu->name );
$params->def( 'pageclass_sfx', '' );
$params->def( 'back_button', $mainframe->getCfg( 'back_button' ) );
$params->def( 'login', $mosConfig_live_site );
$params->def( 'logout', $mosConfig_live_site );
$params->def( 'login_message', 0 );
$params->def( 'logout_message', 0 );
$params->def( 'description_login', 1 );
$params->def( 'description_logout', 1 );
$params->def( 'description_login_text', _LOGIN_DESCRIPTION );
$params->def( 'description_logout_text', _LOGOUT_DESCRIPTION );
$params->def( 'image_login', 'key.jpg' );
$params->def( 'image_logout', 'key.jpg' );
$params->def( 'image_login_align', 'right' );
$params->def( 'image_logout_align', 'right' );
$params->def( 'registration', $mainframe->getCfg( 'allowUserRegistration' ) );

$option = "com_sdoo";

$user = &JFactory::getUser();
$id = $user->id;



/*
    ----------------
    Bepaal de taak
    ----------------
*/

if ($_GET["task"] == "saveNew")
{

    savePage();
}

else if ($_GET["task"] == "edit")
{

    if ($id != 0)
        editPage();
}

else if ($_GET["task"] == "delete")
{

    if ($id != 0)
        delete();        
}

else if ($_GET["task"] == "saveEdited")
{

    if ($id != 0)
        saveEditedPage();
}

else if ($_GET["task"] == "overview")
{

    // Alleen voor geregistreerde gebruikers
    if ($id != 0){
        overview();
    }    
}

else if ($_GET["task"] == "publish")
{

    if ($id != 0){
        publish();
    }    
}

else if ($_GET["task"] == "notifications")
{

    if ($id != 0){
        notificaties();
    }    
}

else
{
    newPage();
}

function
delete()
{

    global $id, $my;
    $database = &JFactory::getDbo();

    // Verwijder stuk
    $query = "DELETE FROM #__ingezonden WHERE id = '" . quote_smart($_GET["stukId"]) . "' ";
    $database->setQuery( $query );
    $database->query();

    // Terug naar overzicht
    header("Location: index.php?option=com_sdoo&task=overview&Itemid=" . quote_smart($_GET["Itemid"]) . "");
}

function
overview()
{

    global $id, $user;

    $database = &JFactory::getDbo();
        
    $query = "SELECT i.*, c.title as 'categorieName', (SELECT title from #__categories where id = c.parent_id limit 1) as 'sectionName' FROM #__ingezonden i LEFT JOIN #__categories c ON(c.id = i.catId) order by i.publish_up";

    $database->setQuery( $query );
    $stukken = $database->loadObjectList();
    
    ?>

<table><td class="contentheading" width="100%"><span style="width: 50px;"></span>Ingezonden stukken</td></tr>
<tr><td>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?

        ?>


<table>
<tr><td><b>Titel</b></td><td><b>Inzend datum</b></td><td><b>Section</b></td><td><b>Categorie</b></td></tr>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?

        for ($i=0;$i<sizeOf($stukken);$i++)
        {

            echo "<tr><td>" . $stukken[$i]->title . "</td><td>" . date("d-m-Y H:i:s",$stukken[$i]->publish_up) . "</td><td>" . $stukken[$i]->sectionName . "</td><td>" . $stukken[$i]->categorieName . "</td><td><a href=\"index.php?option=com_sdoo&task=edit&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/edit.png\"></a></td><td><a onclick=\"return confirm('Weet u zeker dat u dit stuk wilt publiceren')\" href=\"index.php?option=com_sdoo&task=publish&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/publish.png\"></a></td><td><a onclick=\"return confirm('Weet u zeker dat u dit stuk wilt verwijderen')\" href=\"index.php?option=com_sdoo&task=delete&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/delete.png\"></a></td></tr>";
        }


        ?>

</table>

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?
        // Toon link naar notificaties voor admin
        if ($user->id != 0)
        {

            echo "<p><b>Administratie:</b><br />";
            echo "<a href='index.php?option=com_sdoo&task=notifications&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "'>Notificaties instellen</a></p>";
        
        }

        ?>


</td></tr>
</table>
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
<?
}

function
notificaties()
{

    global $id;
    $database = &JFactory::getDbo();

    $secId = quote_smart($_GET["secId"]);
    // Contoleer acties        
    // verwijderen

    $delUserId = quote_smart($_GET["delUserId"]);
    if ($delUserId != "")
    {

        $query = "DELETE FROM #__notificatie WHERE userId = '$delUserId' and secId = '$secId'";
        $database->setQuery( $query );
        $database->query();
    }


    // Toevoegen
    $addUserId = quote_smart($_GET["addUserId"]);
    if ($addUserId != "")
    {

        $query = "INSERT INTO #__notificatie (secId,userId) VALUES ('$secId','$addUserId') ";
        $database->setQuery( $query );
        $database->query();
    }

    ?>

<h2>Notificaties ingezonden stukken instellen</h2>
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
    notificationTable("0");    
    ?>

<h2>Notificaties reacties instellen</h2>
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
<?
    notificationTable("1");    
}

function
notificationTable($secId){
    $database = &JFactory::getDbo();
    
    echo "<p /><table><tr><td valign=\"top\" width=\"50%\">";
        
        // Toon box voor adressen
        $query = "SELECT id, name, email FROM #__users WHERE id in (select userId from #__notificatie where secId = '$secId')";
        $database->setQuery( $query );
        $items = $database->loadObjectList();

        echo "<table><tr><td><b>Notificatie adressen</b></td></tr>";
        for ($i=0;$i<sizeOf($items);$i++)
        {

            echo "<tr><td><a href='index.php?option=com_sdoo&task=notifications&secId=" . $secId . "&delUserId=" . $items[$i]->id . "'> <img src=\"./components/com_sdoo/delete_small.png\"></a> " . email($items[$i]->name,$items[$i]->email) . "</td></tr>";
        }

        echo "</table>";

    echo "</td><td valign=\"top\" width=\"50%\">";

        // Toon box voor nieuwe adressen
        $query = "SELECT id, name, email FROM #__users u WHERE id not in (select userId from #__notificatie where secId = '$secId')";
        $database->setQuery( $query );
        $items = $database->loadObjectList();


        echo "<table><tr><td><b>Adressenboek</b></td></tr>";
        for ($i=0;$i<sizeOf($items);$i++)
        {

            echo "<tr><td><a href='index.php?option=com_sdoo&task=notifications&secId=" . $secId . "&addUserId=" . $items[$i]->id . "'> <img src=\"./components/com_sdoo/OK_small.png\"></a> " . email($items[$i]->name,$items[$i]->email) . "</td></tr>";
        }

        echo "</table>";

    echo "</td></tr></table>";    
}

function
email($name,$email)
{

    return htmlspecialchars("$name<$email>");
}

function
sections($secId)
{

    global $id, $my;
    
    $database = &JFactory::getDbo();

    $query = "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 1 order by title";


    $database->setQuery( $query );
    $items = $database->loadObjectList();

    echo "<select name=\"section\" id=\"section\" style=\"width:300px;\" onchange=\"setCategories(this)\">";
    echo "<option value=\"\">--- Selecteer een sectie ---</option>";

    for ($i=0;$i<sizeOf($items);$i++)
    {

        if ($items[$i]->title != "Uncategorised"){
            echo "<option value=\"" . $items[$i]->id . "\"";
    
            if ($items[$i]->id == $secId)
                echo " selected";
    
            echo ">" . $items[$i]->title . "</option>";
        }
    }

    ?>

</select>
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
<?
}

function
editPage()
{

    global $id, $my;
    
    $database = &JFactory::getDbo();

    $stukId = quote_smart($_GET["stukId"]);

    // Haal pagina gegevens op
    $query = "SELECT * FROM #__ingezonden WHERE id = $stukId ";
    $database->setQuery( $query );
    $items = $database->loadObjectList();
    for ($i=0;$i<sizeOf($items);$i++)
    {

        page($items[$i]->title,$items[$i]->secId,$items[$i]->catId,$items[$i]->introtext,$items[$i]->full_text,"saveEdited&stukId=" . $items[$i]->id);
    }



    ?>

<input type="submit" value="Opslaan" />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
<?

    // Pagina einde
    echo "</td></tr></table></form>";
}

function
newPage()
{

    page("",0,0,"","","saveNew");
    ?>

<input type="submit" value="Verstuur naar SDOO" onclick="return confirm('Weet u zeker dat u dit stuk wilt insturen? Wanneer u op OK klikt kunt u dit niet meer bewerken.')" />
</td></tr></table>
</form>
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
<?
}

function
page($titel,$secId,$catId,$introtext,$fulltext,$task)
{

    global $id, $my;
    
    $database = &JFactory::getDbo();
    
    // Haal categorien op en zet ze in een array
    $query = "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 2 order by title";
    $database->setQuery( $query );
    $items = $database->loadObjectList();

    ?>


<script>

var categories = new Array();

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?
    
    for ($i=0;$i<sizeOf($items);$i++)
    {

        echo "categories[$i] = new categorie(" . $items[$i]->id . ",'" . $items[$i]->parent_id . "', '" . $items[$i]->title . "');\n";
    }

    
    ?>


function categorie(catId,secId,name)
{
this.catId = catId;
this.name = name;
this.secId = secId;
}

function setCategories(dropDownObj)
{
var categoriesObj = document.getElementById("categorie");

// Leeg de dropdownbox
categoriesObj.innerHTML = "";

// Eerste item toevoegen
var opt = document.createElement("option");
opt.text = "--- Selecteer een categorie ---";
categoriesObj.options.add(opt);

// Voeg opties toe
for (i=0;i<categories.length;i++)
{
if (dropDownObj.value == categories.secId)
{
var opt = document.createElement("option");
opt.text = categories.name;
opt.value = categories.catId;
categoriesObj.options.add(opt);
}
}

}

</script>

<form method="post" action="index.php?option=com_sdoo&task=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $task; ?>
&Itemid=
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $_GET["Itemid"]; ?>
">
<h1>Stuk insturen</h1>
<table>
<tr><td>

<br />
<font style='color:red;font-weight:bold;'>Ingezonden artikelen op deze site zijn meer dan welkom.
Echter: artikelen die kwetsend, onnodig grof of beledigend zijn worden niet geplaatst. Verzocht wordt naam en eventueel e-mailadres te vermelden.
</font>
<p>
<b>Titel:</b><br />
Geef een titel voor uw stuk van maximaal 100 karakters.
</p>

<input type="text" name="title" maxlength="100" style="width:300px;" value="
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? echo $titel; ?>
" />

<p>
<b>Sectie:</b><br />
Selecteer een sectie waaronder uw stuk valt.
<p />

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<? sections($secId); ?>


<p>
<b>Categorie:</b><br />
Na het selecteren van een sectie kunt u een categorie kiezen waaronder uw stuk valt.
<p />
<select name="categorie" id="categorie" style="width:300px;">
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
<?
    
    $query
= "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 2 AND parent_id = '$secId' order by title";
    $database->setQuery( $query );
    $items = $database->loadObjectList();
    echo "<option value=\"\">--- Selecteer een categorie ---</option>";
    for ($i=0;$i<sizeOf($items);$i++)
    {

        echo "<option value=\"" . $items[$i]->id . "\"";
        if ($items[$i]->id == $catId)
            echo " selected";
        echo ">" . $items[$i]->title . "</option>";
    }

    ?>

</select>

<p>
<b>Intro tekst:</b><br />
Geef een korte into op uw stuk. Dit is niet verplicht.
<p />

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
        $editor
= &JFactory::getEditor();
        echo $editor->display("introtext", $introtext, 600, 150, 0, 0);
    ?>


<p>
<b>Tekst:</b><br />
U kunt hier uw stuk plaatsen voor op de website.
<p />
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
<?
        echo $editor->display("fulltext", $fulltext, 600, 150, 0, 0);
    ?>


<p />
<b>Afbeeldingen:</b><br />
Wanneer u afbeeldingen aan uw stuk wilt toevoegen, kunt u deze insturen naar <a href="mailto:[email protected]">[email protected]</a> vermeld hierbij de titel van het stuk.
<p />
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
117
118
<?
}

function
saveEditedPage()
{

    $user = &JFactory::getUser();
    $id = $user->id;
    
    $database = &JFactory::getDbo();
    
    $id = quote_smart($_GET["stukId"]);
    $title = quote_smart($_POST["title"]);
    $introtext = quote_smart($_POST["introtext"]);
    $fulltext = quote_smart($_POST["fulltext"]);
    $catId = quote_smart($_POST["categorie"]);
    $secId = quote_smart($_POST["section"]);

    $query = "UPDATE #__ingezonden SET title = '$title', introtext = '$introtext', full_text = '$fulltext', catId = '$catId', secId = '$secId' WHERE id = '$id' ";

    $database->setQuery( $query );
    $database->query();
    

    // Terug naar overzicht
    header("Location: index.php?option=com_sdoo&task=overview&Itemid=" . quote_smart($_GET["Itemid"]) . "");

}

function
publish()
{

    
    $user = &JFactory::getUser();
    $id = $user->id;
    
    $database = &JFactory::getDbo();

    $stukId = quote_smart($_GET["stukId"]);

    // Haal pagina gegevens op
    $query = "SELECT * FROM #__ingezonden WHERE id = $stukId ";
    $database->setQuery($query);
    $items = $database->loadObjectList();
    $date = date("Y-m-d H:i:s",time() - 60 - 3600);
        
    
    for ($i=0;$i<sizeOf($items);$i++)
    {

        // Publiseer eerst
        $pub_date = date("Y-m-d H:i:s",$items[$i]->publish_up);
        $insertQuery = "INSERT INTO #__content (title, introtext, `fulltext`, state, catid, created, created_by, publish_up, publish_down) VALUES ('" . $items[$i]->title . "', '" . quote_smart($items[$i]->introtext) . "', '" . quote_smart($items[$i]->full_text) . "', 1, '" . $items[$i]->catId . "', '" . $pub_date . "', $id, '" . $date . "', '" . date("Y-m-d H:i:s",time() + 30758340) . "') ";
        $database->setQuery($insertQuery);
        $database->query();
        
        // verwijder oude gegevens
        if ($database->getErrorNum() == 0)
        {

            //file_get_contents("http://sdoo.kevinverhoef.nl/?headline=" . urlencode($items[$i]->title) . "&url=" .  urlencode($database->insertid()));
            echo "Succesvol toegevoegd!, verwijder handmatig het stuk.";
            //delete();
            
        }
        else
        {
            echo "Fout bij het toevoegen van het stuk! Neem contact op met Kevin ([email protected])<br><br>";
            
            echo $database->getErrorMsg();
            
            echo "<br><br>";
            
            echo $insertQuery;
        }

        echo "end";
    }
    
}

function
savePage()
{

    // Sla de pagina op
    global $my, $id;
    
    $database = &JFactory::getDbo();
    
    $title = quote_smart($_POST["title"]);
    $introtext = quote_smart($_POST["introtext"]);
    $fulltext = quote_smart($_POST["fulltext"]);
    $catId = quote_smart($_POST["categorie"]);
    $secId = quote_smart($_POST["section"]);

    $date = time();

    $query = "INSERT INTO #__ingezonden (title,introtext,full_text,publish_up,catId,secId) VALUES ('$title','$introtext','$fulltext',$date,'$catId','$secId') ";

    $database->setQuery( $query );
    $database->query();
    
    // Stel beheerders op de hoogte via mail
    $query = "SELECT u.email, u.name FROM #__notificatie n INNER JOIN #__users u ON (n.userId = u.id) where secId = '0' ";

    $database->setQuery( $query );
    $items = $database->loadObjectList();

    for ($i=0;$i<sizeOf($items);$i++)
    {

        $naarwie = $items[$i]->email;
        $titel = "SDOO.NL Er is een nieuw ingezonden stuk";
        
        $bericht = "Hallo " . $items[$i]->name . ",\n\n"
            . "Er is een nieuw stuk ingezonden op http://www.sdoo.nl.\n\n"
            . "Om dit stuk te muteren/publiceren dient u in te loggen en vervolgens naar ingezonden stukken te gaan.";
        $headers="From:sdoo<[email protected]>";

        mail($naarwie, $titel, $bericht, $headers);  
        
    }


    // Bedank de gebruiker
    ?>

<table><td class="contentheading" width="100%"><span style="width: 50px;"></span>Stuk insturen</td></tr>
<tr><td>
Hartelijk dank voor het bijdragen aan de SDOO site. Voordat uw ingezonden stuk op de website geplaatst zal worden, moet dit eerst worden goed gekeurd door de beheerders.
</td></tr>
</table>
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
<?
    
}

function
quote_smart($value) {
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }


    if(version_compare(phpversion(),"4.3.0") == "-1") {
        return mysql_escape_string($value);
    }
else {
        return mysql_real_escape_string($value);
    }
}


?>
[/quote]
 
PHP hulp

PHP hulp

21/11/2024 21:27:39
 
Frank Nietbelangrijk

Frank Nietbelangrijk

16/02/2013 20:02:02
Quote Anchor link
kun je de code even tussen [ c o d e ] en [ / c o d e ] zetten maar dan zonder spaties? Tevens geef je de foutmelding niet die jij krijgt.
 
H van Hoften

H van Hoften

17/02/2013 13:45:17
Quote Anchor link
Dit is de fout melding die ik krijg:
Parse error: syntax error, unexpected $end in C:\wamp\www\Sdoo\components\com_sdoo\sdoo.php on line 562

en dan nu nogmaals de code:
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
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562

<?php


jimport('joomla.html.parameter');
jimport('joomla.html.editor');
// no direct access

defined('_JEXEC') or die;

// load the html drawing class
// require_once( $mainframe->getPath( 'front_html' ) );


$mainframe = JFactory::getApplication();

global $database, $my;
global $mosConfig_live_site, $mosConfig_frontend_login, $mosConfig_db;

$menu = $mainframe->get( 'menu' );
$params = new JParameter($ini);

$params->def( 'page_title', 1 );
$params->def( 'header_login', $menu->name );
$params->def( 'header_logout', $menu->name );
$params->def( 'pageclass_sfx', '' );
$params->def( 'back_button', $mainframe->getCfg( 'back_button' ) );
$params->def( 'login', $mosConfig_live_site );
$params->def( 'logout', $mosConfig_live_site );
$params->def( 'login_message', 0 );
$params->def( 'logout_message', 0 );
$params->def( 'description_login', 1 );
$params->def( 'description_logout', 1 );
$params->def( 'description_login_text', _LOGIN_DESCRIPTION );
$params->def( 'description_logout_text', _LOGOUT_DESCRIPTION );
$params->def( 'image_login', 'key.jpg' );
$params->def( 'image_logout', 'key.jpg' );
$params->def( 'image_login_align', 'right' );
$params->def( 'image_logout_align', 'right' );
$params->def( 'registration', $mainframe->getCfg( 'allowUserRegistration' ) );

$option = "com_sdoo";

$user = &JFactory::getUser();
$id = $user->id;



/*
    ----------------
    Bepaal de taak
    ----------------
*/

if ($_GET["task"] == "saveNew")
{

    savePage();
}

else if ($_GET["task"] == "edit")
{

    if ($id != 0)
        editPage();
}

else if ($_GET["task"] == "delete")
{

    if ($id != 0)
        delete();        
}

else if ($_GET["task"] == "saveEdited")
{

    if ($id != 0)
        saveEditedPage();
}

else if ($_GET["task"] == "overview")
{

    // Alleen voor geregistreerde gebruikers
    if ($id != 0){
        overview();
    }    
}

else if ($_GET["task"] == "publish")
{

    if ($id != 0){
        publish();
    }    
}

else if ($_GET["task"] == "notifications")
{

    if ($id != 0){
        notificaties();
    }    
}

else
{
    newPage();
}

function
delete()
{

    global $id, $my;
    $database = &JFactory::getDbo();

    // Verwijder stuk
    $query = "DELETE FROM #__ingezonden WHERE id = '" . quote_smart($_GET["stukId"]) . "' ";
    $database->setQuery( $query );
    $database->query();

    // Terug naar overzicht
    header("Location: index.php?option=com_sdoo&task=overview&Itemid=" . quote_smart($_GET["Itemid"]) . "");
}

function
overview()
{

    global $id, $user;

    $database = &JFactory::getDbo();
        
    $query = "SELECT i.*, c.title as 'categorieName', (SELECT title from #__categories where id = c.parent_id limit 1) as 'sectionName' FROM #__ingezonden i LEFT JOIN #__categories c ON(c.id = i.catId) order by i.publish_up";

    $database->setQuery( $query );
    $stukken = $database->loadObjectList();
    
    ?>

    <table><td class="contentheading" width="100%"><span style="width: 50px;"></span>Ingezonden stukken</td></tr>
    <tr><td>
    <?

        ?>

        
        <table>
        <tr><td><b>Titel</b></td><td><b>Inzend datum</b></td><td><b>Section</b></td><td><b>Categorie</b></td></tr>
        <?

        for ($i=0;$i<sizeOf($stukken);$i++)
        {

            echo "<tr><td>" . $stukken[$i]->title . "</td><td>" . date("d-m-Y H:i:s",$stukken[$i]->publish_up) . "</td><td>" . $stukken[$i]->sectionName . "</td><td>" . $stukken[$i]->categorieName . "</td><td><a href=\"index.php?option=com_sdoo&task=edit&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/edit.png\"></a></td><td><a onclick=\"return confirm('Weet u zeker dat u dit stuk wilt publiceren')\" href=\"index.php?option=com_sdoo&task=publish&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/publish.png\"></a></td><td><a onclick=\"return confirm('Weet u zeker dat u dit stuk wilt verwijderen')\" href=\"index.php?option=com_sdoo&task=delete&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "\"><img src=\"./components/com_sdoo/delete.png\"></a></td></tr>";
        }


        ?>

        </table>

        <?
        // Toon link naar notificaties voor admin
        if ($user->id != 0)
        {

            echo "<p><b>Administratie:</b><br />";
            echo "<a href='index.php?option=com_sdoo&task=notifications&stukId=" . $stukken[$i]->id . "&Itemid=" . $_GET["Itemid"] . "'>Notificaties instellen</a></p>";
        
        }

        ?>


    </td></tr>
    </table>
    <?
}

function
notificaties()
{

    global $id;
    $database = &JFactory::getDbo();

    $secId = quote_smart($_GET["secId"]);
    // Contoleer acties        
    // verwijderen

    $delUserId = quote_smart($_GET["delUserId"]);
    if ($delUserId != "")
    {

        $query = "DELETE FROM #__notificatie WHERE userId = '$delUserId' and secId = '$secId'";
        $database->setQuery( $query );
        $database->query();
    }


    // Toevoegen
    $addUserId = quote_smart($_GET["addUserId"]);
    if ($addUserId != "")
    {

        $query = "INSERT INTO #__notificatie (secId,userId) VALUES ('$secId','$addUserId') ";
        $database->setQuery( $query );
        $database->query();
    }

    ?>

    <h2>Notificaties ingezonden stukken instellen</h2>
    <?
    notificationTable("0");    
    ?>

    <h2>Notificaties reacties instellen</h2>
    <?
    notificationTable("1");    
}

function
notificationTable($secId){
    $database = &JFactory::getDbo();
    
    echo "<p /><table><tr><td valign=\"top\" width=\"50%\">";
        
        // Toon box voor adressen
        $query = "SELECT id, name, email FROM #__users WHERE id in (select userId from #__notificatie where secId = '$secId')";
        $database->setQuery( $query );
        $items = $database->loadObjectList();

        echo "<table><tr><td><b>Notificatie adressen</b></td></tr>";
        for ($i=0;$i<sizeOf($items);$i++)
        {

            echo "<tr><td><a href='index.php?option=com_sdoo&task=notifications&secId=" . $secId . "&delUserId=" . $items[$i]->id . "'> <img src=\"./components/com_sdoo/delete_small.png\"></a> " . email($items[$i]->name,$items[$i]->email) . "</td></tr>";
        }

        echo "</table>";

    echo "</td><td valign=\"top\" width=\"50%\">";

        // Toon box voor nieuwe adressen
        $query = "SELECT id, name, email FROM #__users u WHERE id not in (select userId from #__notificatie where secId = '$secId')";
        $database->setQuery( $query );
        $items = $database->loadObjectList();


        echo "<table><tr><td><b>Adressenboek</b></td></tr>";
        for ($i=0;$i<sizeOf($items);$i++)
        {

            echo "<tr><td><a href='index.php?option=com_sdoo&task=notifications&secId=" . $secId . "&addUserId=" . $items[$i]->id . "'> <img src=\"./components/com_sdoo/OK_small.png\"></a> " . email($items[$i]->name,$items[$i]->email) . "</td></tr>";
        }

        echo "</table>";

    echo "</td></tr></table>";    
}

function
email($name,$email)
{

    return htmlspecialchars("$name<$email>");
}

function
sections($secId)
{

    global $id, $my;
    
    $database = &JFactory::getDbo();

    $query = "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 1 order by title";


    $database->setQuery( $query );
    $items = $database->loadObjectList();

    echo "<select name=\"section\" id=\"section\" style=\"width:300px;\" onchange=\"setCategories(this)\">";
    echo "<option value=\"\">--- Selecteer een sectie ---</option>";

    for ($i=0;$i<sizeOf($items);$i++)
    {

        if ($items[$i]->title != "Uncategorised"){
            echo "<option value=\"" . $items[$i]->id . "\"";
    
            if ($items[$i]->id == $secId)
                echo " selected";
    
            echo ">" . $items[$i]->title . "</option>";
        }
    }

    ?>

    </select>
    <?
}

function
editPage()
{

    global $id, $my;
    
    $database = &JFactory::getDbo();

    $stukId = quote_smart($_GET["stukId"]);

    // Haal pagina gegevens op
    $query = "SELECT * FROM #__ingezonden WHERE id = $stukId ";
    $database->setQuery( $query );
    $items = $database->loadObjectList();
    for ($i=0;$i<sizeOf($items);$i++)
    {

        page($items[$i]->title,$items[$i]->secId,$items[$i]->catId,$items[$i]->introtext,$items[$i]->full_text,"saveEdited&stukId=" . $items[$i]->id);
    }



    ?>

    <input type="submit" value="Opslaan" />
    <?

    // Pagina einde
    echo "</td></tr></table></form>";
}

function
newPage()
{

    page("",0,0,"","","saveNew");
    ?>

    <input type="submit" value="Verstuur naar SDOO" onclick="return confirm('Weet u zeker dat u dit stuk wilt insturen? Wanneer u op OK klikt kunt u dit niet meer bewerken.')" />
    </td></tr></table>
    </form>
    <?
}

function
page($titel,$secId,$catId,$introtext,$fulltext,$task)
{

    global $id, $my;
    
    $database = &JFactory::getDbo();
    
    // Haal categorien op en zet ze in een array
    $query = "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 2 order by title";
    $database->setQuery( $query );
    $items = $database->loadObjectList();

    ?>


    <script>

    var categories = new Array();
    
    <?
    
    for ($i=0;$i<sizeOf($items);$i++)
    {

        echo "categories[$i] = new categorie(" . $items[$i]->id . ",'" . $items[$i]->parent_id . "', '" . $items[$i]->title . "');\n";
    }
    
    

    function
categorie(catId,secId,name)
    {

        this.catId = catId;
        this.name = name;
        this.secId = secId;
    }

    function
setCategories(dropDownObj)
    {
        var
categoriesObj = document.getElementById("categorie");

        // Leeg de dropdownbox
        categoriesObj.innerHTML = "";
        
        // Eerste item toevoegen
        var opt = document.createElement("option");
               opt.text = "--- Selecteer een categorie ---";
        categoriesObj.options.add(opt);

        // Voeg opties toe
        for (i=0;i<categories.length;i++)
        {

            if (dropDownObj.value == categories[i].secId)
            {
                var
opt = document.createElement("option");
                       opt.text = categories[i].name;
                    opt.value = categories[i].catId;
                categoriesObj.options.add(opt);
            }
        }

    }

?>

    </script>

    <form method="post" action="index.php?option=com_sdoo&task=<? echo $task; ?>&Itemid=<? echo $_GET["Itemid"]; ?>">
    <h1>Stuk insturen</h1>
    <table>
    <tr><td>

    <br />
    <font style='color:red;font-weight:bold;'>Ingezonden artikelen op deze site zijn meer dan welkom.
Echter: artikelen die kwetsend, onnodig grof of beledigend zijn worden niet geplaatst. Verzocht wordt naam en eventueel e-mailadres te vermelden.
    </font>
    <p>
        <b>Titel:</b><br />
        Geef een titel voor uw stuk van maximaal 100 karakters.
    </p>        

    <input type="text" name="title" maxlength="100" style="width:300px;" value="<? echo $titel; ?>" />

    <p>
        <b>Sectie:</b><br />
        Selecteer een sectie waaronder uw stuk valt.
    <p />

    <? sections($secId); ?>

    <p>
        <b>Categorie:</b><br />
        Na het selecteren van een sectie kunt u een categorie kiezen waaronder uw stuk valt.
    <p />
    <select name="categorie" id="categorie" style="width:300px;">
    <?
    
    $query
= "SELECT #__categories.* FROM #__categories WHERE published = 1 AND level = 2 AND parent_id = '$secId' order by title";
    $database->setQuery( $query );
    $items = $database->loadObjectList();
    echo "<option value=\"\">--- Selecteer een categorie ---</option>";
    for ($i=0;$i<sizeOf($items);$i++)
    {

        echo "<option value=\"" . $items[$i]->id . "\"";
        if ($items[$i]->id == $catId)
            echo " selected";
        echo ">" . $items[$i]->title . "</option>";
    }

    ?>

    </select>

    <p>
        <b>Intro tekst:</b><br />
        Geef een korte into op uw stuk. Dit is niet verplicht.
    <p />
    
    <?
        $editor
= &JFactory::getEditor();
        echo $editor->display("introtext", $introtext, 600, 150, 0, 0);
    ?>

    
    <p>
        <b>Tekst:</b><br />
        U kunt hier uw stuk plaatsen voor op de website.
    <p />
    <?
        echo $editor->display("fulltext", $fulltext, 600, 150, 0, 0);
    ?>


    <p />
        <b>Afbeeldingen:</b><br />
        Wanneer u afbeeldingen aan uw stuk wilt toevoegen, kunt u deze insturen naar <a href="mailto:[email protected]">[email protected]</a> vermeld hierbij de titel van het stuk.
    <p />
    <?
}

function
saveEditedPage()
{

    $user = &JFactory::getUser();
    $id = $user->id;
    
    $database = &JFactory::getDbo();
    
    $id = quote_smart($_GET["stukId"]);
    $title = quote_smart($_POST["title"]);
    $introtext = quote_smart($_POST["introtext"]);
    $fulltext = quote_smart($_POST["fulltext"]);
    $catId = quote_smart($_POST["categorie"]);
    $secId = quote_smart($_POST["section"]);

    $query = "UPDATE #__ingezonden SET title = '$title', introtext = '$introtext', full_text = '$fulltext', catId = '$catId', secId = '$secId' WHERE id = '$id' ";

    $database->setQuery( $query );
    $database->query();
    

    // Terug naar overzicht
    header("Location: index.php?option=com_sdoo&task=overview&Itemid=" . quote_smart($_GET["Itemid"]) . "");

}

function
publish()
{

    
    $user = &JFactory::getUser();
    $id = $user->id;
    
    $database = &JFactory::getDbo();

    $stukId = quote_smart($_GET["stukId"]);

    // Haal pagina gegevens op
    $query = "SELECT * FROM #__ingezonden WHERE id = $stukId ";
    $database->setQuery($query);
    $items = $database->loadObjectList();
    $date = date("Y-m-d H:i:s",time() - 60 - 3600);
        
    
    for ($i=0;$i<sizeOf($items);$i++)
    {

        // Publiseer eerst
        $pub_date = date("Y-m-d H:i:s",$items[$i]->publish_up);
        $insertQuery = "INSERT INTO #__content (title, introtext, `fulltext`, state, catid, created, created_by, publish_up, publish_down) VALUES ('" . $items[$i]->title . "', '" . quote_smart($items[$i]->introtext) . "', '" . quote_smart($items[$i]->full_text) . "', 1, '" . $items[$i]->catId . "', '" . $pub_date . "', $id, '" . $date . "', '" . date("Y-m-d H:i:s",time() + 30758340) . "') ";
        $database->setQuery($insertQuery);
        $database->query();
        
        // verwijder oude gegevens
        if ($database->getErrorNum() == 0)
        {

            //file_get_contents("http://sdoo.kevinverhoef.nl/?headline=" . urlencode($items[$i]->title) . "&url=" .  urlencode($database->insertid()));
            echo "Succesvol toegevoegd!, verwijder handmatig het stuk.";
            //delete();
            
        }
        else
        {
            echo "Fout bij het toevoegen van het stuk! Neem contact op met Kevin ([email protected])<br><br>";
            
            echo $database->getErrorMsg();
            
            echo "<br><br>";
            
            echo $insertQuery;
        }

        echo "end";
    }
    
}

function
savePage()
{

    // Sla de pagina op
    global $my, $id;
    
    $database = &JFactory::getDbo();
    
    $title = quote_smart($_POST["title"]);
    $introtext = quote_smart($_POST["introtext"]);
    $fulltext = quote_smart($_POST["fulltext"]);
    $catId = quote_smart($_POST["categorie"]);
    $secId = quote_smart($_POST["section"]);

    $date = time();

    $query = "INSERT INTO #__ingezonden (title,introtext,full_text,publish_up,catId,secId) VALUES ('$title','$introtext','$fulltext',$date,'$catId','$secId') ";

    $database->setQuery( $query );
    $database->query();
    
    // Stel beheerders op de hoogte via mail
    $query = "SELECT u.email, u.name FROM #__notificatie n INNER JOIN #__users u ON (n.userId = u.id) where secId = '0' ";

    $database->setQuery( $query );
    $items = $database->loadObjectList();

    for ($i=0;$i<sizeOf($items);$i++)
    {

        $naarwie = $items[$i]->email;
        $titel = "SDOO.NL Er is een nieuw ingezonden stuk";
        
        $bericht = "Hallo " . $items[$i]->name . ",\n\n"
            . "Er is een nieuw stuk ingezonden op http://www.sdoo.nl.\n\n"
            . "Om dit stuk te muteren/publiceren dient u in te loggen en vervolgens naar ingezonden stukken te gaan.";
        $headers="From:sdoo<[email protected]>";

        mail($naarwie, $titel, $bericht, $headers);  
        
    }


    // Bedank de gebruiker
    ?>

        <table><td class="contentheading" width="100%"><span style="width: 50px;"></span>Stuk insturen</td></tr>
        <tr><td>
            Hartelijk dank voor het bijdragen aan de SDOO site. Voordat uw ingezonden stuk op de website geplaatst zal worden, moet dit eerst worden goed gekeurd door de beheerders.
        </td></tr>
        </table>
    <?
    
}

function
quote_smart($value) {
    if (get_magic_quotes_gpc()) {
        $value = stripslashes($value);
    }


    if(version_compare(phpversion(),"4.3.0") == "-1") {
        return mysql_escape_string($value);
    }
else {
        return mysql_real_escape_string($value);
    }
}


?>
 
Ozzie PHP

Ozzie PHP

17/02/2013 14:27:37
Quote Anchor link
Ik geloof niet dat er hier mensen zijn die zin hebben om 560 regels code door te spitten. Daarnaast is het ook de bedoeling dat je alleen RELEVANTE code plaatst.

Ik zou het volgende doen. Open het bestand in een fatsoenlijke editor. Grote kans dat die aangeeft dat je ergens een syntax-fout hebt gemaakt.

Andere optie, ga telkens bij elkaar horende stukken (functies) uit het bestand verwijderen en kijk dan of de fout verdwijnt, of andersom... gooi het bestand leeg en bouw het opnieuw op (knippen/plakken) en kijk wanneer de fout zich voordoet. (wel eerst een back-up maken van je bestand)

Toevoeging op 17/02/2013 14:33:30:

Ik denk dat ik de fout zie...

Zoek dit stuk eens op:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
    function categorie(catId,secId,name)
    {
        this.catId = catId;
        this.name = name;
        this.secId = secId;
    }


en zet op de regel daarna:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
?>



Daarna krijg je dit stuk:

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
    function setCategories(dropDownObj)
    {
        var categoriesObj = document.getElementById("categorie");

        // Leeg de dropdownbox
        categoriesObj.innerHTML = "";
        
        // Eerste item toevoegen
        var opt = document.createElement("option");
               opt.text = "--- Selecteer een categorie ---";
        categoriesObj.options.add(opt);

        // Voeg opties toe
        for (i=0;i<categories.length;i++)
        {
            if (dropDownObj.value == categories[i].secId)
            {
                var opt = document.createElement("option");
                       opt.text = categories[i].name;
                    opt.value = categories[i].catId;
                categoriesObj.options.add(opt);
            }
        }

    }
?>

</script>


Haal daar dit weg:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
?>

 
H van Hoften

H van Hoften

17/02/2013 18:49:57
Quote Anchor link
Ik heb jouw tip uitgeprobeerd maar helaas geen resultaat.

Ik ben wel een beginneling op dit gebied en de code is ook niet van mij, maar ik heb in de die 2 dagen wel het een en ander uitgeprobeerd alvorens ik dit forum benaderde.

Heb 2 versies van een PHP designer gebruikt
heb ook wat jij aangaf een heleboel functions verwijderd en het geprobeerd met hetgeen nodig was voor de overview function
Ik heb alleen nog niet geprobeerd om de stukjes over te plaatsen naar een nieuw bestand
 
Bart V B

Bart V B

17/02/2013 19:09:28
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php
function overview()
{

    global $id, $user;

    $database = &JFactory::getDbo();
        
    $query = "SELECT i.*, c.title as 'categorieName', (SELECT title from #__categories where id = c.parent_id limit 1) as 'sectionName' FROM #__ingezonden i LEFT JOIN #__categories c ON(c.id = i.catId) order by i.publish_up";

    $database->setQuery( $query );
    $stukken = $database->loadObjectList();
}
// deze dus...
    ?>
 
Ivo Breeden

Ivo Breeden

17/02/2013 21:07:02
Quote Anchor link
Het werkt goed op de hosting site maar niet op je PC, zeg je.
Waarschijnlijk is de instelling van short_open_tag in de PHP.ini verschillend. In je code gebruik je de gewone start tag "<?php" aan het begin, maar verder op komt meermalen de verkorte start tag "<?" voor.
Ik adviseer om die verkorte start tag overal te vervangen door de gewone start tag.
 
H van Hoften

H van Hoften

19/02/2013 20:42:31
Quote Anchor link
Ivo

Dit is inderdaad de oplossing.
Getest met ongewijzigd programma en parameter in php.ini aangepast en het werkt
Parameter ongewijzigd gelaten in php.ini en in programma alle
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<? Vervangen door [code]<?php en dit werkt ook
Mag ik iedereen die gereageerd heeft bedanken voor zijn bijdrage

Ik kan verder
 



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.