flyKSU Skrevet 15. februar 2012 Del Skrevet 15. februar 2012 Heisann! Har et lite problem som irriterer meg noe grenseløst. Jeg driver å oppdaterer nettsida mi om Kristiansund lufthavn, og sliter med å få alt av PHP til å funke i den nye utgaven. På den nåværende startsiden bruker jeg en div-tagg og et script for å hente inn ankomst- og avgangstider fra et eksternt dokument, siden det laster tregt, og stopper lastingen av den øvrige siden: http://www.kvernberget.net Bruker følgende script/div. på den nåværende siden, og det fungerer utmerket. Ett for avgangstider, og ett for ankomsttider: <div id="innholdsdiv"><p><strong>Laster inn flytider...</strong><br /> <em>Henter inn rutedata fra Avinor. Vennligst vent...</em></div> <script> $("#innholdsdiv").load("data.php"); </script> </p> I den nye utgaven gikk jeg ut ifra at jeg kunne bruke samme løsning, men innholdet vil ikke laste. Prøvde derfor følgende: Avganger <?php include($_SERVER['DOCUMENT_ROOT'] . '/data.php');?> Ankomster <?php include($_SERVER['DOCUMENT_ROOT'] . '/datafull2.php');?> Problemet blir da for det første at jeg får problemer med at hele siden laster tregt, samt at jeg får feilmelding i ankomst-fanen. (se vedlagt bilde) Spørsmålet mitt blir vel egentlig hvorfor den opprinnelige løsningen min plutselig ikke virker - om det er jeg som klusser det hele til, eller om det finnes andre måter å laste inn denne dataen på uten at det sinker ned lastingen av resten av siden. Bruker dette PHP-scriptet for å hente flytidene: http://www.oxodesign.no/avinorPhpApi/?p=doc Det skal også nevnes at PHP-kunnskapene mine ikke er helt som de burde være, men setter stor pris på hjelp! Lenke til kommentar
BlueEAGLE Skrevet 15. februar 2012 Del Skrevet 15. februar 2012 Hva sier loggfilen? Lenke til kommentar
Nator Skrevet 15. februar 2012 Del Skrevet 15. februar 2012 (endret) Tror kanskje du må instansiere ett nytt avinor-objekt i den nye php-fila og bytte ut referansene som er dobbelt opp, det er i alle fall noe i den duren jeg får ut av feilmeldingen i skjermbildet. Den nye siden du prøver å inkludere, (kopien av data.php) i Avganger, prøver å instansiere gethoursfromdate() på nytt ved å sette $avg=gethoursfromdate(). Du kan endre navnet (bruk søk-erstatt) til f.eks. $avg2. Blir ikke så ryddig, men burde funke... Problemet er i grunn at du inkluderer samme skript to ganger, og det blir dobbelt opp, noe som det ikke ser ut til at den takler så godt. Kanskje det finnes noen dirty triks for å omgå dette, jeg vet ikke. Den opprinnelige måten du inkluderer på burde fungere også i den nye versjonen, ser ingen grunner til hvorfor ikke! < ?php include "class.avinor.php"; $avinor2 = new avinor(); ?> EDIT: måtte rette flere feil... er litt rusten på PHPen for øyeblikket Endret 16. februar 2012 av Nator Lenke til kommentar
flyKSU Skrevet 15. februar 2012 Forfatter Del Skrevet 15. februar 2012 (endret) Hva sier loggfilen? Uh... jeg... vet ikke helt hva du mener? PHP-kunnskapene mine er ikkeno å skryte av, og det scriptet jeg har brukt til nå er det strengt tatt ikke jeg som står bak Men hva trenger du av info i såfall? @Nator, vedlagt hele data.php: <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <?php include 'class.avinor.php'; $avinor = new avinor(); $timeNow = time(); if(isset($_POST) && isset($_POST['btnSearch'])){ $airport = $_POST['airport']; $timeFrom = $_POST['timeFrom']; $timeTo = $_POST['timeTo']; $direction = $_POST['direction']; }else{ $airport = "KSU"; $timeFrom = 0; $timeTo = 8; $direction = "D"; } $directions = array( '0' => 'Begge retninger', 'A' => 'Ankomst', 'D' => 'Avgang' ); ?> <?php function getHoursFromDate($time){ date_default_timezone_set('UTC'); if($time != ""){ $currentTime = str_replace("T", " ", $time); $date = new DateTime($currentTime); $timeZone = new DateTimeZone('Europe/Oslo'); $date->setTimezone($timeZone); return $date->format('H:i'); } return ''; } $avinor->setAirport($airport) ->setTimeFrom($timeFrom) ->setTimeTo($timeTo); if($direction != "0") $avinor->setDirection($direction); $result = $avinor->getResult(); ?> <table class="data-table"> <thead> <td><div align="center"><strong>Rutenr.<br /> <br /></strong></div></td> <td><div align="center"><strong>Tid<br /> <br /></strong></div></td> <td><div align="center"><strong>Destinasjon<br /> <br /></strong></div></td> <td><div align="center"><strong>Gate<br /> <br /></strong></div></td> <td><div align="center"><strong>Status<br /> <br /></strong></div></td> </thead> <?php $color = ""; // DENNE MÅ STÅ HER FØRST, DEN SKAL INNEHOLDE "" OM DU SKAL STARTE MED HVIT ELLER "FARGE" OM DU SKAL STARTE MED FARGE foreach($result as $flight): // Annenhver farge kode (kan kopieres) ////////////////////// if($color == "") { $color = "even"; } else { $color = ""; } ///////////////////////////////////////////////////////////// // Dersom denne ruten er kansellert skal den ha rød bakgrunnsfarge /// if($flight['status']['code']['code'] == "C") $color = "cancelled"; ////////////////////////////////////////////////////////////////////// $avg = getHoursFromDate($flight['scheduleTime']); $status = $flight['status']['code']['no'] . ' ' . getHoursFromDate($flight['status']['time']); if($flight['airport']['code'] == $avinor->getAirport() && $flight['direction'] != "A"){ $airport = $flight['viaAirport'][0]['name']; }else $airport = $flight['airport']['name']; if($flight['direction'] == "A"){ $fligtIcon = array( 'src' => 'iconArrowDown.png', 'text'=> 'Ankomster' ); }else{ $fligtIcon = array( 'src' => 'iconArrowUp.png', 'text'=> 'Avganger' ); } $viaAirport = ''; if(is_array($flight['viaAirport']) && count($flight['viaAirport']) > 0){ foreach ($flight['viaAirport'] as $ap){ /** * CODE: $ap['code'] * NAME: $ap['name'] */ $viaAirport .= utf8_decode($ap['name']); } } ?> <tr class="<?php echo $color; ?>"> <!-- ////////////////// DENNE MÅ KOPIERES --> <?php $filename = "scheduleinfo/scheduleinfo_" . $flight['flightId'] . ".php"; if (file_exists($filename)) { echo "<td><a href=\"rutedata.php?r=" . $flight['flightId'] . "\">" . $flight['flightId'] . "</a></td>"; }else{ echo "<td>" . $flight['flightId'] . "</td>"; } ?> <td><?php echo $avg; ?></td> <td><?php echo utf8_decode($airport); ?></td> <td> <?php echo utf8_decode($flight["gate"]['name']); ?></td> <td><?php echo $status; ?></td> </tr> <?php endforeach; ?> </table><p> <em>Data: <a href="http://www.avinor.no">Avinor</a></em><a href="http://www.avinor.no"></a><br /><a href="flytider.php"><strong>Full oversikt over ankomster og avganger</strong></a> </p> Endret 15. februar 2012 av flyKSU Lenke til kommentar
flyKSU Skrevet 16. februar 2012 Forfatter Del Skrevet 16. februar 2012 OK, da skjønner jeg feilmeldinga. Men jeg tenkte å unngå å legge hele PHP-en i index-fila, fordi den laster så tregt da. Skjønner ikke hvorfor det ikke vil funke i den nye utgaven, når det var klipp og lim fra www.kvernberget.net, hvor det funker bra Lenke til kommentar
Nator Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 (endret) Ligger den nye versjonen i en ny undermappe? Tenker kanskje det er flere "include" filer som må være på riktig sted i forhold til skriptet f.eks... Endret 16. februar 2012 av Nator Lenke til kommentar
flyKSU Skrevet 16. februar 2012 Forfatter Del Skrevet 16. februar 2012 Ligger den nye versjonen i en ny undermappe? Tenker kanskje det er flere "include" filer som må være på riktig sted i forhold til skriptet f.eks... Den gjør det, så jeg prøvde å laste opp den nye index-fila i rooten der hvor dagens ligger, men flytidene vil likevel ikke laste Lenke til kommentar
BlueEAGLE Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 ...og hva sier loggfilen til serveren hvor du typisk får opp feilmeldinger fra PHP-skript? Lenke til kommentar
Sono Juventino Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 Hvor ligger fila class.avinor.php? Den inkluderes tross alt av data.php. Vil tro det er grunnen til at lite fungerer hos deg. Lenke til kommentar
flyKSU Skrevet 16. februar 2012 Forfatter Del Skrevet 16. februar 2012 class.avinor.no ligger både i root og i /Annet. Det har aldri fungert å ha to script for ankomst- og avganger limt rett inn i index-fila, og det er derfor jeg har brukt div-scriptet som nå plutselig ikke fungerer. Lenke til kommentar
Gjest Slettet+9871234 Skrevet 16. februar 2012 Del Skrevet 16. februar 2012 Har du en delt severløsning? Vet du om din hoster har endret konfigurerings innstillinger i filer som .htaccess og / eller php.ini? Har hosteren oppgradert til en nyere versjon av php? Lenke til kommentar
flyKSU Skrevet 16. februar 2012 Forfatter Del Skrevet 16. februar 2012 Har du en delt severløsning? Vet du om din hoster har endret konfigurerings innstillinger i filer som .htaccess og / eller php.ini? Har hosteren oppgradert til en nyere versjon av php? Jeg aner rett og slett ikke, men ingenting har blitt endret så vidt jeg vet, og div-scriptet fungerer jo i root. Jeg lasta nå opp den nåværende index-fila (hvor det fungerer) under /Annet, hvor index-fila det ikke fungerer på ligger, og den virker... så alle filene som trengs ligger tydeligvis på plass i /Annet: http://www.kvernberget.net/Annet/prt.php (index-fil hvor det virker) Bruker følgende kode: <div id="innholdsdiv"><p><strong>Laster inn flytider...</strong><br /> <em>Henter inn rutedata fra Avinor. Vennligst vent... </em></div> <script> $("#innholdsdiv").load("data.php"); </script></p> Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå