fs2004.php probleem onder linux


#1

Hoi,

Ik ben nog druk aan het dumpen naar MySQL onder Linux, maar dacht in de tussentijd alvast het fs2004.php script te testen.
Daar ondervind ik problemen, de html output is helemaal messed-up, dus functies en html door elkaar.
De output begint met “1) { ?>” en dat is te vinden op regel 41 van het script.
Het lijkt alsof hij daar denkt dat de php-code (voor het moment) is afgelopen en geeft dus dingen als output die eigenlijk functies zijn.
Hoop dat ik het zo goed uitleg, m’n kennis van php is niet voldoende het probleem zelf te kunnen ontdekken.

Samengevat: stukken php-code worden naar de browser geparsed.

Bedankt voor de moeite!


#2

Hoi Mainwave,

Ik heb uit een oud script iets gehaald. Je zal zelf even naar how-to van php.ini en httpd.conf moeten gaan kijken hoe het echt moet.

Onderstaande httpd.conf regels geeft aan dat PHP files met een bepaalde extensie gaat voorbewerken. Als de php code 1 op 1 worden doorgegeven dan werkt dit niet goed bij jou.

De vriendelijke groet Jan Marco

cp /usr/local/src/php-4.0.5/php.ini-dist /usr/local/apache/conf/php.ini

echo “Listen 6347”>>/usr/local/apache/conf/httpd.conf
echo “ServerName montana”>>/usr/local/apache/conf/httpd.conf
echo “AddType application/x-httpd-php .php .php3 .phtml”>>/usr/local/apache/conf/httpd.conf
echo “AddType application/x-httpd-php-source .phps”>>/usr/local/apache/conf/httpd.conf

Edit by RGJ: let op deze commando’s kunnen een perfect goede Apache/PHP configuratie totaal verneuken als je niet weet wat je doet.


#3

Hoi Jan Marco,

Misschien is een kleine toevoeging op z’n plaats:

Ik begrijp wat je bedoelt, maar op m’n server staan talloze html en php files die allen naar behoren functioneren, vandaar dat ik het probleem ook niet echt begrijp…

Ik zie op regel 41 die “?>” en “<?” staan, het lijkt erop alsof de parser (?) daar denkt dat de php-code is afgelopen en hij het dus direct kan doorgeven aan de browser, is zoiets mogelijk?

Ik heb zelf ook even gedacht aan een mogelijk php-config probleem…


#4

Zou je mij het volgende willen mailen:

  • jouw versie van fs2004.php
  • de source van de output (view source, save as, dan attachen aan mail)
  • php.ini

Mailen naar megafoon@hotmail.com, dan zal ik er naar kijken.
Alvast bedankt.


#5

Na wat zoekwerk en hulp van een vriend:

Het bleek dat inderdaad de hele php-code niet correct werd geparsed, mijn fout dat ik dat niet direct zag.
Alle “<?” heb ik vervangen door “<?php” om het parsen werkend te krijgen.
Ook stonden er wat dingen als “<?php= $street ?>” waarbij ik de “=” heb verwijderd.
Bij het aanroepen van de functie om de versie van de database te bepalen werd de functie aangeroepen als “functie()” wat “echo functie()” moest zijn.

Ik heb nog weinig getest, maar het lijkt zo te functioneren!
Mijn versie van fs2004.php is volgens mij de nieuwste versie gezien ik die net enkele dagen geleden heb gedownload.
Ik zal mijn versie wel even naar je mailen rgj, misschien heb je daar nog iets aan in de toekomst…

Nogmaals bedankt.


#6

Hoi,

De oplossing was simpeler. In plaats van overal <? door <?php vervangen kan je ook short_open_tag aanzetten in je PHP.ini.

<?= is een kortere schrijfwijze voor <? echo. Wanneer je dus geen short_open_tag gebruikt, en <? vervangt door <?php, dan moet je ook OVERAL het = teken door echo vervangen. In mijn code stond dus bv. <?= $errortext; ?> , dat dien je dus te vervangen door <?php echo $errortext; ?>

#7

Inderdaad, ik heb die short_open_tag nu enabled en dingen functioneren nu beter dan voorheen, ook die pulldown menu’s voor het selecteren van een stad of straat werken goed.

Ik heb inmiddels zelf aanpassingen gedaan dat je ook kunt zoeken op naam: “automatisering”.
Voor als je zo’n bedrijf zoekt maar de naam niet meer weet, met beveiliging dat er minimaal ook een plaatsnaam moet zijn ingevuld.
(Anders wordt het zo’n zware klus…)

Maar dit even terzijde/offtopic.