PHP Suche Script: Letzten Suchbegriff anzeigen

Chakky

Member of Honour
Suche Script: Letzten Suchbegriff anzeigen [Update mit Script]

Hallo,

ich suche ein PHP Script was mir die letzten Suchbegriffe anzeigt die durch eine Suchmachschine gefunden wurden ist.

hab ein Script/Plugin gefunden für Wordpress aber das auseinander nehmen ohne dabei Wordpress auseinander zu nehmen scheint unmöglich sein und das wollte ich vermeiden.

Hat vielleicht jmd so ein Script rumliegen oder kann mir Tips geben um sowas selbst zu basteln?
 
Zuletzt bearbeitet:
du meinst mit welchen suchbegriff jemand auf deine seite gekommen ist?
naja, dazu musst du mit php einfach nur den referer auseinander nehmen. der ist in $_SERVER["HTTP_REFERER"] gespeichert und behinhaltet ja die suchurl von google. sprich zb

Code:
http://www.google.de/#hl=de&source=hp&q=lustig&btnG=Google-Suche&meta=&aq=f&oq=lustig&fp=c4e59ed0cbc84ef5

da musste dann nur den parameter "q" rausfiltern und du hast deine suchbegriffe. das kannste schön mit urlparse rausfischen.

-> http://de.php.net/manual/de/function.parse-url.php
 
ahhh doing licht angegangen :)

gut dann werd ich mih mal ransetzn und da versuchen was zu basteln :)

danke
 
beachte den aber vorher mit isset() abzufragen, weil der http referer ist soweit ich weiss kein standard und daher nicht immer mitgeliefert. proxys oder browsereinstellung können das mitsenden davon gänzlich unterbinden und du hättest auf ne nichtgesetzte variable zugreifen wolln -> fehler ;D
 
so hab mal was schnell runtergecodet :) kann ja mal jmd drüberschauen (und auch benutzen)

die google.php
PHP:
<?php
/*
*************************************
Die letzten Suchbegriffe von Googlebesucher aufzeichnen
und Anzeigen.
Datum: 27.09.2009
Author: Chakky
Scriptversion: 0.1

Kurze Anleitung:
-in der "sql.php" die Datenbankeinstellungen eintragen
-die bot.sql in die Datenbank einfügen bzw die Tabelle Manuell erstellen

-die Funktion "eintrag_suchergebnisse()" trägt die Daten in die Datenbank ein sofern der Paramter "q=" existiert (von Google)
-sollte im header bzw footer erfolgen der Aufruf

-die Funktion "anzeige_suchergebnisse()" zeigt die letzten 10 Einträge an
-kann überall aufgerufen werden wo es gebraucht wird

Hinweis: Ich schließe jegliche Haftung für Schäden aus.
*************************************
*/


function eintrag_suchergebnisse() 
{
    include('sql.php');
    if (isset($_SERVER['HTTP_REFERER']))
    {
    $domain = $_SERVER['HTTP_HOST'];
    $referer = $_SERVER['HTTP_REFERER'];
    $parser = parse_url($referer,PHP_URL_QUERY);
    $suchbegriff = explode('q=',$parser);
    $suchbegriff = $suchbegriff[1];
    //+ als leerzeichen makieren
    $suchbegriff = str_replace('+',' ',$suchbegriff);
    //alles nach & abschneiden
    $suchbegriff = explode('&',$suchbegriff);
    $suchbegriff = htmlspecialchars(mysql_real_escape_string($suchbegriff[0])); //gegen SQLInjection, XSS
    

    if (!empty($suchbegriff)) //wenn im Referer nicht q= enthalten war überspringe
    {
        
    $ip = gethostbyaddr($_SERVER['REMOTE_ADDR']);
    $query = "INSERT INTO `begriff` (`suchstring`,`IP`,`Domain`) VALUES ('$suchbegriff','$IP','$domain')";
    mysql_query($query);
    echo mysql_error();
    
    }
    
}

return;
}
     
function anzeige_suchergebnisse()

{
    //<-ANZEIGEN DER LETZTEN BEGRIFFE START->
include('sql.php');
$query = "SELECT * FROM `begriff`  ORDER BY `ID` DESC LIMIT 10";
$result = mysql_query($query);
?>
 <b>Die letzten 10 Suchbegriffe: </b>
 <?php
while ($row = mysql_fetch_assoc($result))

{?>
<li>
<?=$row['suchstring'];?>

</li>
<?php
} //schluss while
} //schluss function

?>

die sql.php
PHP:
<?php
$dbhost = "localhost"; // Host meist localholst
$dbname = "bot";  // Datenbankt name
$dbuser = "root";      // User name der Datenbank
$dbpass = "";  // Password der datenbank
$connect = @mysql_connect($dbhost, $dbuser, $dbpass);
@mysql_select_db("$dbname");

und natürlich zu guter letzt die tabelle der datenbank

Code:
-- --------------------------------------------------------

--
-- Table structure for table `begriff`
--

CREATE TABLE IF NOT EXISTS `begriff` (
  `ID` int(11) NOT NULL auto_increment,
  `suchstring` text NOT NULL,
  `IP` text NOT NULL,
  `Domain` text NOT NULL,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 AUTO_INCREMENT=0;

für feedback wäre ich dankbar :)
 
Zuletzt bearbeitet:
Zurück
Oben