Toon posts:

apache "parse error" probleem

Pagina: 1
Acties:

Verwijderd

Topicstarter
Mijn probleem is als volgt:

Ik heb op een Mandrake 9.0 Linux bak apache 1.3.26 geinstalleerd (via de packages). Daarnaast heb ik naar mijn mening (?) alle benodigde packages geinstalleerd (perl module, php4 module, e.d.). Vervolgens heb ik in de httpd.conf AddType, Loadmodule en Addmodule voor php enzo toegevoegd (volgens mij ook op de goede manier..).


Ik heb een index.php gemaakt als volgt (om te proberen):

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php

function site_header ($title)
{
    return '<HTML>
    <HEAD>;
    <TITLE>'.$title.'</TITLE>
    </HEAD>
    <BODY>';
}

function site_footer ()
{

    return '</BODY></HTML>';

}

?>



Maar ik krijg elke keer deze fout melding:

Parse error: parse error in /www/index.php on line 7


Wat is er fout aan de code, of ben ik iets vergeten te configureren?

[ Voor 11% gewijzigd door Kees op 04-03-2003 16:28 ]


  • Sjaaky
  • Registratie: Oktober 2000
  • Laatst online: 22-08 16:45
Vaag, afgezien van de ; achter <HEAD> (wat een html fout is), zie ik geen fouten.
De code zoals hij hier staat werkt bij mij gewoon. Php is ook geïnstalleerd anders had je geen parse error gekregen.

edit: als alles goed geïnstalleerd is, wordt het een p&w probleem.

[ Voor 17% gewijzigd door Sjaaky op 04-03-2003 15:54 ]


Verwijderd

<? phpinfo(); ?> al geprobeerd? Anders is het gewoon een foutje in je eigen code. Zo te zien lijkt de PHP-engine gewoon je code te parsen.

  • Kees
  • Registratie: Juni 1999
  • Laatst online: 22-08 13:15

Kees

Serveradmin / BOFH / DoC
--> P&W

"Een serveradmin, voluit een serveradministrator, is dan weer een slavenbeheerder oftewel een slavendrijver" - Rataplan


  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 23-08 15:30

TheDane

1.618

wordt die index.php uberhaupt wel op 1 of andere manier aangeroepen ? want zo standalone geeft ie natuurlijk geen uitvoer, en heeft $title geen waarde .. misschien dat daar 't probleem zit.

  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
Werkt dit wel:
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
<?php

function site_header($title)
 {
   $site  = "<html>";
   $site .= "<head>";
   $site .= "<title>";
   $site .= $title;
   $site .= "</title>";
   $site .= "</head>";
   $site .= "<body>";

   return $site;
 }

function site_footer()
 {
     $site  = "</body>";
     $site .= "</html>";

     return $site;
 }

 print site_header("Blaat");
 print "text";
 print site_footer();
?>

Gewoon even code leesbaar gemaakt enzo?

argh super-blunder, hoop dat niemand dat heeft gezien :P

[ Voor 173% gewijzigd door supakeen op 04-03-2003 16:57 ]


  • KrnKje
  • Registratie: Januari 2001
  • Laatst online: 20-01 21:03
Die ; midden in een regel is volgens mij niet zo lief voor php, sloop die er eens uit...

  • TheDane
  • Registratie: Oktober 2000
  • Laatst online: 23-08 15:30

TheDane

1.618

meerdere return statements in 1 functie kan sowieso niet ..

maar misschien dat zoiets wel werkt:

PHP:
1
2
3
4
5
6
7
function site_header($title) {
 $s  = "<html><head><title>";
 $s .= $title;
 $s .= "</head><body>";

 return $s;
}

[ Voor 71% gewijzigd door TheDane op 04-03-2003 16:52 . Reden: wel iets returnen natuurlijk :P ]


  • .oisyn
  • Registratie: September 2000
  • Laatst online: 22-08 13:19

.oisyn

Moderator Devschuur®

Demotivational Speaker

TheDane schreef op 04 maart 2003 @ 16:48:
meerdere return statements in 1 functie kan sowieso niet ..

maar misschien dat zoiets wel werkt:

PHP:
1
2
3
4
5
function site_header($title) {
 $s  = "<html><head><title>";
 $s .= $title;
 $s .= "</head><body>";
}


meerdere is misschien fout, maar met 0 returnstatements gaat het ook moeilijk :P
.edit: ah je had het al geedit :)

[ Voor 4% gewijzigd door .oisyn op 04-03-2003 16:50 ]

Give a man a game and he'll have fun for a day. Teach a man to make games and he'll never have fun again.


  • RedRose
  • Registratie: Juni 2001
  • Niet online

RedRose

Icebear

zmn schreef op 04 March 2003 @ 16:42:
Werkt dit wel:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php

function site_header($title)
 {
     return "<html>";
     return "<head>";
     return "<title>".$title."</title>";
     return "</head>";
     return "<body>";
 }

function site_footer()
 {
     return "</body>";
     return "</html>";
 } 

 print site_header("Blaat");
 print "text";
 print site_footer();
?>


Gewoon even code leesbaar gemaakt enzo?
Nee dit werkt niet, want bij de eerste return springt hij al uit de functie. Lees http://www.php.net/return er maar op na. Wat je moet doen is de string op de juiste manier concatenaten:
PHP:
1
2
3
$theReturnString="<html>";
$theReturnString.=$title;
//etc.. etc...
Hopelijk kan je de rest er zelf bij verzinnen. Verder zou ik je willen aanraden de Language reference eens helemaal door te lezen. :)

/edit: laat

[ Voor 13% gewijzigd door RedRose op 04-03-2003 16:54 ]

Sundown Circus


  • supakeen
  • Registratie: December 2000
  • Laatst online: 09-09-2025
RedRose schreef op 04 maart 2003 @ 16:52:
[...]
Nee dit werkt niet, want bij de eerste return springt hij al uit de functie. Lees http://www.php.net/return er maar op na. Wat je moet doen is de string op de juiste manier concatenaten:
PHP:
1
2
3
$theReturnString="<html>";
$theReturnString.=$title;
//etc.. etc...
Hopelijk kan je de rest er zelf bij verzinnen. Verder zou ik je willen aanraden de Language reference eens helemaal door te lezen. :)

/edit: laat
Sorry was gewoon grote blunder van mij, had mijn hoofd er niet bij en zat met print in mijn hoofd :X

Verwijderd

TheDane schreef op 04 March 2003 @ 16:48:
[...]


meerdere return statements in 1 functie kan sowieso niet ..
ik weet weinig van php, maar wat je nu zegt lijkt me erg stug...

  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
waarom laat je de functie het niet gelijk afdrukken op het scherm

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

Verwijderd schreef op 04 March 2003 @ 19:49:
[...]

Ik weet weinig van php, maar wat je nu zegt lijkt me erg stug...

Jullie praten op een verschillend niveau ;)

Hij bedoeld dat je maar een beslissende return kan hebben. (de rest wordt immers genegeert)

Je kunt er wel verschillende hebben dmv if statements e.d. Maar dat was dus niet waar hij het over had.

:)

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • dusty
  • Registratie: Mei 2000
  • Laatst online: 21-02 00:06

dusty

Celebrate Life!

cybermans schreef op 04 March 2003 @ 20:00:
waarom laat je de functie het niet gelijk afdrukken op het scherm

Omdat je soms wilt "bufferen" en eerst alle html bij elkaar rapen en opbouwen en dan pas uitspugen naar de client. Heeft met het scheiden van html en je code te maken.

Back In Black!
"Je moet haar alleen aan de ketting leggen" - MueR


  • TweakBoy
  • Registratie: Augustus 2001
  • Laatst online: 20-08 16:40

TweakBoy

---

nix van jullie zeggen (owkee. wel wat)

maar een single quote-string kan geen newline en returns bevatten

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$blaat = 'dit
is
fout en geeft error, ook in die return string';

$blaat = "dit
werkt
natuurlijk
wel, met dubbelquotes";

// in die return moeten die ' ', vervangen worden met " "

function site_header ($title) 
{ 
    return "<HTML> 
    <HEAD>; 
    <TITLE>".$title."</TITLE> 
    </HEAD> 
    <BODY>";
// dit zal wel werken... geloof me  B) 
}

---


  • cybermans
  • Registratie: Maart 2001
  • Laatst online: 20-08 08:46
ehm kan je niet de hele zaak in een string proppen ziets als
$ikbendevardiegereturnedgaatworden = "<HTML>\n<HEAD>\netc etc";
return $ikbendevardiegereturnedgaatworden;

Strava | Runkeeper | Endomondo (mijn leikr uploads)


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 11:58

crisp

Devver

Pixelated

mag ik ook nog ff? :P
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
define ('CR', "\n");

function site_header($title) {

  $html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">'.CR.
          '<html>'.CR.
          '<head>'.CR.
          '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">'.CR.
          '<title>'.$title.'</title>'.CR.
          '</head>'.CR.
          '<body>'.CR;

  return $html;

}

:Y)

Intentionally left blank


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

TweakBoy schreef op 04 March 2003 @ 21:28:
nix van jullie zeggen (owkee. wel wat)

maar een single quote-string kan geen newline en returns bevatten

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$blaat = 'dit
is
fout en geeft error, ook in die return string';

$blaat = "dit
werkt
natuurlijk
wel, met dubbelquotes";

// in die return moeten die ' ', vervangen worden met " "

function site_header ($title) 
{ 
    return "<HTML> 
    <HEAD>; 
    <TITLE>".$title."</TITLE> 
    </HEAD> 
    <BODY>";
// dit zal wel werken... geloof me  B) 
}
Sorry hoor.. Maar dat is dus totaal niet waar.. Binnen single quotes kan je neerzetten wat je wil, als je maar niet vergeet single quotes binnen die string te escapen.. Voor double quotes geldt hetzelfde, behalve dat PHP dan nog binnen die string op zoek gaat naar variabelen en escaped characters..

Uit de manual:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php
echo 'this is a simple string';

echo 'You can also have embedded newlines in 
strings this way as it is
okay to do';

// Outputs: "I'll be back"
echo 'Arnold once said: "I\'ll be back"';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\\*.*?';

// Outputs: You deleted C:\*.*?
echo 'You deleted C:\*.*?';

// Outputs: This will not expand: \n a newline
echo 'This will not expand: \n a newline';

// Outputs: Variables do not $expand $either
echo 'Variables do not $expand $either';
?>


En over het probleem van de topicsstarter, de code zoals je die hier hebt neergezet bevat geen fouten... Weet je zeker dat er niet een ander verschil is?

[ Voor 29% gewijzigd door WouZz op 04-03-2003 22:45 . Reden: manual referentie ]

On track


Verwijderd

Topicstarter
Wat voor verschil bedoel je dan?
Pagina: 1