[php]Met include en functie html+php invoegen lukt niet

Pagina: 1
Acties:
  • 130 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
Ik probeer een site te maken met een aantal php onderdeln erin zoals een kant een klaar fotoboek.
nu wil ik dat dat mooi in de layout van de site inpast, ook wil ik dat ik in 1 bestand het menu en dergelijke heb en dat ik met php include de content toevoeg, dat is toe nu to gelukt.

index.php
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
<?
if(!isset($_GET['page']))
{
    include("news.php");
}
else if($_GET['page'] == TRUE)
{
    include($_GET['page'] . ".php"); 
}
?>
<!doctype HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
        "http://www.w3.org/TR/html4/strict.dtd">
<head>
--knip-- n.v.t. html heads
<? 
inserthead(); 
?>
</head>
<body>
    <div class="sidebar">
        <div class="menu">
            <ul class="menu">
            <li><a href="index.php?page=news">Nieuws</a>
            </li>
            --Knip-- niet van toepassing, rest van menu met vergelijkbare links
            </ul>
        </div>
        <div class="stats">
        <? 
        insertstats(); 
        ?>
        </div>
    </div>
    <div class="content">
    <?
    insertcontent();
    ?>
    </div>
    <div class="voetnoot">
    <?
    insertvoetnoot(); 
    ?>
    </div>
</body>
</html>


vervolgens is een van de paginas die ik daarin wil aanroepen
deze
news.php
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
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
<?php
if ($_GET['action'] == 'redirect')
{
  require('settings.php');

  $dbcon = mysql_connect($db_server, $db_user, $db_passwd);
  mysql_select_db($db_name);

  $result = mysql_query('SELECT variable,value FROM ' . $db_prefix . 'settings');

  $Settings = array();
  while ($row = mysql_fetch_array($result))
  {
    $Settings[$row[0]] = $row[1];
  }
  
  header('Location: ' . $Settings['siteurl']);
  exit;
}

$time_start = getMicrotime();
define('PHPNews', 1);

session_start();

require('auth.php');

/* Display link to plain News, if SiteURL hasn't been set */
if($Settings['siteurl'] == '')
{
    $link = 'news.php';
}
else
{
    $link = $Settings['siteurl'];
}


ob_start('ob_gzhandler');

//hier begint de fuctie die de head mag verijken
function inserthead()
{
     echo <<<HTMLHEAD
      </title>
      <link href="phpnews_package.css" rel="stylesheet" type="text/css" />
      <script type="text/javascript">
      <!--
        function help(desktopURL)
        {
                desktop = window.open(desktopURL, "name", 
"toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,width=400,height=250,resizable=no");
        }

        function insertext(text,area)
        {
                if(area=="title") {
                   document.getElementById("titletext").value=document.getElementById
("titletext").value +" "+ text;
                }
                if(area=="main") {
                   document.getElementById("maintext").value=document.getElementById
("maintext").value +" "+ text;
                }
        }
      // -->
      </script>
HTMLHEAD;
}
//hier begint de fuctie die de sidebar mag verijken
function insertstats()
{
echo <<<HTML
<![CDATA[

<div id="navigation">
            <div class="menu">
               [img]"bullet.gif"[/img]<strong>
               <?=$language['MENU_GENERAL']; ?>:</strong>
               <ul>
                  <li>
                     <a href="javascript:" 
onclick="window.open('<?=$link?>')"><?=$language['MENU_CHECK'];?></a>
                     <?=$language['MENUITEM_CHECKNEWS'],"n";?>
                  </li>
<?
if ($userDetails['access'] == 'admin')
{
?>
                  <li>
                     <a href="index.php?action=settings"><?=$language['MENU_MODIFY'];?></a>
                     <?=$language['MENUITEM_MODIFYSETTINGS'],"n";?>
                  </li>
                  <li>
                     <a href="index.php?action=modtemp"><?=$language['MENU_MODIFY'];?></a>
                     <?=$language['MENUITEM_MODIFYTEMPLATES'],"n";?>
                  </li>
<?
}
?>
               </ul>
            </div>
            <div class="menu">
               [img]"bullet.gif"[/img]<strong>
               <?=$language['MENU_NEWSARTICLES'];?>:</strong>
               <ul>
                  <li>
                     <a href="index.php?action=post"><?=$language['MENU_POST'];?></a>
                     <?=$language['MENUITEM_POSTNEWS'],"n";?>
                  </li>
                  <li>
                     <a href="index.php?action=modify"><?=$language['MENU_MODIFY'];?></a>
                     <?=$language['MENUITEM_MODIFYNEWS'],"n";?>
                  </li>
               </ul>
            </div>
<?
if ($userDetails['access'] == 'admin')
{
?>
            <div class="menu">
               [img]"bullet.gif"[/img]<strong>
               <?=$language['MENU_NEWSPOSTERS'];?>:</strong>
               <ul>
                  <li>
                     <a href="index.php?action=newsposter"><?=$language['MENU_ADD'];?></a>
                     <?=$language['MENUITEM_ADDPOSTER'],"n";?>
                  </li>
                  <li>
                     <a href="index.php?action=modifynewsposter"><?=$language['MENU_MODIFY'];?></a>
                     <?=$language['MENUITEM_MODIFYPOSTER'],"n";?>
                  </li>
               </ul>
            </div>
<?
}
?>
            <div class="menu">
               [img]"bullet.gif"[/img]<strong>
               <?=$language['MENU_MODIFYPROFILE'];?>:</strong>
               <ul>
                  <li>
                     <a href="index.php?action=modifynewsposter2&amp;id=<?=$userDetails['id']?>">
                     <?=$language['MENU_MODIFY'];?></a> <?=$language['MENUITEM_MODIFYDETAILS'],"n";?>
                  </li>
               </ul>
            </div>
            <div class="menu">
               [img]"bullet.gif"[/img]<strong>
               <?=$language['MENU_MISCELLANEOUS']?>:</strong>
               <ul>
<?
if ($userDetails['access'] == 'admin')
{
?>
                  <li>
                     <a href="index.php?action=advanced"><?=$language['MENU_MODIFY'];?></a>
                     <?=$language['MENUITEM_ADVSETTINGS'],"n";?>
                  </li>
<?
}
?>
                  <li>
                     <a href="index.php?action=logout"><?=$language['MENU_LOGOUT'];?></a>
                     <?=$language['MENUITEM_LOGOUT'],"n";?>
                  </li>
               </ul>
            </div>
         </div>
]]>
HTML;
}
//hier begint de fuctie die de inhoud mag verijken
function insertcontent()
{
}
//hier begint de fuctie die de voetnoot mag verijken
function insertvoetnoot()
{
}
?>



maar dan geeft hij de volgende fout melding

Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:Program FilesApache GroupApache2htdocsblognewsadmin.php on line 79

nu ben ik niet zo heel goed met php, maar moet het toch ergnes leren. ik weet eerlijk gezegd niet wat ik fout doe

ik heb eigelijk al van alles geprobeer, zolals het weglaten van echo <<<html enz .
tot het in een andere manier schrijven.

als ik de pagina waaruit de code komt direct include dat doet ie het wel gewoon, maar dat wil ik omdat ik het admin gedeelte van het foto book niet in het content gedeelte wil hebben maar in de sidebar

sorry voor de lap text maar ik weet niet of ik nog iets weg mag laten.
en alle tutorials en manuals die ik kan vinden met google word ik niet veel wijzer omdat het meestal over alleen include gaat bijv.


EDIT: het moet in dit voorbeeld trouwens regel 79 zijn in plaats van 74

[ Voor 57% gewijzigd door Spruit_elf op 11-01-2004 21:50 . Reden: layout iets verbeterd ]

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Dit duid er gewoon op dat er op of nabij regel 74 een parse-fout wordt geconstateerd. Zoek naar ; . , ( ) { } fouten.

[ Voor 10% gewijzigd door dArtagnan op 11-01-2004 14:36 ]


Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
jah maar het probleem zit in een stuk dat ik niet kan veranderen omdat het in de eerste pagina moet worden geinclude bovendien komt dat stuk code direct uiit een ander file warin het wel werkt

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

Kun je niet gewoon je HTML buiten de php tags halen inplaats van met echo <<<HTML
PHP:
1
2
3
4
5
6
7
8
if(!isset($_GET['page']))
{
    include("news.php");
}
else if($_GET['page'] == TRUE)
{
    include($_GET['page'] . ".php");
}
Je creërt met dit stukje code wel een beveiligingsprobleem. Het is namelijk mogelijk om elke pagina te includen. Zorg er op zijn minst voor dat er geen ../ mag voorkomen in $_GET['page'] en geef zelf aan welke waarden zijn toegestaan voor $_GET['page']

[ Voor 23% gewijzigd door dArtagnan op 11-01-2004 14:44 . Reden: codetags ]


Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
Ik ben er inmiddels achter dat het met echo te maken heeft, dat echo het niet leuk vind dat er zoveel php in staat, maarzonder echo lukt het niet omdat ie dan al bij de eerst < begint te flippen

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

mrcactus schreef op 11 januari 2004 @ 20:50:
Ik ben er inmiddels achter dat het met echo te maken heeft, dat echo het niet leuk vind dat er zoveel php in staat, maarzonder echo lukt het niet omdat ie dan al bij de eerst < begint te flippen
Gewoon je HTML buiten de php code halen. En niet echo <<<HTMLHEAD gebruiken. Dus eigenlijk zoals je het bij het eerste stuk code hebt gedaan. Je ziet dan ook dat de syntax highlighting zwart is in plaats van blauw bij het tweede stuk code.

[ Voor 20% gewijzigd door dArtagnan op 11-01-2004 21:21 ]


Acties:
  • 0 Henk 'm!

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 17-09 09:56
echo("<html>"); werkt gewoon hoor

Strava | Runkeeper | Endomondo (mijn leikr uploads)


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

cybermans schreef op 11 januari 2004 @ 21:33:
echo("<html>"); werkt gewoon hoor
Je hoeft helemaal geen ( ) te gebruiken bij echo. In een aantal gevallen werkt het zelfs niet eens als je haakjes gebruikt.
echo() is not actually a function (it is a language construct) so you are not required to use parentheses with it. In fact, if you want to pass more than one parameter to echo, you must not enclose the parameters within parentheses.

Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
echo ("blaat"); heb ik ook al geproobeerd, met en zonder haakjes, maar daar gaat het probleem niet van weg.

het probleem zit hem in echo, maar ik weet niet wat ik anders zou moeten gruiken

[ Voor 22% gewijzigd door Spruit_elf op 11-01-2004 21:58 ]

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • dArtagnan
  • Registratie: Mei 2002
  • Laatst online: 23-08 22:47

dArtagnan

Een voor allen, allen voor een

mrcactus schreef op 11 januari 2004 @ 21:49:
echo ("blaat"); heb ik ook al geproobeerd, met en zonder haakjes, maar daar gaat het probleem niet van weg.

het probleem zit hem in echo, maar ik weet niet wat ik anders zou moeten gruiken
Heb je al geprobeerd wat ik al twee posts lang voorstel? Dus net zoals bij het eerste stuk code.

Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
Nee dat werkt niet want dan kan ik net zo goed alles uit de echo halen, wat ie dan doet is zeuren dat er een < in staat die niet in de functie past.

let wel op het verschil tussen het eerste bestand wat gewoon basis is en dat het tweede bestand er in word geinclude en dan met fucties wat extra php en html erbij zet op de goede plek. tenminste das wat ie moet doen. maar htmlin een fuctie pikt ie niet en wat er nu tussen de echo staat ook niet , dat is het probleem

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
voorzover ik weet kan je alleen maar html/text data gebruiken in de speedy

code:
1
2
echo <<< EndOfHTML
EndOfHTML;

construct.. tussentijds php invoegen zul je toch echt gewoon anders moeten doen:

PHP:
1
2
3
4
5
6
7
8
9
10
11
<?php
function foo()
{
?>
HTML MEUK
<?php echo $een_of_t_ander_varretje; ?>
MEER HTML MEUK
<?php
  einde functie meuk;
}
?>


Ow ennuh, gebruik alsjeblieft gewoon de full php tags.. <?php ?> en niet <? ?> shorthand tags..... je weet nooit in wat voor vage problemen je daar mee komt ...

[edit]
hmm ok, <?= ?> is schijnbaar shorthand code voor echo "bla" in php.. nog niet eerder gezien :D

Iig, als ik het zo snel lees op http://www.php.net/echo....

kan je wel die echo <<<< EOF construct gebruiken.... met variabelen tussen door.... maar wat jij wil doen is niet zomaar variabelen mee echo'n, maar meteen hele if/then/else constructs erin gooien.. dat werkt niet zonder meer hoor.

Dan zul je het toch echt op een andere manier op moeten lossen (door gewoon je php script tijdelijk te closen als je html meuk invoegt....)

[ Voor 38% gewijzigd door cavey op 12-01-2004 14:18 ]


Acties:
  • 0 Henk 'm!

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09 14:42
In ieder geval zie ik geen reden waarom je je html niet gewoon netjes in je PHP code kan embedden of helemaal eruit kan laten :?

Dit kan ook met simpele functies zonder hele ingewikkelde ECHO's te gaan gebruiken :)

Acties:
  • 0 Henk 'm!

  • Spruit_elf
  • Registratie: Februari 2001
  • Laatst online: 10-08 01:09

Spruit_elf

Intentionally left blank

Topicstarter
Komakeef , dankje dat was het , gewoon de echo weghalen en een ?> voor de html zetten. en een <? ernaa
hij doet het nog niet , maar dit zijn andere porblemen die ik zelf wel kan fixen

Those who danced were thought to be quite insane by those who could not hear the music.


Acties:
  • 0 Henk 'm!

  • cavey
  • Registratie: Augustus 2000
  • Laatst online: 29-05 01:29
geen dank, succes met de overige dingen :)

  • Kvn
  • Registratie: Maart 2001
  • Laatst online: 20-09 23:30

Kvn

... foutje ...

[ Voor 88% gewijzigd door Kvn op 12-02-2004 22:12 ]


  • X-Lars
  • Registratie: Januari 2004
  • Niet online

X-Lars

Just GoT it.

ik zou ook eens in de source van je html kijken (dus vanaf je browser), volgens mij komt er zo hele foute html uitrollen, niet zoals in

HTML:
1
2
3
4
5
6
7
8
<html>
  <head>
  ...
  </head>
  <body>
  ...
  </body>
</html>


edit: sh*t, ik ben weer eens te snel

[ Voor 50% gewijzigd door X-Lars op 12-02-2004 22:48 ]

Pagina: 1