Hallo, ich habe ein ganz merkwürdiges Problem.
Ich habe eine Seite geschrieben, die per if-Abfrage testet, ob eine bestimmte Variable per URL gesendet wurde.
Am Anfang des Scripts schreibe ich per if(isset... entweder diese Übergebenen Variablen in eine andere oder, falls sie nicht existieren, einen leeren String.
Nun frage ich ab, ob in dieser neuen Variablen etwas drin steht und wenn ja, wird ein script ausgeführt.
Ich wollte somit 3 Seiten, die Inhaltlich zusammenpassen, in einem Script unterbringen. Je nachdem, welche Variablen per Url übergeben werden, sollte eine andere Seite geladen werden.
So, die if-Abfrage funktioniert prima. Danach lade ich den Seiten-Kopft per include, in dem die Seite aufgebaut wird, Funktionen per include eingefügt, CSS und JavaScript definiert und das allgemeine Layout ausgegeben wird.
Das klappt auch noch ganz gut, aber jetzt kommt das Problem.
Direkt nachdem ich diese header.php includiere, rufe ich eine Funktion auf, der ich die Variable übergebe, die ich für die if-Abfrage verwendet habe. Nur steht jetzt auf einmal nix mehr in dieser Variablen drin, sie ist leer.
Ich bin schon die komplette Header-Datei durchgegangen, aber dieser Variablenname wird dort nicht verwendet, und das andere, was mich wundert ist, dass genau das gleiche Script auf meinem Offline-Testserver funktioniert, ohne zu meckern.
Es muss also irgend etwas im Script stehen, dass diese beiden Server (offline und online) unterschiedlich parsen.
Ich kann mir das aber nicht erklären, da ich die gleiche Header-Datei auch auf anderen Seiten verwende. und auf diesen Seiten rufe ich hinterher auch Funktionen auf, die alle funktionieren.
Habt Ihr vielleicht ne Idee, ich bin schon fast am verzweifeln.
im Folgenden liste ich alle verwendeten Scripts auf (entschuldigt bitte den etwaigen unübersichtlichen Aufbau)
Hauptscript (Fehler ab Zeile 123 bei 'elseif($city)')
Hier ist die Header-Datei (nur zur Vollständigkeit, die eigentlich nicht das Problem sein)
Hier noch alle in der Hauptseite verwendeten Funktionen:
Und hier noch der Link zu Seite: (Die Problemseite ist die Quest-Datenbank: Menue rechte Seite -> oberste Box -> Quests)
http://www.ragnarok-online-2.de/hp/artikel/news.php
Vielen Dank für Eure Mühen
Ich habe eine Seite geschrieben, die per if-Abfrage testet, ob eine bestimmte Variable per URL gesendet wurde.
Am Anfang des Scripts schreibe ich per if(isset... entweder diese Übergebenen Variablen in eine andere oder, falls sie nicht existieren, einen leeren String.
Nun frage ich ab, ob in dieser neuen Variablen etwas drin steht und wenn ja, wird ein script ausgeführt.
Ich wollte somit 3 Seiten, die Inhaltlich zusammenpassen, in einem Script unterbringen. Je nachdem, welche Variablen per Url übergeben werden, sollte eine andere Seite geladen werden.
So, die if-Abfrage funktioniert prima. Danach lade ich den Seiten-Kopft per include, in dem die Seite aufgebaut wird, Funktionen per include eingefügt, CSS und JavaScript definiert und das allgemeine Layout ausgegeben wird.
Das klappt auch noch ganz gut, aber jetzt kommt das Problem.
Direkt nachdem ich diese header.php includiere, rufe ich eine Funktion auf, der ich die Variable übergebe, die ich für die if-Abfrage verwendet habe. Nur steht jetzt auf einmal nix mehr in dieser Variablen drin, sie ist leer.
Ich bin schon die komplette Header-Datei durchgegangen, aber dieser Variablenname wird dort nicht verwendet, und das andere, was mich wundert ist, dass genau das gleiche Script auf meinem Offline-Testserver funktioniert, ohne zu meckern.
Es muss also irgend etwas im Script stehen, dass diese beiden Server (offline und online) unterschiedlich parsen.
Ich kann mir das aber nicht erklären, da ich die gleiche Header-Datei auch auf anderen Seiten verwende. und auf diesen Seiten rufe ich hinterher auch Funktionen auf, die alle funktionieren.
Habt Ihr vielleicht ne Idee, ich bin schon fast am verzweifeln.
im Folgenden liste ich alle verwendeten Scripts auf (entschuldigt bitte den etwaigen unübersichtlichen Aufbau)
Hauptscript (Fehler ab Zeile 123 bei 'elseif($city)')
PHP-Code:
<?php
$city = '';
$order = '';
$quest = '';
if(isset($_GET['city']))
$city = $_GET['city'];
if(isset($_GET['order']))
{
if(preg_match('/npc/', $_GET['order']))
$order = ' ORDER BY quest_level ASC';
else
$order = ' ORDER BY quest_'.str_replace('_', ' ', $_GET['order']);
}
if(isset($_GET['quest']))
$quest = $_GET['quest'];
if(isset($_GET['city_name']))
$city_name = urldecode($_GET['city_name']);
if(isset($_GET['quest_name']))
$quest_name = urldecode($_GET['quest_name']);
// Wenn eine Quest ausgewählt wurde
if($quest)
{
$page = '[url="quests.php"]Quests[/url] » '.
'[url="quests.php?city='.$city.$order.'"]'.$city_name.'[/url] » '.
$quest_name;
include '../technik/header.php';
$quest_city = get_quest_city_data($city);
$quests_result = get_quests($city, "", " AND quest_id='".$quest."'");
$quest = mysql_fetch_assoc($quests_result);
if($quest['quest_type'])
$type = 'official';
else
$type = 'personal';
echo $quest['quest_reward_intern'];
echo $quest_reward_intern;
$reward = explode(';', $quest['quest_reward_intern']);
$quest_level = $quest['quest_level'];
$quest_npc_id = $quest['quest_npc_id'];
$quest_money = $quest['quest_money'];
$quest_id = $quest['quest_id'];
$quest_story = $quest['quest_story'];
$quest_todo = $quest['quest_todo'];
?>
<div id="content">
<div class="text">
<div class="quest_box">
<div class="quest_box_left">
[b]Typ:[/b]
<?php echo $type ?>
[b]Level:[/b]
<?php echo $quest_level ?>
[b]Questgeber:[/b]
<?php echo get_quest_npc($quest_npc_id) ?>
</div>
<div class="quest_box_right">
[b]Zeny:[/b]
<?php echo $quest_money ?>
[b]Belohnung:[/b]
<?php
foreach($reward as $key => $value)
{
?>
[img]../images/quests/<?php echo $quest_id.'/'.$value ?>.jpg[/img]').style.visibility = 'visible'"
onMouseOut="document.getElementById('<?php echo $value.'_desc' ?>').style.visibility = 'hidden'"
>
[img]../images/quests/<?php echo $quest_id.'/'.$value ?>.desc.jpg[/img]_desc"
style="visibility:visible; position:absolute">
<?php
}
?>
</div>
<div class="clear"></div>
</div>
<?php
if($quest_story)
{
?>
<span style="font-weight:bold">Story:</span>
<?php
echo $quest_story.'
';
}
?>
<span style="font-weight:bold">Questablauf:</span>
<?php replace_quest_todo(nl2br($quest_todo)) ?>
</div>
</div>
<?php
}
// wenn eine Stadt ausgewählt wurde
elseif($city) // <- Hier ist die Variable noch voll
{
$page = '[url="quests.php"]Quests[/url] » '.$city_name;
include_once '../technik/header.php';
echo 'city_id='.$city; // <- Hier ist die Variable leer :(
$quest_city = get_quest_city_data($city);
$quests_result = get_quests($city, $order);
?>
<div id="content">
<div class="text">
<table cols="2" align="center">
<tr class="table_header">
<td width="70">Typ</td>
<td width="20">Lvl</td>
<td width="100">Questgeber</td>
<td width="300">Name</td>
<td width="20">Zeny</td>
<td width="300">Belohnung</td>
</tr>
<?php
while($quest = mysql_fetch_assoc($quests_result))
{
if($quest['quest_type'])
$type = 'official';
else
$type = 'personal';
$link = 'quests.php?city='.$_GET['city'].'&quest='.$quest['quest_id'].
'&quest_name='.urlencode($name).'&city_name='.urlencode($quest_city['quest_city_name']).$order;
?>
<tr class="table_select">
<td>[url="<?php echo $link ?>"]<?php echo $type ?>[/url]</td>
<td>[url="<?php echo $link ?>"]<?php echo $quest['quest_level'] ?>[/url]</td>
<td>[url="<?php echo $link ?>"]<?php echo get_quest_npc($quest['quest_npc_id']) ?>[/url]</td>
<td>[url="<?php echo $link ?>"]<?php echo $name ?>[/url]</td>
<td>[url="<?php echo $link ?>"]<?php echo $quest['quest_money'] ?>[/url]</td>
<td>[url="<?php echo $link ?>"]<?php echo $quest['quest_reward'] ?>[/url]</td>
</tr>
</a>
<?php
}
?>
</table>
</div>
</div>
<?php
}
// Wenn die Seite ohne jede Auswahl geöffnet wurde
else
{
$page = 'Quests';
include '../technik/header.php';
?>
<div id="content">
<div class="text">
<table cols="2" width="80%" align="center">
<tr>
<td width="90%" style="border-bottom:dashed 1px #000000;">Stadt</td>
<td style="border-bottom:dashed 1px #000000;">#Quests</td>
</tr>
<?php
$quest_cities_result = get_quest_cities();
while($quest_city = mysql_fetch_assoc($quest_cities_result))
{
?>
<tr class="table_select">
<td>
<span style="font-weight:bold">
<a href="<?php echo 'quests.php?city='.$quest_city['quest_city_id'].
'&city_name='.urlencode($quest_city['quest_city_name']) ?>">
<?php echo $quest_city['quest_city_name'] ?>
</a>
</span>
</td>
<td><?php echo $quest_city['quest_city_count'] ?></td>
</tr>
<?php
}
?>
</table>
</div>
</div>
<?php
}
include '../technik/footer.php' ?>
PHP-Code:
<?php
include_once 'connect.php';
include_once 'functions.php';
include_once 'preg_replace.php';
$member = get_userdata($_COOKIE['ro2fp_u']);
/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = '../forum/';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
$forum_id = 3 ; // put whatever forum_id has similar permissions to this page.
// or even better, create a link to this page, set it's permissions as what you want,
// then use it's number here
// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title><?php if(isset($title)) echo $title; else echo 'Ragnarok Online II - deutsche Fanpage zu RO2' ?></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf8_bin">
<?php
include_once 'css2.php';
include_once 'javascript.php';
?>
</head>
<body>
<div id="main">
<div id="layout">
<div id="left">
<?php
if(!isset($_COOKIE['ro2fp_u']) || $_COOKIE['ro2fp_u'] == 1)
{
?>
[img]../images/layout/navi_login.png[/img]
<div class="menue_left_content">
<form action="../technik/login.php?from=<?php echo $_SERVER['PHP_SELF'] ?>" method="post" name="form_login" style="margin:0px">
Benutzername:
<input type="text" name="username" class="text">
Passwort:
<input type="password" name="password" class="text">
<input type="button" value="login" onClick="check_login()">
</form>
</div>
<?php
}
else
{
?>
[img]../images/layout/navi_userpanel.png[/img]
<div class="login_content" style="text-align:center">
<label>Willkommen</label>
<div style="float:left; text-align:left"><?php echo $member['username'] ?></div>
<div style="text-align:right">
<a href='../forum/ucp.php?sid=<?php echo $user->session_id ?>' title="Persönlicher Bereich" target="_blank">
[img]../images/layout/user_profil.png[/img]</a>
<a href='../forum/ucp.php?mode=logout&sid=<?php echo $user->session_id ?>' title="ausloggen" target="_blank">
[img]../images/layout/user_logout.png[/img]</a>
</div>
<div style="text-align:left">
<div style="height:50px; width:50px; float:left; border: dashed 1px #FFCC33; margin-right:5px;">
<?php
if(!$member['user_avatar_type'])
echo '<img src="../forum/styles/'.
get_style_name($member['user_style']).
'/theme/images/no_avatar.gif" width="50" height="50">';
else
{
?>
<img src="../technik/ava_resampled.php?<?php echo 'avatar='.$member['user_avatar'].
'&avatar_type='.$member['user_avatar_type']; ?>">
<?php
}
?>
</div>
Nachrichten:
<label>neu: [url="../forum/ucp.php?i=pm&folder=inbox"]<?php echo $member['user_new_privmsg'] ?>[/url]</label>
<label>ungelesen: [url="../forum/ucp.php?i=pm&folder=inbox"]<?php echo $member['user_unread_privmsg'] ?>[/url]</label>
</div>
<?php if($member['news_writer']) echo '[url="insert_news.php"]News schreiben[/url]' ?>
</div>
<?php
}
?>
[img]../images/layout/navi_links_u.png[/img]
[img]../images/layout/navi_home.png[/img]
<div class="menue_left_content">
[url="news.php"]News[/url]
[url="../forum/"]Forum[/url]
[url="contact.php"]Kontakt[/url]
[url="linkus.php"]Link Us[/url]
[url="affiliation.php"]Wie Affiliate werden?[/url]
</div>
[img]../images/layout/navi_links_u.png[/img]
[img]../images/layout/navi_spielinfos.png[/img]
<div class="menue_left_content">
[url="story.php"]Story[/url]
[url="features.php"]Features[/url]
[url="jobs.php"]Klassen[/url]
[url="races.php"]Rassen[/url]
[url="updates_kro2.php"]kRO2 Updates[/url]
[url="bgm.php"]Hintergrundmusik[/url]
[url="jobchange.php"]Job Wechsel[/url]
[url="faq.php"]FAQ[/url]
</div>
[img]../images/layout/navi_links_u.png[/img]
[img]../images/layout/navi_links.png[/img]
<div class="menue_left_content">
</div>
[img]../images/layout/navi_links_u.png[/img]
[img]../images/layout/navi_statistik.png[/img]
<div class="menue_right_content" style="font-size:9px">
<?php include_once '../counter/counter.php'; include 'connect.php'; ?>
</div>
[img]../images/layout/navi_links_u.png[/img]
</div>
<div id="right">
[img]../images/layout/navi_datenbank.png[/img]
<div class="menue_right_content">
[url="npcs.php"]NPCs[/url]
[url="quests.php"]Quests[/url]
[url="monsters.php"]Monster[/url]
[url="items.php"]Items[/url]
[url="armor.php"]Rüstungen[/url]
[url="weapons.php"]Waffen[/url]
[url="skills.php"]Skills[/url]
[url="crafting.php"]Itemherstellung[/url]
</div>
[img]../images/layout/navi_rechts_u.png[/img]
[img]../images/layout/navi_spielhilfe.png[/img]
<div class="menue_right_content">
[url="basic.php"]Grundbegriffe[/url]
[url="#"]Weltkarte[/url]
[url="townmaps.php"]Städte-Karten[/url]
[url="dungeonmaps.php"]Verlies-Karten[/url]
[url="exp_tabelle.php"]EXP-Tabellen[/url]
[url="stats.php"]Stats[/url]
[url="commands.php"]Tastenbefehle[/url]
[url="elements.php"]Elementschäden[/url]
[url="status.php"]Statusveränderungen[/url]
[url="weapon_guide.php"]Waffen Guide[/url]
[url="reg_guide.php"]Registrations Anleitung[/url]
[url="install_guide.php"]Installations Anleitung[/url]
</div>
[img]../images/layout/navi_rechts_u.png[/img]
[img]../images/layout/navi_multimedia.png[/img]
<div class="menue_right_content">
[url="screenshots.php"]Screenshots[/url]
[url="avatar.phps"]Avatare[/url]
[url="wallpapers.php"]Wallpapers[/url]
[url="downloads.php"]Downloads[/url]
[url="videos.php"]Videos[/url]
</div>
[img]../images/layout/navi_rechts_u.png[/img]
[img]../images/layout/navi_umfrage.png[/img]
<div class="menue_right_content">
</div>
[img]../images/layout/navi_rechts_u.png[/img]
</div>
<div id="title">
<?php if(isset($page)) echo $page ?>
</div>
PHP-Code:
function get_quests($city, $order, $quest = '')
{
if(!$order)
$order = ' ORDER BY quest_level ASC';
$query = "SELECT * FROM hp_quests WHERE quest_city_id='".$city."'".$quest.$order;
echo '"'.$query.'"';
return mysql_query($query);
}
function get_quest_cities()
{
$query = "SELECT * FROM hp_quests_cities";
return mysql_query($query);
}
function get_quest_city_data($quest_city_id)
{
$query = "SELECT * FROM hp_quests_cities WHERE quest_city_id='".$quest_city_id."'";
$result = mysql_query($query);
return mysql_fetch_assoc($result);
}
function get_quest_npc($npc)
{
$query = "SELECT quest_npc_name FROM hp_quests_npc WHERE quest_npc_id='".$npc."'";
$result = mysql_query($query);
$return = mysql_fetch_assoc($result);
return $return['quest_npc_name'];
}
http://www.ragnarok-online-2.de/hp/artikel/news.php
Vielen Dank für Eure Mühen
Kommentar