Jump to content
Sign in to follow this  
aog

Hei. Har litt PHP/server problemer.

Recommended Posts

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>";

?>

Edited by aog

Share this post


Link to post

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.

Share this post


Link to post

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?

Share this post


Link to post
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..

Share this post


Link to post
<?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... :ermm: hjelp? :(

Share this post


Link to post
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 = "";
}

?

Share this post


Link to post

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.

Share this post


Link to post

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

Share this post


Link to post

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?

Share this post


Link to post

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>

Share this post


Link to post

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 ? :shrug:

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...