Probleem met edit page stuff

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Jasper De Moor

Jasper De Moor

04/06/2013 19:10:51
Quote Anchor link
Hallo iedereen.
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)
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
<?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
 
PHP hulp

PHP hulp

25/04/2024 10:32:59
 
Ozzie PHP

Ozzie PHP

04/06/2013 19:17:00
Quote Anchor link
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?
 
Jasper De Moor

Jasper De Moor

04/06/2013 19:23:25
Quote Anchor link
ok ik heb het herschreven
Gewijzigd op 04/06/2013 19:31:13 door Jasper De Moor
 
Ozzie PHP

Ozzie PHP

04/06/2013 23:42:31
Quote Anchor link
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.
 
Jasper De Moor

Jasper De Moor

05/06/2013 13:27:44
Quote Anchor link
Herschreven hopelijk snappen jullie het nu :)
Gewijzigd op 05/06/2013 13:37:14 door Jasper De Moor
 
Chris PHP

Chris PHP

05/06/2013 13:49:15
Quote Anchor link
Haal het $ teken eens weg voor je >>><h3>'.$gettitle().'</h3> op regel 81.

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
 
Jasper De Moor

Jasper De Moor

05/06/2013 15:39:57
Quote Anchor link
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
 
Chris PHP

Chris PHP

06/06/2013 07:37:10
Quote Anchor link
Dat is moeilijk te zeggen, je queries zien er goed uit en zouden moeten werken.
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
 
Frank Nietbelangrijk

Frank Nietbelangrijk

06/06/2013 08:02:20
Quote Anchor link
De functies die je hebt aangemaakt kennen 'eigen' variabelen die tevens ook niet bestaan buiten deze functie.
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)
PHP script in nieuw venster Selecteer het PHP script
1
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'];
}


?>


Toevoeging op 06/06/2013 08:20:22:

Dan moet je de functies elders in je code ook aanroepen als
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?
php echo getpage($pid);


// NOG WAT ACHTERGROND INFORMATIE:
//of direct een waarde meegeven kan ook

php echo getpage(1);

//of een andere variabele kan ook
php echo getpage($playerid);
?>
Gewijzigd op 06/06/2013 08:25:02 door Frank Nietbelangrijk
 
Jasper De Moor

Jasper De Moor

07/06/2013 17:44:06
Quote Anchor link
Tnx nu is het gefixt en ik ben al redelijk gevorderd met php dus ik ben geen noob meer XD.
Maar ik wist wel niet dat het zo makkelijk te fixen is (ik mis nog wat extra ervaring denk ik)
 
Frank Nietbelangrijk

Frank Nietbelangrijk

07/06/2013 18:41:15
Quote Anchor link
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.
 
Jasper De Moor

Jasper De Moor

07/06/2013 21:48:24
Quote Anchor link
Ik vond de uitleg ook heel handig.
 



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.