aog Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 (endret) Er det noen som ser hvorfor denne php filen ikke virker på serveren min? <?php # navn på member tag: $delimiter_tag = "member"; # source url $url = "http://www.anarchy-online.com/org/stats/d/2/name/1251331/basicstats.xml"; # henter ned xml if(!($fh = @fopen($url,'r'))){ die("fikk ikke åpnet url: <a href=\"$url\">$url</a>"); } # initialiserer vår parser $xml_parser = xml_parser_create(); # og tilordner funksjoner for å ta seg av ting og tang xml_set_element_handler($xml_parser, "startElement", "endElement"); xml_set_character_data_handler($xml_parser, "characterData"); # her skal vi samle opp alle våre data $character_data = array(); # midliertidig oppsamlingsarray $current_character = array(); # bruker en signal variable for å angi når vi er inne i en <member> tag $in_delimiter_tag = 0; # bruker upper string i XML parsing (hvorfor det????) $delimiter_tag = strtoupper($delimiter_tag); # søker gjennom xml documentet while($data = fread($fh, 4096)){ if(!xml_parse($xml_parser,$data,feof($fh))){ die(sprintf("XML error: %s på linje %d", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser))); } } xml_parser_free($xml_parser); # dumper data for å vise hva vi har funnet: if(isset($_GET['dump'])){ echo "<pre>"; print_r($character_data); echo "</pre>"; exit; } # heading echo "<h1>Valhall Guardians</h1><h2>Number of members: "; echo count($character_data); echo "</h2><h3>Avg. level: "; # finner gjennomsnitt if(count($character_data)){ foreach($character_data as $character){ $snitt += $character['LEVEL']/count($character_data); } } $snitt = round($snitt); echo "$snitt</h3>\n"; # teller for å sette bakgrunnsfarge $counter = 0; foreach($character_data as $character){ if($i=1-$i) echo '<hr style="visibility: hidden; margin: 0; border: 0; clear: both;" />' . "\n"; # character div echo '<div style="background-color: ' . ( in_array(++$counter % 4, array(3,0) ) ? '#efefef' : '#cccccc' ) . '; padding: 1em; float: left; width: 380px; overflow: hidden;">' . "\n"; # navn echo '<h2 style="margin-top: 0;">'; echo $character['FIRSTNAME'] . ' <span style="text-decoration: underline;">' . $character['NICKNAME']; echo '</span> ' . $character['LASTNAME'] . "</h2>\n"; # bilde echo '<img src="' . $character['SMALLPHOTO_URL'] . '" alt="' . $character['NICKNAME'] . '" style='; echo '"float: left; margin: 1em; border: 1px solid #333333;"/>' . "\n"; # resten echo '<div style="clear: left;">' . "\n"; echo '<strong>Rank:</strong> ' . $character['RANK_NAME'] . "<br/>\n"; echo '<strong>Level:</strong> ' . $character['LEVEL'] . "<br/>\n"; echo '<strong>Profession:</strong> ' . $character['PROFESSION'] . "<br/>\n"; echo '<strong>Gender:</strong> ' . $character['GENDER'] . "<br/>\n"; echo '<strong>Breed:</strong> ' . $character['BREED'] . "<br/>\n"; echo "</div>\n</div>\n\n"; } # husk at funksjoner har lokalt "name space", må bruke global for å få tilgang # til andre variable. function startElement($xml_parser,$name,$attrs){ global $current_element,$delimiter_tag,$in_delimiter_tag; # hvis vi er innenfor en <member> tag, skal vi huske på dette tag-navnet if($in_delimiter_tag and $name != $delimiter_tag){ $current_element = $name; } # eller hvis dette er en <member> tag, så sier vi fra at vi har gått inn i en <member> tag else if($name == $delimiter_tag){ $in_delimiter_tag = 1; $current_element = ""; } # hvis ikke, skal vi bare glemme denne tagen else{ $current_element = ""; } } function endElement($xml_parser,$name){ global $character_data,$delimiter_tag,$current_character; # ved en /tag, skal vi uansett ikke ha noe i denne variabelen $current_element = ""; # hvis vi dessuten har gått ut av en </member> tag, skal vi oppdatere lista med # characteren funnet og gjøre klar for ny character if($name == $delimiter_tag){ # legger til denne charactern i lista $character_data[] = $current_character; # tømmer oppsamlingslista $current_character = array(); # og sier fra at vi ikke lenger er i en character tag $in_delimiter_tag = 0; } } function characterData($xml_parser, $data){ global $current_element,$current_character; # lagrer data funnet if($current_element){ # må bruke trim fordi parsern tar med alt av linjeskifter og blanks $current_character{$current_element} .= trim($data); } } ?> Server info: info sliter med dette.. suporten på serveren (som er betalt for), vil ikke/klarer ikke å hjelpe. Scripte funket for noen uker siden, men nå virker det ikke.. hva kan være galt? EDIT: Får ikke feilmelding, men "Siden kan ikke vises. bla bla bla.." Dette scripte funker fint: <? echo"Hello PHP test file "; ?> Det gjør dette også: <? if (!isset ($_GET['news'])) { $_GET['news'] = '1'; } if (file_exists($_GET['news'].".html")) { include($_GET['news'].".html"); } else { echo "No news atm..."; } ?> <br><br> <? $news = $_GET['news']; if ((!isset($news))||(empty($news))) { $neste = $news+1; } else { $neste = $_GET['news']; } $neste++; echo "<a href=\"?news=$neste\">Next</a>"; ?> <br> <? $news = $_GET['news']; if ((!isset($news))||(empty($news))) { $back = $news-1; } else { $back = $_GET['news']; } $back--; echo "<a href=\"?news=$back\">Back</a>"; ?> Endret 9. februar 2004 av aog Lenke til kommentar
Skaptrollet Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 <?php error_reporting(E_ALL); ?> sleng den på linje 1 og se hva som skjer Lenke til kommentar
???????? Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Prøv å sette inne echo "linje#"; på forskjellige steder i scriptet (spesielt i funksjoner som while og if. Der de teksten kommer opp vet du i alle fall at scriptet fungerer. Så prøver du å endre på de stedene der linje# ikke kommer opp. Lenke til kommentar
FuLu Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Når du laster opp fila, blir rettighetene på fila riktig da? Ser at du har <?php på den først, mens de to andre eksemplene som fungerer så har du bare <?, kanskje noe tullball skjer her? Lenke til kommentar
muffe Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 <?php error_reporting(E_ALL); ?> sleng den på linje 1 og se hva som skjer Kanskje heller linje 2? Du må ha <?php på linje 1. Lenke til kommentar
aog Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Når du laster opp fila, blir rettighetene på fila riktig da? Ser at du har <?php på den først, mens de to andre eksemplene som fungerer så har du bare <?, kanskje noe tullball skjer her? de 2 andre jeg hadde virker på samme måte.. finner ingen side.. Lenke til kommentar
aog Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 <?php error_reporting(E_ALL); ?> enten jeg slenger det på linje 1 eller 2 så får jeg Parse error: parse error in /home/housemaa/public_html/guild/guild2.php on line 2 hehe... hjelp? Lenke til kommentar
aog Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 Prøv å sette inne echo "linje#"; på forskjellige steder i scriptet (spesielt i funksjoner som while og if. Der de teksten kommer opp vet du i alle fall at scriptet fungerer. Så prøver du å endre på de stedene der linje# ikke kommer opp. skriver jeg bare inn echo "linje#"; på steder som if($i=1-$i) og/eller else if($name == $delimiter_tag){ $in_delimiter_tag = 1; $current_element = ""; } ? Lenke til kommentar
???????? Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 Sett den inn før og i funksjonene, f.eks.: echo "linje1"; if(...){ echo "linje3" funksjonen } echo "linje8"; Lenke til kommentar
aog Skrevet 9. februar 2004 Forfatter Del Skrevet 9. februar 2004 nei.. echo "linje#"; eller/og <?php error_reporting(E_ALL); ?> hjalp ikke... med <?php error_reporting(E_ALL); ?> fikk jeg som sagt denne feilen uanset om jeg satte den på linje 1 eller 2: Parse error: parse error in /home/housemaa/public_html/guild/guild2.php on line 2 liker ikke dette.. Jeg har jo betalt for serveren... eller ikke jeg, men han jeg "jobber" for har betalt for den. Lenke til kommentar
Torbjørn Skrevet 9. februar 2004 Del Skrevet 9. februar 2004 regner med du ikke gjorde dette feil, men jeg må si fra for sikkerhets skyld... <?php error_reporting(E_ALL); ?> må du ikke sette innenfor php-tags... enten slik: <?php error_reporting(E_ALL); ?> #litt html <?php # resten av fila ?> eller slik: <?php error_reporting(E_ALL); #mere php ?> hvis du setter phptaggen inni phpkode blir det (selvfølgelig) krøll ikke gjør slik: <?php <?php error_reporting(E_ALL); ?> # mere phpkode ?> Lenke til kommentar
aog Skrevet 10. februar 2004 Forfatter Del Skrevet 10. februar 2004 for å si det slik.. jeg prøvde d ohså bare for å være sikker. Lenke til kommentar
Skaptrollet Skrevet 10. februar 2004 Del Skrevet 10. februar 2004 vel.. dette er linje #1 i min test fil for å se om det funker og det gjør det! <?php error_reporting(E_ALL); ?> linje 2 starter med <?php alt funker her Lenke til kommentar
aog Skrevet 10. februar 2004 Forfatter Del Skrevet 10. februar 2004 ja.. ok. men da vet jg 1000% sikkert (ja.. jeg skrevt 1000% og ikke 100%) at det er serveren. Hadde vert litt kult om hosten kunne inset det. Noen som har noen tips om hvordan jeg skal gå frem for å få dem til å forstå at det noe galt med serveren? Lenke til kommentar
Torbjørn Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 fikk du i det hele tatt til å kjøre med error reporting slik forklart? hvis ikke det går. jeg gjorde et par oppdateringer slik at E_ALL ikke rapporterer noe som helst. http://sirius.isa-geek.org/~lindahl/php/aog.php.html http://sirius.isa-geek.org/~lindahl/php/aog.php Lenke til kommentar
aog Skrevet 11. februar 2004 Forfatter Del Skrevet 11. februar 2004 det eneste jeg får frem er "Siden kan ikke vises....." Lenke til kommentar
Torbjørn Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 får du noen phpskript til å kjøre i det hele tatt? Lenke til kommentar
???????? Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 Test dette scriptet: <?php phpinfo(); ?> Lenke til kommentar
aog Skrevet 11. februar 2004 Forfatter Del Skrevet 11. februar 2004 ja.. jeg får følgende script til å virke: <? echo"Hello PHP test file "; ?> og <? if (!isset ($_GET['news'])) { $_GET['news'] = '1'; } if (file_exists($_GET['news'].".html")) { include($_GET['news'].".html"); } else { echo "No news atm..."; } ?> <br><br> <? $news = $_GET['news']; if ((!isset($news))||(empty($news))) { $neste = $news+1; } else { $neste = $_GET['news']; } $neste++; echo "<a href=\"?news=$neste\">Next</a>"; ?> <br> <? $news = $_GET['news']; if ((!isset($news))||(empty($news))) { $back = $news-1; } else { $back = $_GET['news']; } $back--; echo "<a href=\"?news=$back\">Back</a>"; ?><br> Lenke til kommentar
FuLu Skrevet 11. februar 2004 Del Skrevet 11. februar 2004 Som sagt, så ser jeg at du har <? masse kode ?> som fungerer, er du sikker på at <?php masse kode ?> fungerer? at du i heletatt kan starte med <?php ? 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å