php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
Include problem


 
PHPbeginner
30-07-2003, 14:25 
 
hi ich bins mal wieder :p

ich hab eine index.php gemacht die verschiedene seiten includen soll. und zwar die footer.php, config.php, header.php und in der mitte kommt dann eine php mit dem inhalt. also so sieht meine index.php aus:

<?php
session_start();
include("header.php");
include("config.php");

if(isset($content)) {
include("$content.php");
}

else {
include("news.php");
}

include("footer.php");
?>

also eigentlich sollte er wenn man normal die index.php öffnet die news.php includen. das macht er dann auch aber wenn ich jetzt index.php?content=members eingebe erscheint weiterhin die news.php. lokal funktioniert es aber sobald ich es auf den internet server lade gehts nicht.
kann mir hier jemand helfen? danke schon mal im vorraus

 
wahsaga
30-07-2003, 14:28 
 
hmpf ... schon wieder einer der von register_globals=off noch nichts gehört hat.

benutze $_GET['content'] statt $content.

 
PHPbeginner
30-07-2003, 14:41 
 
ja es tut mir leid wenn ich noch nicht so gut php kann und ich noch am lernen bin. du kannst von einem anfänger nicht verlangen dass er schon von anfang an alle php befehle kennt. trotzdem danke für deine antwort aber ich komme doch nicht weiter. jetzt meldet er nämlich das hier:
Warning: Failed opening '.php' for inclusion (include_path='.:/usr/local/lib/php') in /daten/web/status/page/index2.php on line 7

 
Wotan
30-07-2003, 14:46 
 
Das besagt nur das an der Angegebenen Stelle die Datei nicht zufinden ist. Du musst schon die Pfade richtig mitgeben oder aber du benutz die Rewrite_engine dafür.

 
CrazyPip
30-07-2003, 14:50 
 
hi


<?php
session_start();
include "header.php";
include "config.php";

if(isset($_GET['content'])) {
include $_GET['content'].".php";
}

else {
include "news.php";
}

include "footer.php";
?>



wenn das nicht geht musst du wahrscheinlich in deiner php.ini die register_globals auf off stellen - welche php-version benützt du? (nur aus interesse...)

cya CrazyPip

 
PHPbeginner
30-07-2003, 14:51 
 
ich glaube ich bin zu dämlich dafür :( meine index sieht jetzt mal so aus:
<?php
session_start();
include("header.php");
include("config.php");

if(isset($_GET['content'])) {
include("$content.php");
}

else {
include("news.php");
}

include("footer.php");
?>

ich glaube das problem liegt hier: include("$content.php");
aber ich will die variable ohne ".php" an die index.php weiterleiten

 
Wotan
30-07-2003, 14:57 
 
Dann mach es doch auch!:teach:
<?php
session_start();
include("header.php");
include("config.php");

if(isset($_GET['content'])) {
include($_GET['content'].".php");
}

else {
include("news.php");
}

include("footer.php");
?>

 
PHPbeginner
30-07-2003, 15:00 
 
ups den eintrag haben wir wohl beide gleichzeitig gschrieben :)
jetzt funktioniert es ! vielen dank euch allen und sry das ich so begriffsstutzig bin :D

 
Wotan
30-07-2003, 15:03 
 
Nicht Begriffsstutzig sondern das sind PHP-Grundlagen. Du solltest lieber mal mit einem guten PHP-Buch anfangen.

 
PHPbeginner
30-07-2003, 15:09 
 
ja ich hab mir bücher gekauft aber hab nichts gefunden. ah ja kannst du mir noch eine frage beantworten? :confused: wie kann ich denn noch eine 2. variable übergeben also z.b. index.php?content=moreinfo&id=1 ? weil jetzt bringt er immer diese fehlermeldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /daten/web/status/page/moreinfo.php on line 8


hoffe ich nerve euch nicht :(

 
Wotan
30-07-2003, 15:15 
 
zeig mal +-2 zeilen vom Script

 
PHPbeginner
30-07-2003, 15:23 
 
<?

$dbh = mysql_connect($server, $user, $pass);
$bool = mysql_select_db($dbname, $dbh);
$sql = "SELECT * FROM members WHERE id = $id ";
$result = mysql_query($sql, $dbh);

while($members = mysql_fetch_array($result, MYSQL_ASSOC))
{
ab zeile acht reklamiert er. das wäre hier das fetch_array. ich glaube das problem ist das die variable id nicht übergeben wird. denn wenn ich sie oben im script manuel eingebe funktioniert es.

 
Wotan
30-07-2003, 15:25 
 
<?

$dbh = mysql_connect($server, $user, $pass);
$bool = mysql_select_db($dbname, $dbh);
$sql = "SELECT * FROM members WHERE id = ".$_GET['$id']." ";
$result = mysql_query($sql);

while($members = mysql_fetch_array($result))
{
Und schon mal so versucht???

 
PHPbeginner
30-07-2003, 15:35 
 
hmm ja es kommt immernoch die gleiche meldung :confused:

 
Wotan
30-07-2003, 15:50 
 
Irgendwie verstehe ich jetzt nicht ganz was du machen willst???

 
PHPbeginner
30-07-2003, 15:55 
 
also in der moreinfo.php soll er einen datensatz aus der db laden der eine bestimmte id hat. diese variable id will ich per link an die moreinfo.php weitergeben also: ?content=moreinfo&id=1

$dbh = mysql_connect($server, $user, $pass);
$bool = mysql_select_db($dbname, $dbh);
$sql = "SELECT * FROM members WHERE id = ".$_GET['$id']."";
$result = mysql_query($sql);

while($members = mysql_fetch_array($result))
{

bei der variable $sql soll er dann den datensatz laden der in diesem fall die id 1 hat. aber irgendwie gibt er die id trotzdem nicht weiter und ich weis nicht weshalb.

 
Wotan
30-07-2003, 16:02 
 
echo $_GET['id']."<br>";
$dbh = mysql_connect($server, $user, $pass);
$bool = mysql_select_db($dbname, $dbh);
$sql = "SELECT * FROM members WHERE id = '".$_GET['$id']."'";
$result = mysql_query($sql);

while($members = mysql_fetch_array($result))
{
Was kommt dabei raus???

 
PHPbeginner
30-07-2003, 16:04 
 
juhui es funktioniert! bin gerade selbst drauf gekommen!
".$_GET['$id']." ist falsch!
".$_GET['id']." so ist es richtig

danke fü deine hilfe

 
wahsaga
30-07-2003, 17:43 
 
Original geschrieben von PHPbeginner
wie kann ich denn noch eine 2. variable übergeben also z.b. index.php?content=moreinfo&id=1 ? weil jetzt bringt er immer diese fehlermeldung:

Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in /daten/web/status/page/moreinfo.php on line 8

das eine düfte mit dem anderen nur bedingt zu tun haben.

also, mache bitte die üblichen debug-ausgaben:

1. lass dir mal mit echo ausgeben, wie der fertig erzeugte query-string aussieht, _bevor_ du ihn mit mysql_query ausführst.

2. hänge an mysql_query() ein
or die(mysql_error());
an.

 
Wotan
30-07-2003, 18:01 
 
@wahsaga
Du brauchst nicht immer Thread beantworten die sich schon erledigt haben.

 
wahsaga
30-07-2003, 18:09 
 
Original geschrieben von Wotan
@wahsaga
Du brauchst nicht immer Thread beantworten die sich schon erledigt haben.
bleib locker ... ich hatte die antwort-seite schon geöffnet und zwischen durch was anderes gemacht, und anschliessend ohne das mir bewusst war wie viel zeit schon vergangen war, geantwortet.
wenn ich die weiteren antworten gesehen hätte, hätte ich's mir natürlich verkniffen ;-)


p.s.: ausserdem dürfte der tipp mit dem ausgeben der query mit echo und anwendung von mysql_error() ihm auch für die zukunft weiterhelfen können.

 
Wotan
30-07-2003, 18:15 
 
Bin locker! Mir war nur mehrfach aufgefallen das du immer noch Antworten musst wenn das Thema bereits abgeschloßen ist. Mehr wollte ich damit nicht zu Ausdruck bringen. Und ich wollte dir damit nicht auf die Füsse tretten. :grin:


Alle Zeitangaben in WEZ +2. Es ist jetzt 13:24 Uhr.