Probleem met edit page stuff
Deze error krijg ik: Fatal error: Function name must be a string in /home/vol14/xtreemhost.com/xth_13129488/knightsofedvar.xtreemhost.com/htdocs/editpage.php on line 81 .
En wat ik dan nog wil dat werkt is dat de pagina de id en content laad.
Want ik geef bijvoorbeeld.: "http://craftopianl.com/editpage.php?pid=3" in en dan moet de content enzo van pagina 3 laden.
Ik heb ook ">>>" gezet voor de lijntjes waar ik denk dat er bugs zitten.
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
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
<?php
session_start(); // Start your sessions to allow your page to interact with session variables
include_once("connect.php");
// Assign local variables
$pid = $_GET['pid'];
// Check to see if they person accessing this page is logged in and that there is a category id in the url
if ((!isset($_SESSION['uid']))) {
header("Location: index.php");
exit();
}
if ($permission!=$admin) {
header("Location: index.php");
exit();
}
echo '
<!-- IMPLEMENTING THE TINYMCE WYSIWYG EDITOR -->
<script language="javascript" type="text/javascript" src="tiny_mce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
theme: "modern",
plugins: [
"link image charmap preview anchor pagebreak hr",
"searchreplace wordcount visualblocks visualchars fullscreen insertdatetime media nonbreaking save table contextmenu directionality emoticons paste image",
],
toolbar1: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image preview media | forecolor backcolor emoticons",
templates: [],
});
</script>
<!-- END TINYMCE SCRIPT --> ';
include_once("header.php");
include_once("sidebar.php");
function getpage() {
$sql = "SELECT content FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
return $row['content'];
}
function gettitle() {
$sql = "SELECT title FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
return $row['title'];
}
echo 'go back to <a href="index.php">forum index</a> - <a href="admin.php">admin index</a><br />
>>><h3>'.$gettitle().'</h3>
<form action="editpage_parse.php" method="post">
<p>Page Id</p>
>>><input type="text" name="pid" size="98" maxlength="150" value="'.$pid.'"/>
<br />
<p>Page Content</p>
>>><textarea name="page_content" rows="5" cols="75">'.$getpage().'</textarea>
<br />
<input type="hidden" name="cid" value="<?php echo $cid; ?>" />
<input type="submit" name="page_submit" value="Change the page" />
</form>
';
include_once("footer.php");
?>
session_start(); // Start your sessions to allow your page to interact with session variables
include_once("connect.php");
// Assign local variables
$pid = $_GET['pid'];
// Check to see if they person accessing this page is logged in and that there is a category id in the url
if ((!isset($_SESSION['uid']))) {
header("Location: index.php");
exit();
}
if ($permission!=$admin) {
header("Location: index.php");
exit();
}
echo '
<!-- IMPLEMENTING THE TINYMCE WYSIWYG EDITOR -->
<script language="javascript" type="text/javascript" src="tiny_mce/tinymce.min.js"></script>
<script type="text/javascript">
tinymce.init({
selector: "textarea",
theme: "modern",
plugins: [
"link image charmap preview anchor pagebreak hr",
"searchreplace wordcount visualblocks visualchars fullscreen insertdatetime media nonbreaking save table contextmenu directionality emoticons paste image",
],
toolbar1: "insertfile undo redo | bold italic | alignleft aligncenter alignright alignjustify | bullist numlist outdent indent | link image preview media | forecolor backcolor emoticons",
templates: [],
});
</script>
<!-- END TINYMCE SCRIPT --> ';
include_once("header.php");
include_once("sidebar.php");
function getpage() {
$sql = "SELECT content FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
return $row['content'];
}
function gettitle() {
$sql = "SELECT title FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql) or die(mysql_error());
$row = mysql_fetch_assoc($res);
return $row['title'];
}
echo 'go back to <a href="index.php">forum index</a> - <a href="admin.php">admin index</a><br />
>>><h3>'.$gettitle().'</h3>
<form action="editpage_parse.php" method="post">
<p>Page Id</p>
>>><input type="text" name="pid" size="98" maxlength="150" value="'.$pid.'"/>
<br />
<p>Page Content</p>
>>><textarea name="page_content" rows="5" cols="75">'.$getpage().'</textarea>
<br />
<input type="hidden" name="cid" value="<?php echo $cid; ?>" />
<input type="submit" name="page_submit" value="Change the page" />
</form>
';
include_once("footer.php");
?>
Gewijzigd op 05/06/2013 13:36:21 door Jasper De Moor
Jasper De Moor op 04/06/2013 19:10:51:
Dus ik probeer dus een code te maken om de pagina's van mn website aan te passen maar het wil maar niet werken want ik krijg error dat ik strings moet ingeven wat ik eig doe voor hoever ik weet ... ik heb weer >>> voor de lijntjes gezet die buggen maar ik heb nog een probleem toen de code nog werkte wou hij de pagina ook niet laden van de mysql database toen ik eig nog een nummer ingaf in plaats van $pid werkte het nog en ik wil dat de input met naam pid ook gebruikt word voor page id dus dat de pagina inhoud aanpast als je die input aanpast.
Wil je aub zo vriendelijk zijn om je tekst te herschrijven naar fatsoenlijke zinnen met leestekens en hoofdletters?
Gewijzigd op 04/06/2013 19:31:13 door Jasper De Moor
Jasper De Moor op 04/06/2013 19:23:25:
ok ik heb het herschreven
Nee...
=> Oké, ik heb het herschreven.
Valt niet mee hè?
En lees nu je eigen zinnen nog eens, en vraag je vervolgens af hoe wij moeten begrijpen wat jij bedoelt:
"Maar het wil maar niet werken, want ik krijg error dat ik strings moet ingeven."
"Wat ik eig doe voor hoever ik weet ..."
"Ik heb >>> voor de lijntjes gezet die buggen of moeten aangepast worden."
Schrijf je tekst eens op een zo duidelijk mogelijke manier zodat wij meteen snappen wat jouw probleem is. Niemand hier heeft zin om eerst jouw onduidelijke tekst te gaan proberen te begrijpen. Wees gewoon zo duidelijk mogelijk, des te beter kunnen wij je helpen.
Gewijzigd op 05/06/2013 13:37:14 door Jasper De Moor
Hij geeft aan dat je Function een string moet zijn, en geen variabel. Als je een $ voor een string (woord) zet is het een variabel, zonder dat is het een functie als je natuurlijk een functie hebt gemaakt met de string (woord).
Wat in jou geval wel is, dit gebeurd in je script op regel 72 t/m 77
Ja dat is al een hele verbetering maar dat fixt nog steeds niet mn probleem met dat het niks van de mysql databse laad van pagina inhoud
Wordt er wel het juiste id meegegeven in de url?
Op regel 8 zeg je $pid = $_GET['pid']; maak hier van: $pid = mysql_real_escape_string($_GET['pid']); dit voorkomt dat er SQL injection toegepast kan worden.
Ik weet niet hoever je bent met PHP en je kennis ervan, maar is je menu goed opgebouwt en worden er pid's meegegeven, wordt er dan een pid meegegeven in de href? $_GET haalt namelijk zijn gegevens uit je url.
Dus je menu links zullen bijvoorbeeld moeten zijn:
<a href="index.php?pid=home">Home</a>
<a href="index.php?pid=contact">Contact</a>
etc.
Gewijzigd op 06/06/2013 07:37:46 door Chris PHP
Dus.. $pid in de functie getpage en gettitle is leeg omdat je die binnen de functie (nog) niet voorzien hebt van een waarde.
Daarnaast is het niet verstandig om enige output te genereren in functies die daar niet expliciet voor bedoeld zijn. op zich doe je dat normaal gesproken al maar met de functie or die() genereer je alsnog output als de query mislukt.
je zou het beter zo kunnen doen:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
function getpage($pid) {
$sql = "SELECT content FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql);
if(!$res)
return false;
$row = mysql_fetch_assoc($res);
return $row['content'];
}
?>
function getpage($pid) {
$sql = "SELECT content FROM pages WHERE id='".$pid."' LIMIT 1";
$res = mysql_query($sql);
if(!$res)
return false;
$row = mysql_fetch_assoc($res);
return $row['content'];
}
?>
Toevoeging op 06/06/2013 08:20:22:
Dan moet je de functies elders in je code ook aanroepen als
Code (php)
Gewijzigd op 06/06/2013 08:25:02 door Frank Nietbelangrijk
Maar ik wist wel niet dat het zo makkelijk te fixen is (ik mis nog wat extra ervaring denk ik)
of je wel of geen noob bent kan ik niet zien vanaf hier en maakt me ook niet uit. Je kunt gewoon van elkaar leren en daarom vind ik het belangrijk om er wat uitleg bij te geven. Misschien dat je dat niet helemaal nodig had maar er zijn ook nog anderen en bovendien kan ik dat niet weten. Fijn dat het werkt en graag gedaan.
Ik vond de uitleg ook heel handig.