PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Es wird kein Inhalt angezeigt



~|=?FrAnZ?=|~
06-07-2003, 17:06
Wenn ich die Seite aufrufe bekomme ich keinen Inhalt angezeigt.
Seite verwendet Mysql.
Server: Mysql 4.1 Apache 2. PHP4.3.1 mod_perl 1.99

index.php:

<?php
$db=mysql_connect("********.homelinux.net:3306","*****","***");
mysql_select_db("lat", $db);
$result = mysql_query("SELECT * from inhalt WHERE page = '$page';", $db);
$data=mysql_fetch_object($result);
?>
<HTML>
<HEAD>
<title>
<?php
if ($title == "") {
?>
***
<?php
}
else {
echo $data->title;
}
?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/style.css>
</HEAD>

<FRAMESET ROWS="64,*" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">
<frame name="oben" scrolling="no" noresize target="_blank" src="oben.php" marginwidth="0" marginheight="0">
<frameset cols="150,*" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">



<frame name="nav" target="mitte" src="navi.php?nav=
<?
if ($nav == "")
{
echo 'normal';
}
else
{
echo $nav;
}
?>
" noresize marginwidth="0" marginheight="0" scrolling="no">
<frame name="mitte" target="mitte" src="mitte.php?page=<? if ($page == "") { echo 'main'; } else { echo $page; } ?>" noresize marginwidth="0" marginheight="0" scrolling="auto">
</FRAMESET>
<NOFRAMES>

<BODY>
<table border="0">
<TR>
<TD> Diese Homepage verwendet FRAMES, da diese von ihrem Browser nicht angezeigt werden können, können sie meine Homepage nicht betrachten </TD>
</TR>
</table>
</BODY>
</NOFRAMES>
</FRAMESET>
</HTML>


mitte.php:

<?php
$db=mysql_connect("********.homelinux.net:3306","******","***");
mysql_select_db("lat", $db);
$result = mysql_query("SELECT * from inhalt WHERE page = '$page';", $db);
$data=mysql_fetch_object($result);
?>
<HTML>
<HEAD>
<title> <? echo $data->title; ?> </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/stylem.css>
</HEAD>
<BODY>
<?php
echo $data->html;
?>
</BODY>
</HTML>


oben.php:


<?php
$db=mysql_connect("********.homelinux.net:3306","*****","***");
mysql_select_db("lat", $db);
$result = mysql_query("SELECT * from inhalt WHERE page = 'oben';", $db);
$data=mysql_fetch_object($result);
?>
<HTML>
<HEAD>
<title>
<?php
if ($title == "") {
?>
***
<?php
}
else {
echo $data->title;
}
?>
</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/style.css>
</HEAD>
<BODY>
<?php
echo $data->html;
?>

</BODY>
</HTML>


Es wäre nett wenn mir einer helfen könnte! :D

offe
07-07-2003, 17:06
Hi,

Was bedeutet: Wenn ich die Seite aufrufe bekomme ich keinen Inhalt angezeigt.

Könntest du bitte den Quelltext (rechte Maustaste in Browser und Quelltext anzeigen) posten

nach $data=mysql_fetch_object($result); wäre ein $row =mysql_fetch_row($data) nicht schlecht

$data->title (und ähnliches) sollte wohl $row[title] (Variable $row s.o.) sein? Ich denke $data ist kein Objekt.

Vielleicht solltest du dir ein Anfängertutorial zu PHP und Mysql ansehen. Z.B. http://phpzone.dynamicwebpages.org/50.tutorials.php?dwp_tutorialID=7&printerfriendly=ON&headline=MySQL%20und%20PHP%20Tutorial


Offe

Gaert
07-07-2003, 17:33
Original geschrieben von offe

nach $data=mysql_fetch_object($result); wäre ein $row =mysql_fetch_row($data) nicht schlecht

$data->title (und ähnliches) sollte wohl $row[title] (Variable $row s.o.) sein? Ich denke $data ist kein Objekt.


Das stimmt schon so... mysql_fetch_object() erzeugt ein Objekt mit der Datenbankstruktur.
Ich tippe auf einen ganz doofen Fehler! Poste mal bitte den Quelltext, wie offe ja schon gesagt hat.

~|=?FrAnZ?=|~
07-07-2003, 18:50
index.php:
quelltext

<html>
<head>
<title>
***
</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/style.css>
</head>

<frameset ROWS="64,*" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">

<frame name="oben" scrolling="no" noresize target="_blank" src="oben.php" marginwidth="0" marginheight="0">
<frameset cols="150,*" BORDER="0" FRAMEBORDER="no" FRAMESPACING="0">



<frame name="nav" target="mitte" src="navi.php?nav=
normal" noresize marginwidth="0" marginheight="0" scrolling="no">


<frame name="mitte" target="mitte" src="mitte.php?page=main" noresize marginwidth="0" marginheight="0" scrolling="auto">
</frameset>
<noframes>

<body>

<table border="0">
<tr>
<td> Diese Homepage verwendet FRAMES, da diese von ihrem Browser nicht angezeigt werden können, können sie meine Homepage nicht betrachten </td>
</tr>
</table>
</body>
</noframes>
</frameset>

</html>

mitte.php quelltext:

<html>
<head>
<title> </title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/stylem.css>
</head>
<body>
</body>
</html>
navi.php quelletxt:

<html>
<head>
<title>
***
</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/style.css>
</head>
<body>


</body>
</html>


oben.php quelltext:

<html>
<head>
<title>
***
</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">

<link REL="stylesheet" TYPE="text/css" HREF=css/style.css>
</head>


</body>
</html>

~|=?FrAnZ?=|~
07-07-2003, 18:52
Was bedeutet: Wenn ich die Seite aufrufe bekomme ich keinen Inhalt angezeigt.

Die Seite wird halt angezeigt aber ohne Inhalt.
Daraus schließ ich das es ein mysql oder php code fehler ist.

offe
08-07-2003, 07:59
Hallo,

gib am Anfang mal für $page einen Wert ein ($page = "Seite") vielleicht wird ja nichts übergeben. Sollte dies der Fall sein suche mal nach register_globals. Vielleicht ist diese Variable in der php.ini deaktiviert.

Hilft dies auch nicht dann:
ändere:
$result = mysql_query("SELECT * from inhalt WHERE page = '$page';", $db);
in
$result = mysql_query("SELECT * from inhalt WHERE page = '" . $page . "';", $db);


Solltest du phpMyAdmin installiert haben, dann gib mal die Select-Befehle ein und schau dir das Ergebnis an.

Solltest du SSH-Zugriff auf den Server haben, dann Versuch es mal über die Konsole.

mysql -h host -u user -p
USE datenbankname
SELECT * from inhalt WHERE page = 'seite';

Offe

pitu
08-07-2003, 13:01
Bei frameset musst du auch die richtige DTD verwenden.

http://selfhtml.teamone.de/html/frames/definieren.htm

Gaert
08-07-2003, 16:45
Zusätzlich zu dem was offe bereits erwähnt hat würde ich nach der mysql_query() funktion noch ein "echo myslq_error()" stellen um aufgetretene Fehler auszugeben.
register_globals würde ich auf jeden fall deaktiviert lassen und lieber mit den $_GET und $_POST Arrays arbeiten (mehr zu diesem Thema findest du über die Forumssuche oder auf php.net).

~|=?FrAnZ?=|~
08-07-2003, 20:29
mysql
use lat
SELECT * WHERE page = 'main';

+--------+------+---------------+------+------+
| nummer | page | title | html | nav |
+--------+------+---------------+------+------+
| 4 | main | .:[Test]:. | test | navi |
+--------+------+---------------+------+------+
1 row in set (0.00 sec)


echo mysql_error(); gibt garnichts aus!

quinte17
09-07-2003, 07:03
Original geschrieben von ~|=?FrAnZ?=|~
<?php
if ($title == "") { // <-- stimmt denn $title????
?>
***
<?php
}
else {
echo $data->title;
}
?>


$title steht da was drin? mir scheint da doch dass da eher $data->title stehen wollte... weil sonst kann ich mir des jetzt auch nicht mehr besser vorstellen was du da falsch gemacht hast...

mfg

~|=?FrAnZ?=|~
09-07-2003, 12:23
hab das jetzt geändert geht aber trotzdem nicht.
soll ich es einfach neu schreiben?

~|=?FrAnZ?=|~
09-07-2003, 15:01
noch was:
register_globals = On
in /etc/php.ini

~|=?FrAnZ?=|~
09-07-2003, 15:20
mysql -h ********.homelimux.net -u root
gibt ERROR 2003: Cant´t connect to Mysqlserver on'hostname' <10060>

EDIT: aber auf dem server über ssh funktionierts.
den befehl oben hab mit bei mir dahaim am computer eingegeben und dann kam der error

offe
09-07-2003, 15:22
Hallo,

mach mal eine Datei ausgabe.php mit:


<?php
$db=mysql_connect("********.homelinux.net:3306","*****","***");
mysql_select_db("lat", $db);
$result = mysql_query("SELECT * from inhalt WHERE page = 'main';", $db)
or die ("Ungültige Abfrage: " . mysql_error());
$data=mysql_fetch_object($result);
echo "Der Titel ist:" . $data->title . ":";
?>


was kommt da raus?

Offe

~|=?FrAnZ?=|~
09-07-2003, 15:28
Der Titel ist:.:[Test]:.:

es zeigt den Titel richtig an.
ich hab es auch schon in der navi.php so:
html code:

html:<br>nav:normal<br>title:<br>page:
aber das hat nur nav angezeigt.

EDIT:
wenn ich das mit or die einfüge kommt:
Parse error: parse error, unexpected T_LOGICAL_OR in /etc/httpd/htdocs/test.php on line 5

EDIT2:
in den normalen scripten hab ich es so wie vorgeschlagen mit _GET gemacht:

<?php
$db=mysql_connect("********.homelinux.net:3306","***","***");
mysql_select_db("lat", $db);
$result = mysql_query("SELECT * from inhalt WHERE page = '$_GET['page']';", $db);
$data=mysql_fetch_object($result);
echo mysql_error();
?>

offe
09-07-2003, 15:55
Hallo,

$_GET['page'] nimmst du wo die Variable in der URL (navi.php?nav=bla) übergeben wurde.
$_POST['page'] wo sie von einem Formular übergeben wird.

Probier (bei URL-Übergabe):


$result = mysql_query("SELECT * from inhalt WHERE page = '" . $_GET['page'] . "';", $db);


das müßte gehen (hoffentlich!!!)

Offe

~|=?FrAnZ?=|~
09-07-2003, 16:29
danke!!!!!!! :D :D
jetzt gehts!