• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Hyperlink (Menübutton) ausblenden wenn Linkziel nicht verfügbar

Heavy-Dee

Mitglied
Hallo zusammen,

Ich arbeite an einer Info-Page für unser Firmennetz. (php u. SQL) Die Hauptseite erfordert kein Login und ist in unserem Intranet für jeden zugänglich.
Auf dieser Seite befindet sich eine Menüleiste mit div. Buttons (Hyperlinks).

Die Linkziele sind z.T. auch Dokumente in verschiedenen Netzordnern.
Da nicht alle Benutzer die Freigaben für sämtliche Netzlaufwerke haben, führen verschiedene Links für den ein oder anderen Benutzer zu keinem Ergebnis. (Das ist so gewollt!)
Gibt es eine Möglichkeit die Buttons für die es kein Ziel gibt (wg. fehlender Zugriffsrechte) unsichtbar zu machen ?

Benutzer A (Zugriff auf Datei in Netzordner A) -> Link A
Benutzer B (Zugriff auf Datei in Netzordner A u. NetzLw B) -> Link A u. Link B
Benutzer C (Zugriff auf Datei in Netzordner A u. NetzLw C) -> Link A u. Link C

Menüleite für Benutzer A: |Link A|
Menüleite für Benutzer B: |Link A||Link B|
Menüleite für Benutzer C: |Link A||Link C|

Menübuttons werden wie folgt in einer php-datei angelegt und mittels Include-Anweisung im der Index.php aufgerufen.

<a class='button' href="\\191.xxx.xx.xx\Abt_IV$\Bilanz_Abt_IV.pdf"=><span>&nbsp;Abt IV&nbsp;</span></a>


Wäre nett wenn mir jemand helfen könnte !!!

Gruß
Heavy-Dee
 
Werbung:
Du müsstest entweder beim Laden der Seite oder über einen Automatismus per PHP oder eine andere Programmiersprache prüfen, ob die Links noch verfügbar sind. Mit HTML alleine geht das nicht.
 
Werbung:
Ein paar Zeilen jQuery sollten da genügen:
Code:
if($('#linkziel').length < 1) {
  $('#menübutton').hide();
}

Mit PHP würden mir zwei Ansätze einfallen:

Entweder die Links gar nicht erst erstellen, oder eine CSS-Klasse als Variable durchreichen, die nur dann belegt wird, wenn das Linkziel nicht existiert

HTML:
<button id="menübutton" class="<?=$class; ?>">Klick Mich </button>
 
Ein paar Zeilen jQuery sollten da genügen:

Sicher, dass jQuery auch die Verfügbarkeit eines Linkziels prüft? ;)

wie muss so ein automatismus in php aussehen?

Wenn es sich um ein Linkziel auf dem selben Server handelt, müsste file_exists() eine passende Funktion sein. Die prüft, ob die Zieldatei tatsächlich existiert.

Wenn es sich um eine URL eines entfernten System handelt, müsste man fsockopen() oder get_headers() verwenden, siehe:
URL mit PHP auf Existenz überprüfen | Vektorkneter
 
Werbung:
mit dem html-Code bzw der CSS-Klasse kann ich erst mal nichts anfangen, aber ich werde mal ein herum probieren.

Erst mal danke für die Hilfe
 
Ich habe es mal mit file_exists() probiert, aber ich bekomme kein echo auf die Abfrage:

PHP:
<?php
echo file_exists("\\191.xxx.xx.xx\Abt_IV$\Bilanz_Abt_IV.pdf");
?>
um meinen Button zu steuern sollte nachfolgender Code doch funktionieren, oder???

PHP:
<?php file_exists("\\191.xxx.xx.xx\Abt_IV$\Bilanz_Abt_IV.pdf") ?><a class='button' href="\\191.xxx.xx.xx\Abt_IV$\Bilanz_Abt_IV.pdf"> <span>&nbsp;Abt IV&nbsp;</span></a>

ändere ich nun den Dateinamen in "
\\191.xxx.xx.xx\Abt_IV$\Bilanz_Abt_IV2.pdf" sollte der Button nicht mehr sichtbar sein. -> ist er aber noch.

Hat jemand nen Tipp für mich?
 
Zuletzt bearbeitet:
Wie oben gesagt, ist file_exists() für lokale Dateien gedacht. Du hast einen Netzwerkpfad angegeben. Wenn Du den so hast, müsstest Du also nicht file_exists() sondern (wie oben gesagt) fsockopen() nehmen.
 
Werbung:
Mit fsockopen() komme ich irgendwie auch nicht weiter, so wie ich das verstehe, überprüft die Funktion nur die Verbindung und nicht eine vorhandene Datei in einem Netzlaufwerk.
Wahrscheinlich ist das zu hoch für mich.
:cry:
Aber trotzdem Danke für die Hilfe
 
Zurück
Oben