Gå til innhold

Hei. Har litt PHP/server problemer.


Anbefalte innlegg

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 av aog
Lenke til kommentar
Videoannonse
Annonse
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
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

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

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

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

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
×
×
  • Opprett ny...