Eigene Fehlerseite

fawad

www.linkinfo.at
Hallo an Alle!
Ich hätte eine Frage!
Ich habe alle Bilder und PDF-Datenblätter von meinem Online-Shop an meinen Lieferant Server weitergleitet.
Das Problem ist, Manche Produkte haben keine PDF-Datenblätter und manche haben keine Bilder, wenn sie keine Bilder haben, dann zeigt im Internet Explorar eine großes rotes X.
Das habe ich schon mit folgender Script erledigt;
<img src="http://xy/jpg/{$PRODUCTS_EAN}.jpg" border="0" onError="this.onerror=null;this.width=0;this.height=0;" />
es funktioniert einwandfrei

ABER
Wenn sie keine PDF-Datenblätter haben, dann kommt es eine Hersteller Fehlerseit mit Logo usw., also sehen meine Kunden das, von wem ich meine Produkte kaufe und das möchte ich nicht haben.
Ist das möglich, dass ich so einen Script erstellen, entweder eine eigene Fehlerseite anzeigt werden, oder wenn die Produkte keine PDF-Datenblätte haben nicht im Online-Shop anzeigen werden.

z.B diese Produkt hat a PDF-Datenblatt
http://www.shopnetworld.de/product_info.php?info=p2210_50PC51 PLASMA-TV.html

und diese Produkt hat es NO PDF-Datenblatt
http://www.shopnetworld.de/product_info.php?info=p19142_Dragon NaturallySpeaking Std..html

Unten vor button "kaufen" steht PDF-Datenblatt klicken Sie drauf

Ich hoffe jemand kann mir Helfen
MfG
Nemani
 
Zuletzt bearbeitet:
Also bei deinen Beispielen kommt bei mir was wenn ich auf das Dokoment klicke.

Zwar kein PDF aber es kommt ne info. Das mit der eigenen Fehlerpage währe einfacher wenn du die daten auf deinem Server hättest.

Aber vielleicht ein Ansatz: Speicher doch einfach ob ein Produkt eine Beschreibung / Bild hat inder Datenbank dann bist du auf der Sicherenseite.

Gruß
Timo
 
Danke für deine Antwort!
Ich habe leider keine FTP-Zugangsdaten.
Ich darf nur weiter verlinken
Kann man so etwas programmieren, dass wenn a Datenblatt gibts, dann im Shop anzeigen lassen und wenn es nicht gibt, sollte nicht anzeigen

MfG
Nemani
 
Zuletzt bearbeitet:
Hallo,

falls bei deinem PHP allow_url_fopen aktiviert ist, kannst du z.B. mit
der Funktion fopen("http://zielurl.xyz/dateiname.pdf","r"); auf die Datei zugreifen und wenn das dann fehlschlägt ist die Datei nicht vorhanden, worauf du dann einfach den Text "Kein Datenblatt vorhanden" o.Ä. ausgeben könntest.
Das heißt aber, dass bei jedem Aufruf der Seite eine Verbindung zum Zieldokument hergestellt wird, egal ob nun vorhanden oder nicht - was evtl. zu recht langen Ladezeiten führen kann.
Ich schließe mich da Timo Brandstätters Vorschlag an, von vornherein in der Datenbank zu hinterlegen, ob das Dokument (am Besten auch Bild) existiert oder nicht, denn die Datenbank muss zur Ausgabe der Produktdaten ja eh abgefragt werden, also keinerlei Mehrbelastung.
Ob ein .pdf oder Bild existiert kannst du, wenn ein neues Produkt in die Datenbank aufgenommen wird, per Hand überprüfen und entsprechend eintragen oder an dieser Stelle den Zugriffstest mittels fopen() unterbringen, was dann nur einmal passieren muss.

MfG
 
Mal noch ne Frage: Wo holst du die Produktdaten her? Und warum Hostest du die Bilder und Datenblätter nicht einach selbst?

Gruß
Timo
 
Hallo!
Danke nochmal an alle
weil ich keine Ftp-Zugangsdaten habe und ich kann nicht 45.000 Produkte händisch einstellen

Ich habe es mit fopen("http://zielurl.xyz/dateiname.pdf","r"); ausprobiert, aber es hat leider nicht funktioniert!!

php mit "if und else" kann man nicht etwas machen oder vielleicht mit Javascript?

MfG
Nemani
 
Zuletzt bearbeitet:
Hallo nochmal, hab dir mal was hingepfriemelt - sollte gehn
wenn nicht, schau mal nach ob du allow_url_fopen ermöglicht hast,
das findest du z.B. in der Ausgabe von phpinfo();
PHP:
if($handle = fopen("http://62.134.62.160/pdf/4062263.pdf","r")){
	$buffer = fgets($handle, 1024);
	$buffer = substr($buffer,0,4);
	fclose($handle);
	if($buffer === '<!--'){
		echo 'Kein pdf gefunden';
	}
	else{
		echo 'gültige Datei';
	}
}
else{
	echo 'Kein pdf gefunden';
}

MfG
 
Danke dir
Ich habe es erstellt, aber leider hat es nicht geklappt!!
Die Datei Typ ist html, vielleicht deswegen funktioniert es nicht
Ich kann leider nicht in .php Umwandeln , weil dann muss ich d ganze Shop ändern und ich kenne mich nichts aus.

<?php
if($handle = fopen("http://62.134.62.160/pdf/{$PRODUCTS_EAN}.pdf","r")){
$buffer = fgets($handle, 1024);
$buffer = substr($buffer,0,4);
fclose($handle);
if($buffer === '<!--'){
echo 'Kein pdf gefunden';
}
else{
echo 'gültige Datei';
}
}
else{
echo 'Kein pdf gefunden';
}
?>

MfG
 
Hm, eigentlich sollten auch irgendwo php-Scripte auf deinem Server liegen,
denn die Templates von deinem Shopsystem müssen ja von irgendwoher "gefüttert" werden!
Der PHP-Code sollte dann da mit rein.
Du kannst des Weiteren mittels einer Datei namens ".htaccess" in der die Zeile
"AddType application/x-httpd-php php php4 php3 html htm" steht, deinen PHP-Interpreter dazu bewegen, auch html-Dateien zu parsen, also darin befindlichen PHP-Code auszuführen!
-> Du müsstest nichts in .php umwandeln, sondern .html wird wie .php behandelt
Aber schau erstmal ob du nicht irgendwo in den vorhandenen .php-Dateien die gesuchte Stelle findest. Und gib den Variablen in dem Codeschnipsel Namen, die garantiert nirgends anders in dem Script vorkommen, dass du dir da nichst zerlegst ;)

MfG
 
Hallo!

Leider es funktioniert nicht, kommt folgende fehler:

Fatal error: Smarty error: [in digitalblue/module/product_info/product_info_v1.html line 56]: syntax error: unrecognized tag 'echo' (Smarty_Compiler.class.php, line 580) in /var/www/web9/html/includes/classes/Smarty_2.6.10/Smarty.class.php on line 1088

das problem ist, dass ich mich nichts auskenne, wo in welch. ordner was liegt usw.

vielleicht kann ich mit html oder PHP ein PDF Dokument auf meiner Seite öffnen lassen, so dass es auf meiner Seite eingebunden angezeigt wird. Also der Nutzer sollte es nicht downloaden müssen.

so etwas villeicht gehts

Vielen Dank
MfG
 
Zurück