PHP scripten werken niet meer

Status
Niet open voor verdere reacties.

Stinuz

Terugkerende gebruiker
Lid geworden
14 jun 2003
Berichten
1.245
Hoi, ik ben op het moment wat oude php scripten aan het hergebruiken, althans dat probeer ik want ze werken niet meer.

Als ik onderstaand script gebruik krijg ik bijvoorbeeld dit resultaat:

doettniet.jpg


PHP:
<?php include("header.php"); ?>

<?php

include("config.php");
?>
<?
$mysql_connect($host, $gebruikersnaam, $wachtwoord) or die (mysql_error()); 
$result = mysql_db_query($database, "SELECT * FROM blog ORDER BY id desc") or die (mysql_error()); 

if (mysql_num_rows($result) == "0")
            {
              //Melding bij geen quotes in database
              echo"<center><b>Geen berichten aanwezig!</b></center>";
            }
            else
            {

   echo ""; 
   while ($qry = mysql_fetch_array($result)) {
  $bericht = nl2br($qry[content]); 
      echo "
<blockquote>
<h2>$qry[titel]</h2> <h5>Datum: $qry[datum]</h5>

$bericht
</blockquote>
"; 
   } 
}

?>

Toen ik ze voor het laatst (+/- een jaar geleden) gebruikte werkte ze nog prima. Iemand enig idee wat er aan de hand is?
 
Laatst bewerkt:
Vervang <? eens door <?php .

Het kan zijn dat shorttags niet aan staan op de server waar je nu op werkt.
 
Zodra ik dat doe krijg ik de error Fatal error: Function name must be a string in C:\xampp\htdocs\index.php on line 8

EDIT: Oh, dat was omdat in het ge-include bestand ook een <? tag werd gebruikt.. eventjes verder proberen
EDIT2: Ok, zodra ik dat gefixed heb, geeft hij aan dat de gebruikersnaam en wachtwoord voor de database niet correct zijn, zodra ik die in config.php invul, krijg ik weer deze error.. Fatal error: Function name must be a string in C:\xampp\htdocs\index.php on line 8
 
Laatst bewerkt:
Post de inhoud van config.php eens... (Verberg wel even je wachtwoord)
 
PHP:
<?php

$host = "localhost"; // Adres naar MySQL server (Meestal localhost)
$gebruikersnaam = "admin"; // Gebruikersnaam voor de database
$wachtwoord = "-------"; // Wachtwoord voor gebruiker
$database = "profiel"; // Database naam (Dus niet die van de tabel)
$website = "http://website.com"; // Vul hier je website adres in.
$prefix = "prefixhier"; // Vul hier de naam van de folder waar de bestanden in staan in. Gebruik GEEN slash!

// Het onderstaande hoeft niet aangepast te worden.

// Verbinding maken met de server
$dbconnect =  mysql_connect($host, $gebruikersnaam, $wachtwoord) or die (mysql_error());
// De juiste database selecteren
$dbselect =  mysql_select_db($database) or die (mysql_error());

?>
 
Als ik het zo zie, zijn hier twee scripts gecombineerd...

Haal regel 8 eens weg, en maak van regel 9:

PHP:
$result = mysql_query("SELECT * FROM blog ORDER BY id desc") or die (mysql_error());
 
Dit heeft het inderdaad gefixed. Beetje vreemd dat hij het vroeger wel deed, misschien was die versie van php wat meer vergevingsgezind :confused:

iig bedankt :thumb:

Overigens enig idee waarom de shorttags niet werken? De server is lokaal en in ini.php staat het volgende:

Code:
; short_open_tag
;   Default Value: On
;   Development Value: Off
;   Production Value: Off
 
De waarden die jij geeft zijn allemaal ge"comment". Met andere woorden ze worden gewoon als commentaar gezien door de parser...

Shorttags aanzetten kun je doen door

Code:
short_open_tag = 1

in je php.ini te zetten.

Het is echter niet aan te raden, aangezien je dan later de problemen krijgt die jij nu had.
 
Waarschijnlijk idd beter alles te veranderen naar <?php. Maar waar staat dan precies het 'comment'-commando aangegeven? Ik zie hem namelijk niet staan.
 
Er staat een puntkomma voor elke regel. Dat geeft aan dat het commentaar is.
 
Wat gek :/ Voor zover ik weet sluit je hiermee gewoon de regel af. Zal wel veranderd zijn in de tijd dat ik geen PHP meer gebruikte :eek:
 
Maar php.ini is geen PHP. Dat zijn regels waar de parser zich aan houdt, het is geen uitvoerbare code.

In PHP sluit je een regel inderdaad af met een puntkomma.
 
Ach zo, misverstandje. Toen jij zei "De waarden die jij geeft zijn allemaal ge"comment". Met andere woorden ze worden gewoon als commentaar gezien door de parser..."

Dacht ik dat je het over mijn script had. iig bedankt voor de hulp, is er toevallig een programma dat automatisch alle '<?' in geselecteerde bestanden/bestanden in submappen omzet in '<?php' want dat is echt uren werk als ik dat allemaal zelf moet doen :confused:
 
Euhm, in de meeste teksteditors zit wel een replace functie. Daarmee kun je wel in een document ineens alle <? door <?php vervangen.

Of je dat ook in alle documenten in een map kunt doen, weet ik niet.
 
Notepad++ heeft wel een find/replace in files, dan kun je een hele map opgeven en alles vervangen.

Houd er rekening mee dat als je '<?' vervangt door '<?php', je wel op alle plekken waar al '<?php' stond, je nu '<?phpphp' krijgt ;) Dus ik zou een spatie achter de '<? ' zetten zodat ie degene die al goed zijn overslaat.
 
En anders run ik daarna nog een replace. <?phpphp vervangen in <?php :D

Bedankt voor de tips :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan