Avatar billede bcn2007 Nybegynder
24. august 2007 - 12:03 Der er 12 kommentarer og
1 løsning

PHP xml localhost vs remote (flash)

Hej eksperter er der nogen der kan hjœlpe mig med dette:

Jeg har lavet en PHP der henter indhold fra et xml og sender det til en flash.

Alt virker i min localhost men når jeg uploader virker det ikke jeg er ret sikker på at der er noget galt med min php da den giver denne fejl når jeg åbner den alene i en browser:

Parse error: syntax error, unexpected T_OBJECT_OPERATOR in /home/gi/public_html/reports.php on line 14

mit script ser således ud:
<?php
  $reportNr=0;
  $sendVars=1;
  $reportName="report";
  $passIn = "" ;
  $doc = new DOMDocument();
  $doc->load( 'reports.xml' );
   
  $reports = $doc->getElementsByTagName( "report" );
  foreach( $reports as $report );
  {
  $reportNr ++;
  $pubYears = $report->getElementsByTagName( "pubYear" );
  $pubYear = $pubYears->item(0)->nodeValue; //line14
 
  $pubMonths = $report->getElementsByTagName( "pubMonth" );
  $pubMonth = $pubMonths->item(0)->nodeValue;
 
  $countries = $report->getElementsByTagName( "country" );
  $country = $countries->item(0)->nodeValue;
 
  $titles = $report->getElementsByTagName( "title" );
  $title = $titles->item(0)->nodeValue;
 
  $reportUrls = $report->getElementsByTagName( "reportUrl" );
  $reportUrl = $reportUrls->item(0)->nodeValue;
  $report_var[$reportNr] = $reportNr . "," . $pubYear . "," . $pubMonth . "," . $country . "," . $title . "," . $reportUrl;
 
  }


 
  while($sendVars < $reportNr +1){
              $passIn .= "$reportName$sendVars=" . $report_var[$sendVars] . "&" ;
            $sendVars ++;
            }
 
  $passIn .= "lineNr=" . $reportNr ;
  echo $passIn ;
  ?>

Når jeg åbner den fra localhost får jeg dette resultat, hvilket jeg også gerne skulle have remote:

report1=1,2008,09,Bairiki Island,Bairiki booming with tourists,reports/2008/Bahamas.pdf&report2=2,2008,08,Bahamas5,the 11th report,reports/2008/Bahamas.pdf&report3=3,2008,07,Bahamas4,Tourism again,reports/2008/Bahamas.pdf&lineNr=3

mine settings på serveren ser således ud: http://188.hostxtrem.info/php.php
siden kan ses på www.global-insight.net/globalinsight.html

Jeg håber mit spørgsmål giver mening, på forhånd tak.
Avatar billede olebole Juniormester
24. august 2007 - 12:14 #1
<ole>

Jeg kan ikke bruge linket til siden til noge, sålænge jeg ikke ved, hvor koden kaldes.

Det kan ikke passe, din kode kan fungere lokalt. I hvertfald kan din foreach-løkke ikke afvikles - og du burde få en fejl, hvis din lokalserver er sat fornuftigt op. Fejlen ligger her:

  foreach( $reports as $report );  <-- Fjern dette semikolon
  {

/mvh
</bole>
Avatar billede erikjacobsen Ekspert
24. august 2007 - 12:14 #2
Ret
$pubYear = $pubYears->item(0)->nodeValue; //line14
til
$xx = $pubYears->item(0)
$pubYear = $xx->nodeValue;
Avatar billede erikjacobsen Ekspert
24. august 2007 - 12:15 #3
...med det rigtige antal semikoloner:

$xx = $pubYears->item(0);
$pubYear = $xx->nodeValue;
Avatar billede erikjacobsen Ekspert
24. august 2007 - 12:17 #4
Den virker vel fint, Ole, hvis der kun er een.
Avatar billede bcn2007 Nybegynder
24. august 2007 - 12:39 #5
Tak for det hurtige svar!
Det ser ud til at virke (lokalt virker det fint), men nu får jeg en ny fejl når jeg uploader:

Warning: domdocument() expects at least 1 parameter, 0 given in /home/gi/public_html/reports.php on line 6

Fatal error: Call to undefined method: domdocument->load() in /home/gi/public_html/reports.php on line 7

script:
<?php
  $reportNr=0;
  $sendVars=1;
  $reportName="report";
  $passIn = "" ;
  $doc = new DOMDocument();
  $doc->load( 'reports.xml' );
   
  $reports = $doc->getElementsByTagName( "report" );
  foreach( $reports as $report )
  {
  $reportNr ++;
  $pubYears = $report->getElementsByTagName( "pubYear" );
  $PY = $pubYears->item(0);
  $pubYear = $PY->nodeValue;
 
  $pubMonths = $report->getElementsByTagName( "pubMonth" );
  $PM = $pubMonths->item(0);
  $pubMonth = $PM->nodeValue;
   
  $countries = $report->getElementsByTagName( "country" );
  $CT = $countries->item(0);
  $country = $CT->nodeValue;
 
  $titles = $report->getElementsByTagName( "title" );
  $TL = $titles->item(0);
  $title = $TL->nodeValue;
 
  $reportUrls = $report->getElementsByTagName( "reportUrl" );
  $RU = $reportUrls->item(0);
  $reportUrl = $RU->nodeValue;
  $report_var[$reportNr] = $reportNr . "," . $pubYear . "," . $pubMonth . "," . $country . "," . $title . "," . $reportUrl;

  }


 
  while($sendVars < $reportNr +1){
              $passIn .= "$reportName$sendVars=" . $report_var[$sendVars] . "&" ;
            $sendVars ++;
            }
 
  $passIn .= "lineNr=" . $reportNr ;
  echo $passIn ;
 
 
  ?>
Avatar billede erikjacobsen Ekspert
24. august 2007 - 12:54 #6
Men hvorfor har du alt det bøvl - du kører vel PHP5 lokalt og PHP4 på serveren? Du løber ind i alle de forskelle, der er. Oles semikolon er måske den eneste fejl du havde.
Avatar billede bcn2007 Nybegynder
24. august 2007 - 13:58 #7
Hej Erik
Tak for din hjœlp indtil videre, jeg tror du har ret mht php5 vs 4  jeg har netop fået svar fra min udbyder. Hvis det ikke er for meget at forlange har du så nogen forslag til hvordan jeg løser det problem, er det muligt at få scriptet til at virke med PHP 4?
Avatar billede erikjacobsen Ekspert
24. august 2007 - 14:21 #8
PHP 4 dør ved årets udgang (ingen yderligere officiel vedligeholdelse). Der er vel en 4 måneder til sådan rundt regnet. Udbydere der kun tilbyder PHP4 burde nok tilbydes krisehjælp.

XML-understøttelse i PHP4 er vaklende i bedste fald (har prøvet, og opgivet), men de "anbefaler" selv http://php.net/manual/en/ref.domxml.php

Er du fastansat og på timeløn osv, så bøvl da videre med PHP4, mens vi andre nyder livet med PHP5 ...
Avatar billede bcn2007 Nybegynder
24. august 2007 - 15:02 #9
Hej Erik
Nu har jeg fået min udbyder til at opdatere til PHP5 og det virker! Mange tak for hjœlpen, du har fortjent dine point :-)
Avatar billede bcn2007 Nybegynder
24. august 2007 - 15:15 #10
Jeg har lige et måske ret dumt spørgsmål... Det er første gang jeg opretter et spørgsmål, hvordan giver jeg dig dine point? jeg kan ikke finde noget link...
Avatar billede erikjacobsen Ekspert
24. august 2007 - 15:25 #11
Så skal jeg lave et svar, og ikke en kommentar. Det normale ville være at det gjorde jeg nu, lavede et svar altså, men du er rendt i een fra den ene procent af ekspertens brugere, der ikke gider det point-halløj.

Men spørgsmålet skal lukkes. Der er 3 muligheder
1) Du beder olebole om et svar, og det accepterer du.
2) Du lægger selv et svar, og accepterer det.
3) I lægger begge et svar, og du fordeler points mellem jer.

Og velkommen til Eksperten ;)
Avatar billede bcn2007 Nybegynder
24. august 2007 - 15:32 #12
Okay så forstår jeg bedre, jeg vil nøjes med at sige mange tak, det kan synes af lidt, men det var en stor hjœlp.
Avatar billede bcn2007 Nybegynder
24. august 2007 - 15:33 #13
Spørgsmålet er lukket
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