SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

TYPO3 Kochbuch

TYPO3 Kochbuch zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 10.12.2003, 18:24:42
schmidt schmidt ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 42
schmidt eine Nachricht über ICQ schicken
Problem mit include

Hallo @ll!!

ich habe ein Problem mit den includen, ich habe es bei verschiedenen anderen Datei so gemacht du geht es hier aber nicht und ich finde den Fehler nicht. Ich hoffe mir kann jemand von euch weiter helfen!!

Die Fehlermeldungen sehen wie folgt aus: ( es sind zwei )

Warning: Failed opening 'include/metadb.php?master_url=/project.php' for inclusion (include_path='.:/usr/share/php') in /srv/www/web/geoland/project.php on line 1

Warning: Failed opening 'nav.php' for inclusion (include_path='.:/usr/share/php') in /srv/www/web/geoland/project.php on line 8

was sie bedeuten weiß ich!!

hier der dazugehörige Quellcode:


<?PHP include("include/metadb.php?master_url=".$HTTP_SERVER_VARS["SCRIPT_NAME"]);?>
<?PHP include("include/header.php");?>
<link rel="stylesheet" href="/include/geoland.css" type="text/css">
<table width="780" border="0" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF">
<Tr>
<Td width ="178" valign="TOP" class="body">
<br>
<?PHP include("nav.php");?>
</td>
<td bgcolor="#154A92" width="1">
</td>
<td bgcolor="#FFFFFF" width="6">
<br>
</td>
<Td width ="445" valign="TOP" class="body">
<br>

das sind die ersten 16 zeilen.

ich hoffe auf eure Hilfe!!

mit besten grüssen

schmidt
__________________
Ein Kluger denkt soviel, daß er keine
Zeit zum Reden hat. Ein Dummer redet
soviel, daß er keine Zeit zum Denken
hat.
Mit Zitat antworten
  #2  
Alt 10.12.2003, 18:32:30
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
Hi schmidt

Den ersten Fehler kann ich dir gleich mal beantworten:
Du kannst keine Parameter anhängen!!

Brauchst du ja generell auch ned, da die Variabalen, ja auch in der INCLUDIERTEN Datei vorhanden sind.

In deinen Beispiel kannst du aber auch master_url vorher setzten.
Code:
$master_url = $HTTP_SERVER_VARS["SCRIPT_NAME"];
include("include/metadb.php");
Zu deinem 2ten Fehler:
Anscheinend liegt die Datei nicht in dem selben Verzeichnis, wie der des AUFRUFENDEn Scripts!!

Die Includierte Datei übernimmt die Pfade des Aufrufenden!!!

Es kann auch sein, das die Datei deswegen ned gefunden wird, weil du vorher einen Fehler verursachst.
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #3  
Alt 10.12.2003, 18:38:27
schmidt schmidt ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 42
schmidt eine Nachricht über ICQ schicken
zu zweitens er liegt im dem richtigen Vezeichnis!! bei der zeile zwei macht er es ja!!

das andere muß ich mal ausprobieren!! die metadb.php soll ja nur die Daten aus der DB ziehen die zu der url passen!! deshalb habe ich sie dahinter übergeben bei anderen datein mit der IP funzt es auch nur hier ohen IP nicht!! Ich kann die IP hier nicht nutzen da es sich um virtuelle Hosts handelt!! und dann spricht er nicht die richtige website bzw. ordner an!!

Danke erstmal für die schnelle hilfe!! schreibe dann wenn es darn gelegen hat!!

habe es probiert jetzt liest er zuviel Daten aus der DB aus und kommt damit nicht klar der neue Fehler lautet:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/web/geoland/include/metadb.php on line 15

__________________
Ein Kluger denkt soviel, daß er keine
Zeit zum Reden hat. Ein Dummer redet
soviel, daß er keine Zeit zum Denken
hat.

Geändert von schmidt (10.12.2003 um 18:42:18 Uhr)
Mit Zitat antworten
  #4  
Alt 10.12.2003, 18:53:01
Benutzerbild von DaddyCool
DaddyCool DaddyCool ist offline
Anfänger
 
Registriert seit: Dec 2003
Ort: Peine / Germany
Beiträge: 62
Zitat:
Original geschrieben von schmidt
zu zweitens er liegt im dem richtigen Vezeichnis!! bei der zeile zwei macht er es ja!!
In Zeile zwei deines Scripts wird eine datei aus dem Verzeichnis include eingebunden. bei der Datei in Zeile 8 geht PHP davon aus das sie im gleichen Verzeichnis wie das Script selbst liegt. liegt die Datei nav.php ebenfalls in dem verzeichnis include muss die Zeile so lauten

PHP-Code:
<?PHP include("include/nav.php");?>

Zitat:

Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in /srv/www/web/geoland/include/metadb.php on line 15
Du hast einen falschen Resource Index an mysql_num_rows() übergeben. Das hat nichts damit zu tun das zuviel ausgelesen wird. Poste einmal zeile 1 bis 16 aus der Datei include/metadb.php.
Mit Zitat antworten
  #5  
Alt 10.12.2003, 18:54:41
schmidt schmidt ist offline
Anfänger
 
Registriert seit: Oct 2003
Beiträge: 42
schmidt eine Nachricht über ICQ schicken
bitte schön!!

<?
$url_search = $_GET['master_url'];
$db_handle = mysql_connect ("localhost","","")
or die ("Verbindungsversuch ist fehlgeschlagen!");

$erfolg = mysql_select_db ("")
or die ("Angegebene Datenbank ist nicht vorhanden!");

$query_handle = mysql_query

("select id, url, title, author, publisher, copyright, revisit, keywords, description, abstract, page_topic, robots, language, int_ext from meta where url = ('$url_search')",$db_handle);

$result = mysql_query($query);

$zeilen = mysql_num_rows ($query_handle);
for ($i = 0; $i<$zeilen;$i++)

{
// for start elemente def


ja die nav liegt im selben verzeichnis deshalb versteh ich das ja nicht!!

danke für deine Hilfe
__________________
Ein Kluger denkt soviel, daß er keine
Zeit zum Reden hat. Ein Dummer redet
soviel, daß er keine Zeit zum Denken
hat.
Mit Zitat antworten
  #6  
Alt 10.12.2003, 19:00:38
chris17 chris17 ist offline
Senior Member
 
Registriert seit: Apr 2003
Alter: 57
Beiträge: 1.236
Hallo zusammen,

die Variable kommt ja jetzt nicht mehr per GET, wenn Du Nevs Vorschlag übernommen hast...

-> $url_search = $_GET['master_url'];

Grüsse
Mit Zitat antworten
  #7  
Alt 10.12.2003, 19:10:39
Benutzerbild von DaddyCool
DaddyCool DaddyCool ist offline
Anfänger
 
Registriert seit: Dec 2003
Ort: Peine / Germany
Beiträge: 62
Zitat:
Original geschrieben von schmidt
$erfolg = mysql_select_db ("")
or die ("Angegebene Datenbank ist nicht vorhanden!");
Bei mysql_select_db(); solltest du unbedingt eine gültige Datenbank angeben. Sonst weiß MySQL nicht aus welcher Datenbank du Daten haben willst. Den rückgabewert brauchst du nur auffangen wenn du ihn auch wirklich nutzt.

Zitat:

$query_handle = mysql_query("select id, url, title, author, publisher, copyright, revisit, keywords, description, abstract, page_topic, robots, language, int_ext from meta where url = ('$url_search')",$db_handle);
Kleiner Tip:
SQL befehle (SELECT, FROM, ORDER BY, WHERE, LIKE etc.) immer groß schreiben, erhöht die Lesbarkeit ungemein.

Änder die zeile einmal wiefolgt ab:
PHP-Code:
$query_handle mysql_query("SELECT id, url, title, author, publisher, copyright, revisit, keywords, description, abstract, page_topic, robots, language, int_ext FROM meta WHERE url = '$url_search'");
if (
mysql_errno()) {
    echo(
mysql_error());
    exit;

Zitat:

$result = mysql_query($query);
Was für ein Query soll hier abgesetzt werden??

Geändert von DaddyCool (10.12.2003 um 19:22:40 Uhr)
Mit Zitat antworten
  #8  
Alt 10.12.2003, 19:22:11
Benutzerbild von DaddyCool
DaddyCool DaddyCool ist offline
Anfänger
 
Registriert seit: Dec 2003
Ort: Peine / Germany
Beiträge: 62
Zitat:
Original geschrieben von chris17
Hallo zusammen,

die Variable kommt ja jetzt nicht mehr per GET, wenn Du Nevs Vorschlag übernommen hast...

-> $url_search = $_GET['master_url'];

Grüsse
Sinnvoll wäre in diesem Fall

$url_search = $HTTP_SERVER_VARS["SCRIPT_NAME"];
Mit Zitat antworten
  #9  
Alt 10.12.2003, 20:30:06
Benutzerbild von Nev
Nev Nev ist offline
Member
 
Registriert seit: Feb 2002
Ort: Österreich / Wien
Alter: 43
Beiträge: 992
@DaddyCool

Wenn das Script nicht nur per Include, sondern auch einzeln zur Verfügung stehen soll, wird es mit beiden Versionen ned funken (deine und meine).

Dann könnte man es so machen.

vor dem include:
Code:
$url_search = $HTTP_SERVER_VARS["SCRIPT_NAME"];
in der metadb.php

Code:
if (!is_set($url_search)) {
  $url_search = $_GET["master_url"];
}
So sind dann beide Fälle abgedeckt.


PS: Ich freue mich, einen alten Freund von mir, hier zu treffen.
Viel Spass noch DaddyCool.

Freu mich auf deine Beiträge
__________________
Cu
Nev the XxX (Sven-Marcus Maderbacher)

Master of www.Burnworld.de
www.Nev-hilft.de die Seite für den Coder
Mit Zitat antworten
  #10  
Alt 10.12.2003, 21:27:25
Benutzerbild von Matt
Matt Matt ist offline
Member
 
Registriert seit: Mar 2002
Ort: Port 80, localhost-city, 127/0/0/1
Beiträge: 878
hm, um noch das rätsel mit den angehängten GET variablen in den includes zu lösen (tut mir leid, hab mir jetzt nicht den ganzen thread durchgelesen, kann sein, dass es schon jemand erwähnt hat)

prinzipiell geht das mit dem anhängen von get informationen, aber nur wenn man sich damit die informationen einer url hohlt:

beispielsweise:

require("http://www.google.com/?q=selfphp");

ginge problemlos - denn da verwaltet die anfrage nicht das lokale dateisystem sondern der fremde server - und der weiss, was GET informationen sind und was nicht.

Wenn man allerdings eine lokale datei aus dem dateisystem öffnet, kann man nicht einfach get parameter dranhängen, denn dann wäre der dateiname falsch - woher soll das dateisystem denn auch wissen, dass man gerade erwartet, dass es sich wie ein webserver verhält?

Folglich: Entweder man greift mit get variablen beispielsweise auf:

http://127.168.0.1/file.php?bla=ha

(127.168.0.1 ist die loopback addresse - somit wird die anfrage an den eigenne pc geschickt - dasselbe wie wenn man auf nem testserver zu hause http://localhost/file.php?a=b in den browser eingibt)
aber dann bekommt man auch die antwort des Webservers zurück: nämlich das bereits geparste script - reines html...

hm.. ach ja, erwähnen sollte man noch, dass die includes über http erst in der php.ini aktiviert werden müssen, bevor sie funktionieren...
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 10:58:40 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt