Hallo allemaal,

Ik heb sinds kort een PHP Ladder script maar nou zit er een bug in :

Fatal error: Call to undefined function: main_page() in /data/members/free/tripod/nl/p/h/a/phantom112/htdocs/index.php on line 24

ik heb de Datebase, site en de config file goed upgeload/ingevuld.

Kan iemand mij helpen hier zijn de files meschien kun je er meer me :

INDEX.PHP

<?
$indexloaded=1;
include("config/config.php");
include("$dir[func]/global.php");
include("$dir[func]/loginforms.php");



switch($action){

//PLAYER

case "join":
include("$dir[func]/player_new.php");
form_join();
break;



//END ADDONS - DEFAULT

default:
include("$dir[base]/home.php");
main_page();
break;
}


//FIND AND DELETE/AWARD WINS FOR UNRESPONDED CHALLENGES

include("$dir[func]/challengeforfeit.php");
check_unrespondedchallenges();















?>


HOME.PHP

<?

if(!$indexloaded){
header("Location: ./index.php");
}



function main_page(){
global $dir, $url, $file, $out, $misc;



include("$dir[func]/userstats.php");

$stats=user_stats();



$tablehead=table_head("show","100%","","left");
$tablefoot=table_foot("show");


$bannerhead=table_head("show","488","80","center");
$bannerfoot=table_foot("show");





$lastmatches=mysql_query("SELECT matchid,winneralias,loseralias FROM matchdb ORDER by confirmdate DESC LIMIT 5");

while(list($matchid,$winneralias,$loseralias)=mysql_fetch_row($lastmatches)){
$recentmatches=$recentmatches."$out[bulletleft] <a href='$url[base]/$file[match]?matchid=$matchid'>$winneralias vs $loseralias</a><br>";
}

if(!$recentmatches){
$recentmatches="$out[bulletleft] No Recent Matches";
}

$comingmatches=mysql_query("SELECT challid,challengeralias,challengedalias FROM challenges WHERE finalizedby > '0' ORDER by finalizedtime DESC LIMIT 5");

while(list($matchid,$winneralias,$loseralias)=mysql_fetch_row($comingmatches)){
$upcomingmatches=$upcomingmatches."$out[bulletleft] <a href='$url[base]/$file[match]?challid=$matchid'>$winneralias vs $loseralias</a><br>";
}

if(!$upcomingmatches){
$upcomingmatches="$out[bulletleft] No Upcoming Matches";
}





//GET LINKS

$topfiles=mysql_query("SELECT id,name,imageurl FROM links ORDER by id");

while(list($linkid,$linkname,$linkimage)=mysql_fetch_row($topfiles)){



if(!$linkimage){

$linklist=$linklist."$out[bulletleft] <a href='$url[base]/$file[links]?linkid=$linkid' target='top'>$linkname</a><br>";

}else{

$linklistb=$linklistb."<br><center><a href='$url[base]/$file[links]?linkid=$linkid' target='top'><img src='$linkimage' border='0' alt='$linkname'></a></center>";


GLOBAL.PHP


<?

//PLAYER LOGIN CHECK

$cplyrid=$HTTP_COOKIE_VARS["PID"];
$cplyrpw=$HTTP_COOKIE_VARS["PPW"];
$cplyrpw=base64_decode($cplyrpw);

//CHECK FOR COOKIE
if(($cplyrid) && ($cplyrpw)){
$userinfo=mysql_query("SELECT id,alias,pass FROM users WHERE id='$cplyrid' AND pass='$cplyrpw'");
$user=mysql_fetch_array($userinfo);
$plyr[id]=$user[id];
$plyr[pass]=$user[pass];
$plyr[alias]=$user[alias];
}



//ADMIN LOGIN CHECK

$cadmnid=$HTTP_COOKIE_VARS["AID"];
$cadmnpw=$HTTP_COOKIE_VARS["APW"];
$cadmnpw=base64_decode($cadmnpw);

//CHECK FOR COOKIE
if(($cadmnid) && ($cadmnpw)){
$admininfo=mysql_query("SELECT id,displayname,pass,access FROM staff WHERE id='$cadmnid' AND pass='$cadmnpw'");
$ainfo=mysql_fetch_array($admininfo);
$admn[id]=$ainfo[id];
$admn[pass]=$ainfo[pass];
$admn[alias]=$ainfo[displayname];
$admn[access]=$ainfo[access];
}



//START ONLINE SESSIONS

include("$dir[func]/sessions.php");


// START THEME VARIABLES
$sitetheme=$HTTP_COOKIE_VARS["THEME"];

// CHECK SITETHEME EXIST HERE

Als je meer files nodig hebt om het probleem op te lossen ppost ff of e-mail.

De index.php en de home.php staan in de main directory en de Global.php staat in een map genaamt Functions.

Alvast bedankt,
Robin Peters

Ik hoop snel iets terug te horen.
Functie main_page() bestaat niet
:S wat een code ik snap er geen hol van. Srry maar kan je wat duidelijker aangeven waar ong. de fout zit. en de regel weergeven. niet de hele code
Sorry voor de lange code maar de fout zit op line 24 dat is dit stukje :

//END ADDONS - DEFAULT

default:
include("$dir[base]/home.php");
main_page();
break;
}
Kan ik die functie aanmaken???
Probeer eens home.php (waar je main_page() in zit) te includen bij de andere:
include("config/config.php");
include("$dir[func]/global.php");
include("$dir[func]/loginforms.php");

Als dat wel werkt werkt je zinnetje werkt je default statement met include("$dir[base]/home.php"); niet.

Of zet anders error_reporting(E_ALL); eens aan
Ik heb dit geprobeert maar dit werkt ook niet, hoe moet ik dat error_reporting(E_ALL); aanzetten?? en waar voor dient dit?

robin Peters
error_reporting(E_ALL); zet je gewoon bovenaan je script, onder de openingstag.
Het zorgt ervoor dat je alle foutmeldingen en opmerkingen over je script te zien krijgt. Is wel handig om te debuggen.

Ook wel handig om aan te zetten tijdens het debuggen is mysql_error(); Dat zet je na een query met "or die("Fout: " . mysql_error());"

Maar om te beginnen zou ik eerst kijken of je include dir bij regel 24 wel bestaat. Laat die dir ook eens printen op het scherm, en roep de functie main_page() dan niet aan. Kijk dan of de dir bestaat. Als die niet bestaat, include dan eens het directe pad naar home.php

Reageren