php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 11-12-2007, 11:32
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Question Dateiaufruf mit Anker in include

Hallo,

ich möchte aus einer so formulierten include Anweisung:

include $dateien[$_GET['section']];

section enthält den Verweis zu einer HTML Seite, einen Anker mitgeben, wenn das möglich ist? Bekomme aber die Fehlermeldung:

Warning: main(_praxis.htm#5) [function.main]: failed to open stream: No such file or directory in /home/kiefer/diekieferorthopaeden.at/_inhalt.php on line 8

Die Seite mit diesem Namen existiert natürlich nicht, wie kann ich trotzdem zu dem Anker in der HTML Datei springen?

mfg Marco
Mit Zitat antworten
  #2 (permalink)  
Alt 11-12-2007, 11:42
Benny-one
 Master
Links : Onlinestatus : Benny-one ist offline
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
Benny-one ist zur Zeit noch ein unbeschriebenes Blatt
Benny-one eine Nachricht über ICQ schicken
Standard

Mit nem include schon einmal gar nicht. Sowas löst du per JavaScript.
Mit Zitat antworten
  #3 (permalink)  
Alt 11-12-2007, 11:54
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Post

Hallo Benny,

danke für deine Antwort!
Die include Anweisung steuert den Main Bereich der Seite. Das ganze funktioniert recht gut - bis eben auf die Sprungmarken.

Hast du vielleicht einen Anhaltspunkt wo ich da mit JavaScript ansetzen kann?

mfg Marco
Mit Zitat antworten
  #4 (permalink)  
Alt 11-12-2007, 11:56
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Du solltest unbedingt prüfen, was du da includierst. Ansonsten ist das ein sehr offensichtliches Scheunentor.

Den Anker bekommst du weg mit stringfunktionen,
z.B. so
PHP-Code:
$section = (substr($_GET['section'], 0strrpos($_GET['section'], "#"))); 
__________________
ich glaube
Mit Zitat antworten
  #5 (permalink)  
Alt 11-12-2007, 11:58
Benny-one
 Master
Links : Onlinestatus : Benny-one ist offline
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
Benny-one ist zur Zeit noch ein unbeschriebenes Blatt
Benny-one eine Nachricht über ICQ schicken
Standard

Hirn einschalten.

Klar dass der Include funzt, aber du willst ja zu dem Anker springen und das klappt mit nem include nicht.
Mit Zitat antworten
  #6 (permalink)  
Alt 11-12-2007, 12:04
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ich dachte er will seinen neuen Inhalt includieren und gleichzeitig darin zu einem Anker springen.
__________________
ich glaube
Mit Zitat antworten
  #7 (permalink)  
Alt 11-12-2007, 12:08
Benny-one
 Master
Links : Onlinestatus : Benny-one ist offline
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
Benny-one ist zur Zeit noch ein unbeschriebenes Blatt
Benny-one eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von ministry
Ich dachte er will seinen neuen Inhalt includieren und gleichzeitig darin zu einem Anker springen.
ja aber das klappt ja nicht. der anker wird nicht beachtet, also das springen klappt nicht.
Mit Zitat antworten
  #8 (permalink)  
Alt 11-12-2007, 12:17
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Post

... also ich ruf die Seite nach wie vor ohne Anker auf mit include, verstehe, aber wie spring ich dann? Den Anker müsst ich dann mit einer eigenen Variable mitgeben oder so wie ministry gemeint hat vor dem Aufruf wegschneiden und in eine andere Variable einlesen, soweit schnall ich es.

Marco
Mit Zitat antworten
  #9 (permalink)  
Alt 11-12-2007, 12:18
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von Benny-one
ja aber das klappt ja nicht. der anker wird nicht beachtet, also das springen klappt nicht.
Warum nicht?

file1.php:
PHP-Code:
<?php
echo("Parameter: ");
echo isset(
$_GET['test']) ? $_GET['test'] : 'keiner';
include(
"file2.php");
?>
file2.php:
PHP-Code:
<?php
echo("<p>viel Text<br />
viel Text<br />
viel Text<br />
[...]

<a href=\"#\" name=\"blub\">Link mit Anker</a>
</p>"
);
?>
Aufruf:

http://localhost/file1.php?test=bla#blub
__________________
ich glaube

Geändert von ministry (11-12-2007 um 12:23 Uhr)
Mit Zitat antworten
  #10 (permalink)  
Alt 11-12-2007, 12:20
Benny-one
 Master
Links : Onlinestatus : Benny-one ist offline
Registriert seit: Jan 2002
Ort: Fulda
Beiträge: 5.700
Benny-one ist zur Zeit noch ein unbeschriebenes Blatt
Benny-one eine Nachricht über ICQ schicken
Standard



argh, gut, wenn das vorher angeklickt wurde schon. ich dachte er wollte einen include basteln und beliebig an Anker innerhalb der Seite springen, ohne dass der User das vorher ausgewählt hat.
Mit Zitat antworten
  #11 (permalink)  
Alt 12-12-2007, 15:42
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Post

hallo ministry, hallo benny,

danke für euere Hilfe, funktioniert.

Was ich aber einfach von der Logik her nicht verstehe ist, wieso "test=bla#blub" überhaupt dann als Aufforderung zum Springen umgesetzt wird nach dem include des file2.php - ich kann ja sogar das "bla" weglassen, also so: "test=#blub" und es funktioniert ebenso.

Grüße - Marco
Mit Zitat antworten
  #12 (permalink)  
Alt 12-12-2007, 15:53
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

test=bla kannst du natürlich weglassen - du brauchst stattdessen section=[dein bereich zum includieren] .

Prüfst du denn mittlerweile, was includiert wird oder übernimmst du es noch immer einfach so?
__________________
ich glaube
Mit Zitat antworten
  #13 (permalink)  
Alt 12-12-2007, 16:24
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Standard

stimmt, test=bla kann ich auch weglassen, sagenhaft

nein, ich das Durchdenken dieser Problestellung hat meine Zeit bis jetzt in Anspruch genommen. aber jetzt hab ich Zeit über Sicherheit nachzudenken, klar!

Der Inhalt von section wird in einem Array gesucht, bei Übereinstimmung der im Array hinterlegte Seitenaufruf im include angegeben - soweit alles klar.
Wo ist da ein Scheunentor? ist jedes include ein Scheunentor?

ich find deine Hinsweise irre hilfreich, weil sie mir einfach ein wenig die Augen öffnen, Hinweise genügen bei mir eh, bin ja am Lernen interessiert, diesbezüglich nochmals vielen Dank.

Marco
Mit Zitat antworten
  #14 (permalink)  
Alt 12-12-2007, 16:30
ministry
 PHP Junior
Links : Onlinestatus : ministry ist offline
Registriert seit: Jun 2006
Ort: KI / KA
Beiträge: 965
ministry ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Das ist prinzipiell schon richtig, am Anfang hast du das aber nicht so gemacht (sonst hättest du die Fehlermeldung nicht bekommen, dass die Datei nicht existiert).

Entweder schreibst du deine Dateien in so ein Array und prüfst auf Existenz
PHP-Code:
$includes = array('praxis' => 'praxis.htm''wartezimmer' => 'dings.htm' ...);
if (isset(
$includes[$_GET['section'])) include($includes['section']); 
oder du machst es mit einem switch ... case über $_GET['section'] oder ähnlich. Includes sind nur Scheunentore, wenn fremdbestimmt werden kann, was bei dir eingebunden wird.
__________________
ich glaube

Geändert von ministry (12-12-2007 um 16:33 Uhr)
Mit Zitat antworten
  #15 (permalink)  
Alt 12-12-2007, 21:44
MarcoArc
 Newbie
Links : Onlinestatus : MarcoArc ist offline
Registriert seit: Mar 2005
Beiträge: 6
MarcoArc ist zur Zeit noch ein unbeschriebenes Blatt
Post

... öööh - doch, hab ich schon anfänglich so gemacht gehabt

Schuld an der Fehlermeldung war einzig und alleine dieser Versuch gleich im Array den Anker mitzugeben - dadurch entstand die von mir gepostete Fehlermeldung.

der schuldige Eintrag im Array:

$dateien['impressum'] = "_praxis.htm#5";

liebe Grüße - Marco
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 17:27 Uhr.