Avatar billede nesredep Nybegynder
29. august 2003 - 10:38 Der er 26 kommentarer og
1 løsning

PHP, PEAR og QuickForm

Hejsa .. nu sidder jeg har og har bøvlet med PEAR på min locahost i et par dage og jeg kan _ikke_ få det til at virke. Jeg har læst http://www.eksperten.dk/spm/391657 og været igennem det mange gange men ligelidt hjælper det.. jeg har installeret Apache på min win2000 maskine og PHP og det kører fint.

Jeg vil gerne bruge PEAR sammen med HTML_QuickForm da jeg læste om diverse smarte muligheder det har, men jeg vil gerne lære og bruge det således jeg ikke skal rette i php.ini eller .htaccess da jeg gerne skulle kunne bruge det på en 'ekstern' server også ..

jeg havde tænkt mig det således her.

jeg har min locahost .. - i mappen htdocs har jeg oprettet en mappe der hedder PEAR og i samme mappe (htdocs) har jeg fx en mappe Test.

Inde i mappen Test har jeg en fil med navnet test.php med flg.
-------- test.php
<?php
    ini_set('include_path', '.:./pear:' . ini_get('include_path'));
 
require_once "HTML\QuickForm.php";

    $form = new HTML_QuickForm('frmTest', 'get');
    $form->addElement('header', 'MyHeader', 'Testing QuickForm');
    $form->display();
?>
--------

nu er det jeg ik er helt med længere, hvordan får jeg det der ini_set til at virke, og præcist hvilke filer skal ligge i min PEAR mappe? ..

argh, hjælp :P
Avatar billede nesredep Nybegynder
29. august 2003 - 10:40 #1
Hvordan helvede er det lykkedes mig at lave samme stavefejl i "localhost" 2 gange? .. heh :|
Avatar billede tipsen Nybegynder
29. august 2003 - 10:57 #2
ini_set('include_path', '.:./pear:' . ini_get('include_path'));

-sørger for du udover de eksisterende include-paths kan inkludere filer fra den mappe der hedder "pear" (med små bogstaver) og ligger som underbibliotek i forhold til din eksisterende placering - dvs. hvis du prøver at inkludere en fil fra mappen 'Test' vil den lede i 'Test/pear' - ikke godt nok!

Ovenstående linie er skrevet udfra at jeg kun har én side (index.php) på mit website og den ligger i roden, så i forhold til den ligger 'pear' rigtigt!

I det spørgsmål du henviser til har jeg desuden listet alle filer inkl. deres placering - det er helt det samme for dig.
Avatar billede nesredep Nybegynder
29. august 2003 - 11:20 #3
okay .. efter at have fedtet lidt videre ser det måske ud til at have hjulpet lidt.. - men nu får jeg så denne fejlmelding istedet ..

Notice: Constant PEAR_ERROR_RETURN already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 24

Notice: Constant PEAR_ERROR_PRINT already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 25

Notice: Constant PEAR_ERROR_TRIGGER already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 26

Notice: Constant PEAR_ERROR_DIE already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 27

Notice: Constant PEAR_ERROR_CALLBACK already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 28

Notice: Constant PEAR_ERROR_EXCEPTION already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 29

Notice: Constant PEAR_ZE2 already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 31

Notice: Constant OS_WINDOWS already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 34

Notice: Constant OS_UNIX already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 35

Notice: Constant PEAR_OS already defined in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 36

Fatal error: Cannot redeclare class pear in c:\apache\htdocs\test\pear\HTML\PEAR.php on line 73

...

og er igen på bar bund :-)
Avatar billede tipsen Nybegynder
29. august 2003 - 11:56 #4
Det er jeg også, fordi jeg ved ikke hvilken kode der giver anledning til ovenstående fejl.
Avatar billede anhansen Nybegynder
29. august 2003 - 12:01 #5
Det lugter henad at du får includeret din fil to gange. Måske har du glemt at slette den fra noget tidligere. Alle fejlene går jo på at "noget" er lavet i forvejen, enten konstanter eller klasser.
Avatar billede tipsen Nybegynder
29. august 2003 - 12:28 #6
anhansen: Netop dét der er lidt mærkeligt, da ovenstående kode ikke bør kunne give anledning til de fejlmeddelelser...
Avatar billede nesredep Nybegynder
29. august 2003 - 14:25 #7
Hm, har prøvet hele proceduren helt forfra og nu får jeg bare

---------

Warning: main(HTML\QuickForm.php): failed to open stream: No such file or directory in c:\apache\htdocs\test\test.php on line 4

Fatal error: main(): Failed opening required 'HTML\QuickForm.php' (include_path='.:./pear:.;c:\php4\pear') in c:\apache\htdocs\test\test.php on line 4

--------------

disse fejlmeddelelser igen .. - tror ikke helt den forstår det ini_set der .. - damn noget bavl og få til at virke da :/
Avatar billede tipsen Nybegynder
29. august 2003 - 15:31 #8
Det er ganske simpelt spørgsmål om at referere til den korrekte fil - hvis du lægger test.php ud i roden (hvor pear er et underbibliotek) fungerer det med al sandsynlighed.
Avatar billede tipsen Nybegynder
29. august 2003 - 15:33 #9
- Du er ikke engang nået til de "rigtige" PEAR problemer endnu ;-)
Avatar billede nesredep Nybegynder
29. august 2003 - 15:38 #10
det virker ikke en bønne gør det :|
Avatar billede nesredep Nybegynder
29. august 2003 - 15:40 #11
htdocs\test\pear\ - her ligger alle mine "pear filer" (som beskrevet i det link aller øverst)

htdoxs\test\test.php

afvikler jeg test.php kommer den med den ovenstående fejl..

der må da være skrevet nogle guides eller noget værk til hvordan man får sat det op et sted.. - forstår ikke det ik vil virke..
Avatar billede tipsen Nybegynder
29. august 2003 - 15:52 #12
linket allerøverst beskriver den måde jeg selv bruger PEAR på - og det fungerer fint på 3 forskellige sites...

Du er meget inkonsekvent mht. brug af store og små bogstaver samt angivelse af de biblioteker du placerer filerne i - jeg ved ikke om det kun er her på Eksperten eller om det også er tilfældet på computeren - det kan måske være derfor...

Men - for at finde fejlen må du lave lidt arbejde:

1. Copy/paste din nuværende kode - præcis som du har skrevet den
2. Angiv de filer du benytter samt deres placering - ligesom den listning jeg lavede i det spørgsmål du henviser til! Dog både placering af PEAR-filerne samt placering af dine egne filer.

Når du har gjort dette, skulle det være rimeligt nemt at finde din fejl.
Avatar billede nesredep Nybegynder
29. august 2003 - 16:06 #13
okay ..

jeg har kun 1 fil jeg bruger til test.. - det er test.php

den er placeret således: http://xtremeness.dk/nes/pear/pear_test.gif
min mappe med pear ser således ud: http://xtremeness.dk/nes/pear/pear_html.gif
Mappen med QuickForm ser således ud: http://xtremeness.dk/nes/pear/pear_quickform.gif
selve koden for test.php er: http://xtremeness.dk/nes/pear/testfile.gif

og fejlmeddelelsen kan ses på: http://xtremeness.dk/nes/pear/error.gif

og ja, "problemerne" er nok først lige begyndt men, jeg vil bare gerne have det til at virke i det hele taget, så må man jo tage det derfra! :-)
Avatar billede tipsen Nybegynder
29. august 2003 - 16:31 #14
Du har brugt ini_set til linux-udgaven - men bruger windows - læs lige det spørgsmål du henviser til en gang til :-)

Derudover skal du nok bruge forwardslashes i mappe-referencer - selvom det er windows.
Avatar billede nesredep Nybegynder
29. august 2003 - 16:38 #15
hehe, oops :-)

har rettet det nu, men det virker desværre stadig ikke :/

nu siger den:

Warning: main(PEAR.php): failed to open stream: No such file or directory in c:\apache\htdocs\test\pear\HTML\QuickForm.php on line 22

Fatal error: main(): Failed opening required 'PEAR.php' (include_path='.;./pear;.;c:\php4\pear') in c:\apache\htdocs\test\pear\HTML\QuickForm.php on line 22

men i det du snakkede om i det andet emne står der ikke noget om PEAR.php skal ligge nogle steder? ..

og smider jeg den ind, begynder den på at der mangler Archive\tar.php

men er da måske kommet lidt videre.
Avatar billede tipsen Nybegynder
29. august 2003 - 17:08 #16
ups - så må du da hellere få smidt den grundlæggende pakke (PEAR) ind også - min fejl - sorry!
Avatar billede nesredep Nybegynder
29. august 2003 - 17:11 #17
hehe, np :-)

nu har jeg så bare kastet hele mappen ind .. men igen .. - altid problemer, så jeg får nu

Fatal error: Class html_quickform: Cannot inherit from undefined class html_common in c:\apache\htdocs\test\pear\HTML\QuickForm.php on line 93

som fejl .. :/
Avatar billede tipsen Nybegynder
29. august 2003 - 17:26 #18
Det tyder på at du ikke har filen HTML/Common.php ?
Avatar billede tipsen Nybegynder
29. august 2003 - 17:26 #19
-men det kan jeg se, at du har, så jeg tror stadig ikke dit include-værk er rigtigt - vis din kode!
Avatar billede nesredep Nybegynder
29. august 2003 - 17:28 #20
test.php

<?php
    ini_set('include_path', '.;./pear;' . ini_get('include_path'));

require_once "HTML/QuickForm.php";

    $form = new HTML_QuickForm('frmTest', 'get');
    $form->addElement('header', 'MyHeader', 'Testing QuickForm');
    $form->display();

?>

dér, og på forhånd tak for al din hjælp idag :)
Avatar billede tipsen Nybegynder
29. august 2003 - 17:33 #21
Jeg har lige afprøvet koden:

    ini_set('include_path', '.;./pear;'); // . ini_get('include_path')
    require_once 'HTML/QuickForm.php';
    $form = new HTML_QuickForm('frmTest', 'get');
    $form->addElement('header', 'MyHeader', 'Testing QuickForm');
    $form->display();

-den eneste ændring er, at den overskriver oprindelige include_path helt så jeg kunne være sikker på at den ikke brugte min originale pear-pakke som ligger et andet sted!

Det fungerer helt uden problemer hos mig - så det er jo både godt og skidt...
Avatar billede tipsen Nybegynder
29. august 2003 - 17:35 #22
Jeg har følgende filer:

Z:\www_test\cast\pear\DB
Z:\www_test\cast\pear\HTML
Z:\www_test\cast\pear\I18N
Z:\www_test\cast\pear\Log
Z:\www_test\cast\pear\PEAR.php
Z:\www_test\cast\pear\Log.php
Z:\www_test\cast\pear\DB.php
Z:\www_test\cast\pear\DB\common.php
Z:\www_test\cast\pear\DB\dbase.php
Z:\www_test\cast\pear\DB\fbsql.php
Z:\www_test\cast\pear\DB\ibase.php
Z:\www_test\cast\pear\DB\ifx.php
Z:\www_test\cast\pear\DB\msql.php
Z:\www_test\cast\pear\DB\mssql.php
Z:\www_test\cast\pear\DB\mysql.php
Z:\www_test\cast\pear\DB\oci8.php
Z:\www_test\cast\pear\DB\odbc.php
Z:\www_test\cast\pear\DB\pgsql.php
Z:\www_test\cast\pear\DB\sybase.php
Z:\www_test\cast\pear\DB\storage.php
Z:\www_test\cast\pear\DB\Pager.php
Z:\www_test\cast\pear\HTML\Table.php
Z:\www_test\cast\pear\HTML\Common.php
Z:\www_test\cast\pear\HTML\Crypt.php
Z:\www_test\cast\pear\HTML\QuickForm.php
Z:\www_test\cast\pear\HTML\QuickForm
Z:\www_test\cast\pear\HTML\Template
Z:\www_test\cast\pear\HTML\QuickForm\button.php
Z:\www_test\cast\pear\HTML\QuickForm\checkbox.php
Z:\www_test\cast\pear\HTML\QuickForm\date.php
Z:\www_test\cast\pear\HTML\QuickForm\select.php
Z:\www_test\cast\pear\HTML\QuickForm\static.php
Z:\www_test\cast\pear\HTML\QuickForm\submit.php
Z:\www_test\cast\pear\HTML\QuickForm\text.php
Z:\www_test\cast\pear\HTML\QuickForm\textarea.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer.php
Z:\www_test\cast\pear\HTML\QuickForm\element.php
Z:\www_test\cast\pear\HTML\QuickForm\file.php
Z:\www_test\cast\pear\HTML\QuickForm\group.php
Z:\www_test\cast\pear\HTML\QuickForm\header.php
Z:\www_test\cast\pear\HTML\QuickForm\hidden.php
Z:\www_test\cast\pear\HTML\QuickForm\html.php
Z:\www_test\cast\pear\HTML\QuickForm\image.php
Z:\www_test\cast\pear\HTML\QuickForm\input.php
Z:\www_test\cast\pear\HTML\QuickForm\link.php
Z:\www_test\cast\pear\HTML\QuickForm\password.php
Z:\www_test\cast\pear\HTML\QuickForm\radio.php
Z:\www_test\cast\pear\HTML\QuickForm\reset.php
Z:\www_test\cast\pear\HTML\QuickForm\advcheckbox.php
Z:\www_test\cast\pear\HTML\QuickForm\hiddenselect.php
Z:\www_test\cast\pear\HTML\QuickForm\hierselect.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer
Z:\www_test\cast\pear\HTML\QuickForm\Renderer\Array.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer\ArraySmarty.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer\Default.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer\ITDynamic.php
Z:\www_test\cast\pear\HTML\QuickForm\Renderer\ITStatic.php
Z:\www_test\cast\pear\HTML\Template\IT.php
Z:\www_test\cast\pear\HTML\Template\ITX.php
Z:\www_test\cast\pear\HTML\Template\IT_Error.php
Z:\www_test\cast\pear\HTML\Template\Xipe.php
Z:\www_test\cast\pear\HTML\Template\Xipe
Z:\www_test\cast\pear\HTML\Template\Xipe\Cache.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Main.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Options.php
Z:\www_test\cast\pear\HTML\Template\Xipe\XMLConfig.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\Basic.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\Internal.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\Modifier.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\SimpleTag.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\TagLib.php
Z:\www_test\cast\pear\HTML\Template\Xipe\Filter\Translate.php
Z:\www_test\cast\pear\I18N\Negotiator.php
Z:\www_test\cast\pear\I18N\Common.php
Z:\www_test\cast\pear\I18N\Country.php
Z:\www_test\cast\pear\I18N\Language.php
Z:\www_test\cast\pear\I18N\DateTime.php
Z:\www_test\cast\pear\I18N\Number.php
Z:\www_test\cast\pear\I18N\Format.php
Z:\www_test\cast\pear\I18N\Currency.php
Z:\www_test\cast\pear\I18N\Common
Z:\www_test\cast\pear\I18N\Messages
Z:\www_test\cast\pear\I18N\Common\da_DK.php
Z:\www_test\cast\pear\I18N\Common\de_AT.php
Z:\www_test\cast\pear\I18N\Common\de_DE.php
Z:\www_test\cast\pear\I18N\Common\en_GB.php
Z:\www_test\cast\pear\I18N\Common\en_UK.php
Z:\www_test\cast\pear\I18N\Common\en_US.php
Z:\www_test\cast\pear\I18N\Common\en_ZA.php
Z:\www_test\cast\pear\I18N\Common\es_ES.php
Z:\www_test\cast\pear\I18N\Common\fr_FR.php
Z:\www_test\cast\pear\I18N\Common\it_IT.php
Z:\www_test\cast\pear\I18N\Common\nl_NL.php
Z:\www_test\cast\pear\I18N\Common\af.php
Z:\www_test\cast\pear\I18N\Common\de.php
Z:\www_test\cast\pear\I18N\Common\en.php
Z:\www_test\cast\pear\I18N\Common\es.php
Z:\www_test\cast\pear\I18N\Common\fr.php
Z:\www_test\cast\pear\I18N\Common\hu.php
Z:\www_test\cast\pear\I18N\Common\it.php
Z:\www_test\cast\pear\I18N\Common\nl.php
Z:\www_test\cast\pear\I18N\Common\pl.php
Z:\www_test\cast\pear\I18N\Common\pt.php
Z:\www_test\cast\pear\I18N\Common\ru.php
Z:\www_test\cast\pear\I18N\Common\sl.php
Z:\www_test\cast\pear\I18N\Common\da.php
Z:\www_test\cast\pear\I18N\Messages\File.php
Z:\www_test\cast\pear\I18N\Messages\Common.php
Z:\www_test\cast\pear\I18N\Messages\Translate.php
Z:\www_test\cast\pear\I18N\Messages\determineLanguage.inc.php
Z:\www_test\cast\pear\Log\composite.php
Z:\www_test\cast\pear\Log\console.php
Z:\www_test\cast\pear\Log\error_log.php
Z:\www_test\cast\pear\Log\file.php
Z:\www_test\cast\pear\Log\mail.php
Z:\www_test\cast\pear\Log\mcal.php
Z:\www_test\cast\pear\Log\observer.php
Z:\www_test\cast\pear\Log\sql.php
Z:\www_test\cast\pear\Log\syslog.php
Z:\www_test\cast\pear\Log\win.php

Det er selvfølgelig ikke alle du har behov for...
Avatar billede nesredep Nybegynder
29. august 2003 - 17:50 #23
hm, okay .. - har du mulighed for (hvor koden virker (test.php), at zippe alle de filer (plus pear mapperne/filer), til en fil som jeg fx kunne hente fra et eller andet sted.. - og så afprøve med nøjagtigt samme "struktur" ? .. - så kunne jeg også afprøve det på mit domæne xtremeness.dk der..

for efter at have læst en masse med anvendelse af det quickform der vil jeg pokkers gerne sætte mig ind i det og få lært omkring det :)
Avatar billede tipsen Nybegynder
29. august 2003 - 18:45 #24
Jeg vil mene, at ovenstående er nok til formålet - det giver dig jo strukturen og filerne får du fra pear.php.net!
Avatar billede nesredep Nybegynder
29. august 2003 - 19:08 #25
weeeeeeeeeee! :D

Så lykkedes det sgu! ..

slettede alt det lort jeg havde og hentede alle pakker helt forfra .. - det så ud til at hjælpe for nu virker det ..

jeg siger mange tak for hjælpen, det var sgu super ..

nu kalder tutorialsne så bare.. - fydaføj :|

super :)

hvordan giver man pointene til den rigtige bruger egentligt?..
Avatar billede tipsen Nybegynder
29. august 2003 - 19:30 #26
Det kan du nu, når jeg har lagt et svar :-)
Avatar billede nesredep Nybegynder
29. august 2003 - 19:39 #27
skidesmart ! :-)

mange tak!
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