Avatar billede zity Nybegynder
08. september 2004 - 16:12 Der er 11 kommentarer og
1 løsning

Kan ikke finde grund til Warning

Hej Jeg har et script der skriver til en ini file men når jeg bruger scriptet får jeg denne Warning at vide "Warning: Missing argument 1 for inifile::Inifile() in E:\HTTP\test\inifiles.php on line 41" jeg udfører det med denne kommando "$ini->Inifile("test.ini");"

Skriv endelig hvis i vil vide mere...

Jeg bruger PHP 5.0.0
Avatar billede olebole Juniormester
08. september 2004 - 16:20 #1
<ole>

Scriptet i klassen, du kalder, kan se ud på 1.000.000 forskellige måder, så det kan der ikke siges meget begavet om  :)

/mvh
</bole>
Avatar billede zity Nybegynder
08. september 2004 - 16:21 #2
index.php
------------------
<?php
include("inifiles.php");

$ini = new inifile;
$ini->Inifile("test.ini",0);
$ini->Write("test","test1","test2");
$ini->Updatefile();
?>

inifiles.php
--------------
<?
/********************************************************
*                  PHPMyIni By Virux                  *
*********************************************************
*                                                      *
* Date : 04/08/2001                                    *
* Version : 1.0                                        *
* Auteur : virgile boulanger (Virux)                    *
* Email  : Virux@crosswinds.net                        *
* Site  : Http://www.passiondelphi.net                *
*                                                      *
* Vous pouvez utiliser, modifier et distribuer ce script*
* a votre guise, mais cette entete doit toujours        *
* accompagner ce script.                                *
********************************************************/

class inifile
{
/*Interface*/

    /* Proprietes */
    var $FFileName; // Filename of inifile
    var $Sections;  // Section list
   
    /* Methodes */
    /*
    function Inifile($FileName);                    // Read file from HDD (create)
    function Read($Section, $Ident, $Default)      // Return(reading value)
    function Write($Section, $Ident, $Value)        // Return(boolean) -= false on error =-
    function DeleteKey($Section, $Ident)            // Return(boolean) -= false on error =-
    function EraseSection($Section)                // Return(boolean) -= false on error =-
    function ReadSections()                        // Return(Array with all session name)
    function ReadSectionValues($Section)            // Return(Array with all value of the session name)
    function SectionExists($Section)                // Return(boolean)
    function ValueExists($Section, $Ident)          // Return(boolean)
    function UpdateFile()                          // Write file to HDD
    */
   
/*Implementation*/   

    function Inifile($FileName)
    {
        $this->FFileName = $FileName;
        if(@$F = fopen($this->FFileName ,"r"))
          {
            while (!feof($F))
            {
              $txt = fgets($F, 1024);

              if (strlen($txt) > 2) // >2 because CRLF
              {
                  if ($txt[0]=="[")
                  {
                    $lastsection = substr($txt,1,strpos($txt,"]")-1);
                  } else {
                    $ident = substr($txt,0,strpos($txt,"="));
                    $value = substr($txt,strpos($txt,"=")+1,strlen($txt));
                    $this->Sections[$lastsection][$ident] = $value;
                  }
              } 
            }
            fclose($F);
            return(True);
          }else{
            return(False);
          }   
    }

    function Read($Section, $Ident, $Default)
    {
      $ReadStr = $this->Sections[$Section][$Ident];
     
      if(strlen($ReadStr) > 0)
      {
        Return($ReadStr);
      }else{
        Return($Default);   
      }
    }
   
    function Write($Section, $Ident, $Value)
    {
        $this->Sections[$Section][$Ident] = $Value;
    }
   
    function DeleteKey($Section, $Ident)
    {
        $pos=0;
        foreach ($this->Sections[$Section] as $ind=>$value)
        {
          if ($Ident == $ind){$find = True;};
          if (!$find){$pos++;} 
        }
        array_splice($this->Sections[$Section],$pos,$pos+1);
    }
   
    function EraseSection($Section)
    {     
        $pos=0;
        foreach ($this->Sections as $ind=>$value)
        {
          if ($Section == $ind){$find = True;};
          if (!$find){$pos++;} 
        }
        array_splice($this->Sections,$pos,$pos+1);
    }
   
    function ReadSections()
    {
      foreach ($this->Sections as $ind=>$value)
      {
        $TmpAray[] = $ind;   
      } 
        Return($TmpAray);
    }
   
    function ReadSectionValues($Section)
    {
        Return($this->Sections[$Section]);
    }
   
    function SectionExists($Section)
    {
        $find = False;
        foreach ($this->Sections as $ind=>$value)
        {
          if ($Section == $ind){$find = True;};   
        }

        Return($find);
       
    }
   
    function ValueExists($Section, $Ident)
    {
        $find = False;
        foreach ($this->Sections[$Section] as $ind=>$value)
        {
          if ($Ident == $ind){$find = True;};   
        }

        Return($find);
    }
   
    function UpdateFile()
    {
    if($F = fopen($this->FFileName ,"w"))
      {
        foreach ($this->Sections as $ind=>$value)
        {
          fputs($F ,"[".$ind."]n");
          foreach ($this->Sections[$ind] as $ind2=>$value2)
          {
            fputs($F ,$ind2."=".$value2."n");
          }   
        }
        fclose($F);
      }
    //  return $nbvisiteur;
    }
}   
?>
Avatar billede detox Nybegynder
08. september 2004 - 16:24 #3
Måske skal du bare bruge:

$ini->Inifile("test.ini");

istedet for:

$ini->Inifile("test.ini",0);
Avatar billede zity Nybegynder
08. september 2004 - 16:26 #4
Nææ. For den samme fejl... :(
Avatar billede olebole Juniormester
08. september 2004 - 16:35 #5
detox har ret, hvad enten, du får fejl eller ej. Funktionen tager kun ét argument, så 0'et _skal_ udløse en fejl/warning  :)
Avatar billede olebole Juniormester
08. september 2004 - 16:37 #6
... og jeg tvivler _meget_ stærkt på, du får den samme fejl, hvis du kalder med:
  $ini->Inifile("test.ini");
Prøv lige igen for en sikkerheds skyld  ;o)
Avatar billede olebole Juniormester
08. september 2004 - 16:40 #7
Du laver også ged i din write-funktion ... den tager tre argumenter, men du skriver kun to
Avatar billede olebole Juniormester
08. september 2004 - 16:40 #8
Vrøvl ... glem min seneste kommentar  :)
Avatar billede olebole Juniormester
08. september 2004 - 16:45 #9
*LooL* naturligvis  :D

<?php
include("inifiles.php");

$ini = new inifile("test.ini");
$ini->Write("test","test1","test2");
$ini->Updatefile();
?>
Avatar billede detox Nybegynder
08. september 2004 - 16:47 #10
Ja, nåede frem til det samme her.
Avatar billede zity Nybegynder
08. september 2004 - 17:03 #11
Tak Olebole det virker kom med et svar...
Avatar billede olebole Juniormester
08. september 2004 - 17:09 #12
Selvtak  :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester