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.. 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

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...