error in script

Status
Niet open voor verdere reacties.

phobia

Terugkerende gebruiker
Lid geworden
4 sep 2006
Berichten
1.777
Ik krijg de volgende ERROR
Code:
Fatal error: Call to a member function delete_file() on a non-object in /home/morphius.nl/www/DBV3/php/StartRestore.php on line 140

Dit gebruikt dus hierdoor:
(de eerste regel is line 140)
PHP:
if ($dp->delete_file($dirtemp,$table_names[$i].'#HEAD-'.$_GET['site']))
	{ $scim=true;}
	else
	{ echo "NOT delected temp file(1)...ERROR(Remove files manual)<br>";}
if ($dp->delete_file($dirtemp,$table_names[$i].'#COLLUM-'.$_GET['site']))
	{ $scim=true;}
	else
	{ echo "NOT delected temp file(2)...ERROR(Remove files manual)<br>";}
if ($dp->delete_file($dirtemp,$table_names[$i].'#ROW-'.$_GET['site']))
	{ $scim=true;}
	else
	{ echo "NOT delected temp file(3)...ERROR(Remove files manual)<br>";}

en de functie die word gebruikt is:
PHP:
  /*****************
 * Delete file from dir
 * string is file-name
 */
 function delete_file($temp_file,$name,$type='.sql')
 {
	unlink($temp_file.$name.$type);
	if (!file_exists($temp_file.$name.$type))
	{ return true;}
	else
	{ return false;}
 }

Kan iemand mij vertellen wat er hier dan fout gaat?
 
[Ik ben geen PHP-crack]

Als ik het goed lees zou (op het moment dat het misgaat) $dp een object van een objectklasse moeten zijn waar die functie/methode delete_file in gedefiniëerd is.
a. Ik kan met zo weinig informatie niet bepalen of $dp op het moment van aanroepen wel een object is en (indien ja) ook niet van welke objectklasse.
b. Ik krijg het idee dat je delete_file niet als onderdeel van een objectklasse gedefiniëerd hebt, maar 'los'

Dus even concreet:
a. Ik zie niet een class definitie in je code
b. Ik zie niet waar $dp wordt gedeclareerd danwel niet waar die een object krijgt toegewezen
c. Ik denk dat je delete_file 'verkeerd' gebruikt

Simpel voorbeeld:
PHP:
<?php
class Verwerkbestanden
{
 function delete_file($temp_file,$name,$type='.sql')
 {
    unlink($temp_file.$name.$type);
    if (!file_exists($temp_file.$name.$type))
    { return true;}
    else
    { return false;}
 }
}

$dirtemp = "/mijnbestanden/temp/";
$table_names[] = "tabel1";
$table_names[] = "tabel2";
$table_names[] = "tabel3";
$dp = new Verwerkbestanden;
$i = 2;
if ($dp->delete_file($dirtemp,$table_names[$i].'#HEAD-'.$_GET['site']))
    { $scim=true;}
    else
    { echo "NOT delected temp file(1)...ERROR(Remove files manual)<br>";}
if ($dp->delete_file($dirtemp,$table_names[$i].'#COLLUM-'.$_GET['site']))
    { $scim=true;}
    else
    { echo "NOT delected temp file(2)...ERROR(Remove files manual)<br>";}
if ($dp->delete_file($dirtemp,$table_names[$i].'#ROW-'.$_GET['site']))
    { $scim=true;}
    else
    { echo "NOT delected temp file(3)...ERROR(Remove files manual)<br>";}
?>

Het gaat dus vooral om regels 2 t/m 12 en regel 18 in mijn voorbeeld.

Wacht gerust wat de échte PHP-cracks hierop te zeggen hebben. Hopelijk heb ik het niet (helemaal) fout! :)

Succes,

Tijs.
 
Laatst bewerkt:
Is $dp een instantie van een class die die method delete_file() heeft?
 
Laatst bewerkt:
Stel dat je op lijn 18 te zien op het forum (verder gegaan op het script van dnties)
$dp = new Verwerkbestanden();
dit doet wat gebeurt er dan ??
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan