Eigene Suchmaschine

wideline

Grünschnabel
Hallo,

lag wohl am Browsercache, hatte jetzt nochmal den gesamten Code vorweg entfernt, also nur den PHP-Code wie zuvor gepostet in der index.php gelassen und siehe da nun ging es doch, hatte mich schon bei dem Probelauf gewundert warum er dennoch den Header zuvor angemekert hat.

Also problem ist definitiv der header welcher aber statisch immer da sein sollte, zumindest hätte ich es gerne so ... bisher hatte es immer gereicht im CONTENT-Bereich zu arbeiten, hier funktionieren auch einfache Datenbank Ein- und Ausgaben Problemlos.

Ist es sehr aufwendig die Ausgaben nur im CONTENT-Bereich durchzuführen ?

Header, sowie Footer binde ich normalerweise per include ein. Content kommt, falls nicht statisch gewünscht, per Datenbankausgabe. Was mich natürlich nun wurmt ist, das das ganze Vorhaben in (m)einem Kontaktformular funktioniert. Liegt wohl durch den übermittelten Header im Suchleisten PHP-Script
PHP:
header("Location: {$url}");
kann man dies anderwertig gestalten ?
(wie bereits erwähnt am liebsten nur in dem CONTENT-Bereich.)

Vielen Dank für die bisher geleistete Hilfestellung.

Gruß

Andy
 

wideline

Grünschnabel
Hallo,

das scheint ja reichlich kompliziert zu sein, schade das man die API von Google nicht so einfach erweitern kann, das hätte mir so manche nacht, sowie folgende nächte erspart :( Ich verstehe derzeit nur Bahnhof :( werde jetzt erstmal die suchleiste in den header packen und dann weiter versuchen das ganze im CONTENT-Bereich wieder zu geben ...

Gruß

Andy
 

kuddeldaddeldu

Erfahrenes Mitglied
Na ja, das ist halt ein klassisches Problem, wenn man sich nicht an das EVA-Prinzip hält...

Du könntest die If-Abfrage ja ganz an den Anfang packen (mit dem kompletten Rest der index.php im else-Zweig). Du müsstest nur darauf achten, dass Du in keiner anderen inkludierten Datei gleichnamige Formularfelder hast.

LG
 

wideline

Grünschnabel
Hallo kuddeldaddeldu,

da es eine Suchleiste ist, sollte das nicht das Problem sein, da diese Formularfelder auf der gedamten Seite nur einmal vorkommen werden (im globalen Header).

Ich hab jetzt mal auf den Link von Loomes hin, den php code zwischen


PHP:
ob_start();
...
...
...
ob_end_flush();


gepackt, ist mit sicherheit keine elegante Lösung, aber so kann man


PHP:
header("Location: {$url}");


so belassen, wobei ich ja letztendlich den output nicht im header haben möchte (dort ist der code nun hingewandert) sondern eben im CONTENT-Bereich.

PHP:
    $_GET[$url];
    echo $url;

Das hatte ich schon probiert, spuckt aber wie erwartet nur die URL als string aus,
gut hieraus könnte ich einen Link bauen, man nähert sich also so langsam dem ziel ;) Aber nochmal klicken muss sicherlich nicht sein, oder ? :p

EDIT: Ach nee ein Link will ich ja gar nicht :( dann wären wir ja wieder bei einer neue seite ...
Bleibt noch zu erwähnen das er den String mit "echo" an der gewünschten Stelle ausgibt.

Gruß

Andy
 
Zuletzt bearbeitet:

kuddeldaddeldu

Erfahrenes Mitglied
:confused: Wovon redest Du da? Ich verstehe kein Wort...

Ich hatte Dich so verstanden, dass Du eine index.php hast, die Deine Seite dynamisch zusammenschustert, indem sie header, menu, content und footer inkludiert, wobei content halt abhängig von einem GET-Parameter ausgewählt wird. Jetzt hast Du dieses Suchscript im Content mit der Abfrage und der Weiterleitung. Dummerweise kann das aber nicht gehen, da zumindest ein Header in der Regel vor dem Contentbereich steht. Also trennst Du diese Abfrage jetzt aus dem Suchscript heraus und setzt sie in die index.php ganz an den Anfang direkt unter den PHP-Open-Tag. Wobei Du in den else-Zweig den kompletten Code der index.php einschliesst. So hast Du Dein Formular weiter im Content-Bereich und alles ist gut.

LG
 

wideline

Grünschnabel
Hallo kuddeldaddeldu,

ich wollte Dich nicht verwirren, passt auch erstmal alles, bleiben wir beim bisherigen Code, welcher im else-part verankert ist, das Forumular ist im CONTENT Bereich,
nur die Ausgabe geschieht auf einer seperaten Seite (neuer TAB) ich möchte gerne dieses Formular erhalten und darunter die Ergebnisse ausgeben lassen
(ähnlich wie bei der standard Google API) also wie folgt:


Code:
// HEADER

// CONTENT start
Formular mit Suchfeld 

--> Ausgabe nach dem klick auf "Suchen"

// CONTENT ende

// FOOTER


Meine Seite ist wie folgt strukturiert (vereinfacht dargestellt):


PHP:
<!-- header //-->
<div id="header">
<?php include('header.php'); ?>
</div>
<!-- header_eof //-->

<!-- content //-->
<div id="menu">
<?php include('menu.php'); ?>
</div>
<div id="content">
hier steht der Inhalt der jeweiligen Seite
</div>
<!-- content_eof //-->

<!-- footer //-->
<div id="footer">
<?php include('footer.php'); ?>
</div>
<!-- footer_eof //-->


Die Variante mit Get hatte ich auch schon (vereinfacht dargestellt):


PHP:
<!-- content //-->
<div id="menu">
<?php include('menu.php'); ?>
</div>
<div id="content">
<?php
		if($_GET['page'] == "Startseite")	{include("start.php"); 	}	
else 	if($_GET['page'] == "Kontakt") 	{include("kontakt.php");	}	
else 	if($_GET['page'] == "Impressum") 	{include("impressum.php");}	

else {include("start.php");	}

?>
</div>
<!-- content_eof //-->


Geht also nur noch um die Ausgabe der Suchleiste, der Rest funktioniert, dank der bisher geleisteten Hilfe wunderbar.

Gruß

Andy
 
Zuletzt bearbeitet:

kuddeldaddeldu

Erfahrenes Mitglied
Hi,

nur die Ausgabe geschieht auf einer seperaten Seite (neuer TAB) ich möchte gerne dieses Formular erhalten und darunter die Ergebnisse ausgeben lassen
(ähnlich wie bei der standard Google API)

tja, dann weiß ich auch, warum ich die ganze Zeit nicht verstanden habe, von was für Ausgaben Du eigentlich sprichst.

Du musst genauer lesen. Es ging in diesem Thread nie darum, die Suchergebnisse in der eigenen Seite eingebettet darzustellen, sondern nur um eine reine Weiterleitung zu einer ausgewählten Suchmaschine (was ein header('location: url'); halt so macht).

Du hast deine URL zwar gespeichert, aber was du damit machen möchtest, hast du nicht gesagt. Habe daher ein einfaches Forwarding vorgeschlagen. Ein Einsatz der APIs von zB Google & Amazon zur dynamischen Einbindung in die eigene Seite sind dann schon wieder andere Themen, die um einiges komplexer werden.

Ich fürchte, der Eiertanz hier war umsonst. Wenn Du das eingebettet haben willst, musst Du Dir die einzelnen APIs anschauen.

LG
 

wideline

Grünschnabel
Hallo kuddeldaddeldu,

nein war nicht umsonst, schließlich funktioniert es ja, im Gegensatz zu vorher.
Das war das primäre Ziel, auch mit neuen TAB.

Vielen Dank hierfür ! :)

Das mit der eingebetten Ausgabe, wäre lediglich eine Verfeinerung gewesen, ich bin erstmal mehr als zufrieden, es tut mir leid wenn ich undankbar rüber kam...

Man halt halt immer wieder neue Ideen im Kopf, welche man irgendwann mal umsetzen möchte. Ich muss mich manchmal selber ein wenig bremsen ;)

Das API von Google hatte ich mir ja schon vorgenommen, hier scheint es aber keine möglichkeit über Radiobuttons zu geben, hatte mich hier auch schon durch das Forum, FAQ und Doku durchgeschlagen, Filterung klappt mittlerweile in allen Varianten, aber eben immer nur über Google selbst. Vielleicht haben API's andere Anbieter hier mehr Spielraum, bisher habe ich mir nur das von Google vorgenommen. Das API ist ja schon recht mächtig, aber kann wohl keine anderen Anbieter aufnehmen. Wird dann eine neue Baustelle, vielleicht finde ich ja hier irgendwo auch hilfreiche Ansätze :)

Vielen Dank nochmals !

Gruß

Andy