ChatKult FORUM · Next 1.0.9
Forenübersicht » [ Technik & Multimedia ] » Hilfe - mal wieder #&!argh-PHP

Hilfe - mal wieder #&!argh-PHP

Hallöchen alle zusammen -

ich brauche einen Rat, bzw. den ultimativen Tip :-)

Ich muss gerade eine Webseite, die schon seit geraumer Zeit auf dem Server x läuft, auf dem Server y zum Laufen bringen und ins Englische übertragen. Hinzu kommt, dass die Seite auf dem CMS "Webedition" (url)www.webedition.de(/url) basiert. 95%25 sind schon ok, aber jetzt hänge ich an einer Stelle fest. Es soll eine Liste von Referenzen (Firmen mit Standort) angezeigt werden, bei der man nach den Anfangsbuchstaben der Ortsnamen filtern kann und eine Suchfunktion gibt%27s auch. Auf der alten, der deutschen Seite, werden die Infos dazu aus einer MySQL-Datenbank ausgelesen. Die englische Seite soll nun auf die deutsche Liste zugreifen - wenn also zukünftig etwas in der Referenzenliste geändert wird, soll%27s automatisch auf der englischen Seite aktualisiert sein.

Folgende Probleme stellen sich nun:

1. Es ist kein direkter Zugriff auf die deutsche Datenbank von einem anderen Server aus erlaubt - da sagt der Host "Neenee!". Ich kann mich also nicht einfach vom neuen Server aus mit den Zugangsdaten für die deutsche DB einloggen und mir holen, was ich brauche. Bitten und Betteln beim Host (Schlund) hat nicht gefruchtet ;-)

2. Die Referenzseite ist wie folgt aufgebaut:

abisz.php holt sich die Seitennavigation, den Header, den Footer, erstellt das Pulldownmenü mit den Buchstaben A-Z und included dann noch die Datei inc_abisz_liste.php, welche die Auflistung der Referenzen erzeugt.
Jetzt habe ich dann schonmal auf der englischen Seite einfach die inc_abisz_liste.php der deutschen Seite included, das klappt auch wunderbar - aber das Filtern nach Anfangsbuchstaben und die Suche funktionieren nicht mehr. Es liegt an dem Link, der im Pulldown hinterlegt ist. Das Menü wird wie folgt generiert (nicht über die we-Tags wundern, das sind vordefinierte Tags vom CMS - und dank dieses Forums musste ich den Code verhunzen s-)):

[we:form id="688" method="get"] Anmerkung: das Dokument mit der ID ist die Datei abisz.php - die Parameter werden also an sie übergeben
[td nowrap][b] Zeige Ort mit Anfangsbuchstabe [/b]
[select name="buchstabe" size="1" onChange="document.location=this.options[this.selectedIndex].value"]
[we:ifNotWebEdition]
[?php
// Menueeintraege erzeugen:
if (isset($HTTP_POST_VARS[sucheort])) echo "[option value=""]bitte wählen ...[/option]";
for ($i = 65; $i [ 91; $i++) {
echo "[option value="/de/referenzen/abisz.php?choice=" . chr($i) . """;
if ($HTTP_GET_VARS[choice] == chr($i) && $sucheort == NULL) echo "selected";
echo "]" . chr($i) . "[/option]
";
}
?]
[/we:ifNotWebEdition]
[/select][/td]
[/we:form]

Nach Erzeugung des Menüs steht also im Quelltext
[option value="/de/referenzen/abisz.php?choice=A"]A[/option]
[option value="/de/referenzen/abisz.php?choice=B"]B[/option]
[option value="/de/referenzen/abisz.php?choice=C"]C[/option]
[option value="/de/referenzen/abisz.php?choice=D"]D[/option]
blablabla

Und dieser Link, der bei value angegeben ist, ist nun das Problem - so verweist er auf den neuen, englischen Server, da kann es schlecht funktionieren. Ändere ich den Link dahingehend, dass er auf den alten deutschen Server verweist, dann wird ja leider die komplette deutsche Seite aufgerufen und das Ergebnis nicht wie gewünscht ins englische Layout eingebunden ...

3. Ein iframe, der einfach die entsprechenden deutschen Seiten einbindet, wäre mir die liebste, da einfachste Lösung, ist aber nicht gern gesehen, da dann zwangsläufig ein Scrollbalken im Layout auftaucht.


Wie schaffe ich es, dass mir die deutsche Liste auf der englischen Seite angezeigt wird, und dass dann auch das Filtern und Suchen funktioniert? *heul* Der Webedition-Support sagt "Das geht nicht." (Jetzt keine blöden Kommentare zum Support, ich habe selten einen so hilfsbereiten und bemühten erlebt! :-)) :-( Es muss aber irgendwie gehen ...

mir fehlt da jetzt ein wenig der zusammenhang:

der Link im Menü (option blabla) ist korrekt nur das /de/... stört bzw. ist der Link nicht richtig gesetzt? Alles andere (/abisz.php?choice=A) ist richtig?

Wenn das so ist dann wäre eine Möglichkeit am Anfang den %27value%27 nur auf "abisz.php?choice=A" lauten zu lassen und dann beim auswerten des Formulars in php den link zusammenbauen

$value = "hatetepe://url.zum.server/verzeichnis/wo/" . $value

oder vielleicht



$pre_url = "hatetepe://was.weiss.ich/verzeichnis/";
for ($i = 65; $i [ 91; $i++) {
echo "[option value="" . $pre_url . "abisz.php?choice=" . chr($i) . """;
if ($HTTP_GET_VARS[choice] == chr($i) && $sucheort == NULL) echo "selected";
echo "]" . chr($i) . "[/option]
";
}


oder lieg ich jetzt völlig falsch?
Nein, das ist nicht die Lösung ;-)

Also ... das de-Verzeichnis ist auf beiden Servern (liegt daran, dass vom deutschen Server ein Backup gemacht wurde und auf den neuen Server eingespielt wurde, da sind die Verzeichnisstrukturen gleich geblieben - macht erstmal nichts, kann später noch geändert werden).

Wenn ich den Link so lasse, wie er ist, also

/de/referenzen/abisz.php?choice=A

dann steuert der Browser die Datei auf dem englischen Server an - das kann aber nicht funktionieren, da die Liste vom Script generiert wird, das auf dem _deutschen_ Server liegt (ich habe es ja included).

Wenn ich den Link ändere und den deutschen Server ansteuere, also

hatetepe://www.x.de/de/referenzen/abisz.php?choice=A

dann habe ich das Problem, dass die _deutsche_ abisz.php aufgerufen wird, nebst deutscher Seitennavigation, deutschem Header, etc. pp.


Ich muss es irgendwie hinbekommen, dass beim Auswählen des Buchstabens der Parameter an den deustchen Server übermittelt wird und ... ach man, warte mal, es ist heiss, mein Kopf raucht, ich muss mir das eben nochmal selbst vor Augen führen:

Da ist die englische Datei abisz.php, die macht das -

englischen Header einfügen
englische Seitennavigation einfügen
A-Z-Pulldownmenü erzeugen
englische inc_abisz_liste.php einfügen (die erzeugt die Liste durch Datenbankabfrage)
englischen Footer einfügen

Jetzt habe ich folgende abisz.php auf dem englischen Server -

englischen Header einfügen
englische Seitennavigation einfügen
A-Z-Pulldownmenü erzeugen
deutsche inc_abisz_liste.php einfügen
englischen Footer einfügen

Ich müsste es irgendwie schaffen, dass beim Auswählen des Buchstaben der Parameter an den deutschen Server übergeben wird, das Resultat aber im englischen Layout angezeigt wird .......
Das Grundproblem ist doch, dass die Datenbank nur vom deutschen Server abgefragt werden kann, ja?

Also muß die inc_abisz_liste auf dem deutschen Server liegen, ja?

Alle anderen Seiten liegen auf dem originalserver in der jeweiligen Sprache, ja?

und müssen auf die jeweilige inc_abisz_liste zugreifen, ja?

Wenn Sie alle Fragen mit %27ja%27 beantworten konnten dann kopieren Sie die englische abisz_liste unter anderem Namen auf den deutschen Server und icluiren (%27wuuahh was ein Wort) vom englischen Server zu dieser

:-shy
Im Moment kann ich nur mit "Boah, man ey, was weiss denn ich, ja, kann sein" antworten *fg* Ich verordne mir erstmal eine Pause, kümmere mich um unkomplizierte Dinge wie Wäsche waschen, Kochen und ähnliches - und dann geh ich deinen Vorschlag nochmal genau durch und teste ihn aus :-p
Danke Echo, du bist wieder eine große Hilfe, selbst wenn%27s nicht die Lösung sein sollte ;-) :-love
ich hole mir in Ruhe nun meinen Feierabend-Cappu und kämpfe dann noch ne Runde mit unserer Telefonanlage. Falls mir der Geistesblitz heute bei meiner Gassirunde kommt lass ich den hier.

Ich liebe solche kniffligen Probleme, einfach kann jeder. Ich brauche diese Herausforderung. Jeden Tag aufs neue. So gesehen sollte ich Dir dankbar sein s-)
Die Lösung vom Echo hört sich doch ganz vernüntig an...
hats denn nun geklappt, und wie?

P.S. ich brauch mal wieder etwas Futter für mein Ego s-)
Der Punkt steht noch auf der To-Do-Liste - jetzt sollte ich mich erstmal darum kümmern, dass die englischen Inhalte eingepflegt werden und die Datenstruktur angepasst wird. Damit bin ich aber fast durch, dann kommt wieder die dämliche Liste dran - ich meld mich dann noch ;-)
So, ich melde mich mal wieder. Und - es hat nicht funktioniert. ABER: ich denke trotzdem, dass du den richtigen Rat gegeben hast, das Problem ist nur, dass innerhalb der einzelnen Dateien nicht direkte Dateinamen mit Pfadangabe eingebunden werden, sondern IDs (also, es wird z.B. die Navigation als navi.php eingebunden, die wiederum selbst auch andere Dokumente einbindet über ihre jeweiligen IDs, die vom CMS angelegt wurden) - das hat wieder eine Menge Fehlermeldungen produziert :-/ Und nun noch ein ABER: das ist nicht mehr mein Problem - der eigentlich zuständige Webmaster, der auch die deutsche Seite aufgebaut hatte, ist wieder aus dem Urlaub zurück und darf sich nun selbst an dem Problem versuchen ;) Sollte nun aber nicht mehr ein so großes Unterfangen sein, er muss wohl "nur" für diese Liste Alternativ-Dateien anlegen, die nicht auf IDs verweisen, sondern die Dateien per Pfad einbinden. Oder so ;)

:-love noch einmal an dich, Echo!