kostenloser Webspace werbefrei: lima-city


Zeichenkettenfunktionen/URL-Funktionen & Zeit

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    v***********e

    Hi!

    :confused::confused::confused:

    Ich hab folgendes Problem: Ich habe eine REFERER-Url (zB http://www.lima-city.de/board/php-mysql/action:post), die wird auch so angezeigt. wie kann ich es machen, dass nur http://www.lima-city.de/, ohne irgendwas dahinter, angezeigt wird?

    Hier der bisherige Code:

    <?
    	if ($ipad == "MEINE IP")
    {
    	return;
    }
    else
    {
    
    	$rmax = 10; 
    	$rdatei = "referer.txt"; 
    	$newref = $_SERVER['HTTP_REFERER'];
    	$ipadr ="$REMOTE_ADDR"; 
    	
    	$newrefhost = parse_url($newref, $PHP_URL_HOST);
    	
    	// ------ Daten einlesen ------ 
    	$rdaten = file($rdatei);
    	$rx = count($rdaten); 
    	if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } 
    	
    	// ------ neue Daten schreiben ------ 
    	if (isset($newref)) { 
    	  $handle=fopen($rdatei,"w"); 
    	  fputs($handle,$newref."\r\n"); 
    	for ($x=0; $x<$bis; $x++) { 
    	   $rdaten[$x] = chop($rdaten[$x]); 
    	   fputs($handle,$rdaten[$x]."\r\n"); 
    	   } 
    	fclose($handle);
    	}
    	
    	// ------ Daten nur ausgeben ohne schreiben------ 
    	for ($x=0; $x<$bis; $x++) { 
    		if ($rdaten[$x] == "")
    		{
    			echo '<tr><td class="w" colspan="2">Direct</td></tr>';
    		}
    		else
    		{
    			echo '<tr><td class="w" colspan="2"><a href="'.$rdaten[$x].'" target="_blank">'.$rdaten[$x].'</a></td></tr>';
    		}
    	} 
    	
    }
    ?>


    Kann mir jemand helfen?

    Hier der Link, wo es hin soll und wies bis jetzt aussieht http://visualwebzone.lima-city.de/forum/

    :wave:

    Beitrag zuletzt geändert: 9.8.2009 10:16:15 von visualwebzone
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. c****s

    Lasse folgende Regex über die URL laufen:

    preg_match ("/(.*:\/\/)*([^\/\?]*)(.*)/", $url, $matches);


    Danach steht
    in $matches [0] die komplette URL,
    in $matches [1] das Protokoll soweit vorhanden,
    in $matches [2] die Domain,
    in $matches [3] alles was hinter der Domain kommt.

    Ein Beispiel:
    $url = "http://www.lima-city.de?auto=12313";
    preg_match ("/(.*:\/\/)*([^\/\?]*)(.*)/", $url, $matches);

    liefert
    Array ( [0] => http://www.lima-city.de?auto=12313 [1] => http:// [2] => www.lima-city.de [3] => ?auto=12313 )


    Beitrag zuletzt geändert: 9.8.2009 10:46:08 von census
  4. census schrieb: Lasse folgende Regex über die URL laufen:
    [...]

    Andernfalls tut es auch die PHP-eigene Funktion parse_url()... :wink:
    http://de.php.net/manual/de/function.parse-url.php



    gruß
    ferdinand24

    Beitrag zuletzt geändert: 9.8.2009 10:49:48 von ferdinand24
  5. Autor dieses Themas

    v***********e

    Vielen Dank!

    Es funktioniert! :thumb:

    Hier, wie ich es eingebaut habe!

    <?
    if ($ipad == "MEINE IP")
    {
    	return;
    }
    else
    {
    
    	$rmax = 10; 
    	$rdatei = "referer.txt"; 
    	$newref = $_SERVER['HTTP_REFERER'];
    	$ipadr ="$REMOTE_ADDR"; 
    	
    	$newrefhost = parse_url($newref, $PHP_URL_HOST);
    	
    	// ------ Daten einlesen ------ 
    	$rdaten = file($rdatei);
    	$rx = count($rdaten); 
    	if ($rx>$rmax) { $bis = $rmax; } else { $bis = $rx; } 
    	
    	// ------ neue Daten schreiben ------ 
    	if (isset($newref)) { 
    	  $handle=fopen($rdatei,"w"); 
    	  fputs($handle,$newref."\r\n"); 
    	for ($x=0; $x<$bis; $x++) { 
    	   $rdaten[$x] = chop($rdaten[$x]); 
    	   fputs($handle,$rdaten[$x]."\r\n"); 
    	   } 
    	fclose($handle);
    	}
    	
    	
    	// ------ Daten nur ausgeben ohne schreiben------ 
    	for ($x=0; $x<$bis; $x++) { 
    		if ($rdaten[$x] == "")
    		{
    			echo '<tr><td class="w" colspan="2">Direct</td></tr>';
    		}
    		else
    		{
    			preg_match ("/(.*:\/\/)*([^\/\?]*)(.*)/", $rdaten[$x], $matches);
    			echo '<tr><td class="w" colspan="2"><a href="'.$matches[0].'" target="_blank">http://'.$matches[2].'</a></td></tr>';
    		}
    	} 
    	
    }
    ?>


    Aber hab noch ne Frage:

    Kann man anzeigen, wie lange der User auf der Seite war?

    :wave::wave:
  6. visualwebzone schrieb:
    Aber hab noch ne Frage:

    Kann man anzeigen, wie lange der User auf der Seite war?

    Mit PHP geht das ohne weiteres nicht, da normalerweise das Script nur beim Laden der Seite urch den Interpreter läuft.
    "Normalerweise", ja. Du könntest mittels AJAX alle paar Sekunden die aktuelle Zeit eines jeden Benutzers speichern lassen und wüsstest dann fast genau, wie lange er dort war.
    Ansonsten geht sowas auch mit JavaScript, du kannst es aber schlecht dann mittels PHP speichern, da JS ja clientseitig ausgeführt wird und du nach dem SChließen des Fensters keine Möglichkeit mehr hast, ein PHP-Script aufzurufen.




    gruß
    ferdinand24

    Beitrag zuletzt geändert: 9.8.2009 11:01:00 von ferdinand24
  7. Autor dieses Themas

    v***********e

    aber man kann doch dann per ajax die zeit auf den server schicken und dann zusammen mit der url in einer xml-datei speichern oder in der datenbank! Is zwar nicht ganz einfach, aber müsste doch möglich sein?
  8. visualwebzone schrieb:
    aber man kann doch dann per ajax die zeit auf den server schicken und dann zusammen mit der url in einer xml-datei speichern oder in der datenbank! Is zwar nicht ganz einfach, aber müsste doch möglich sein?

    Wie ich schon sagte, ja :wink:
    ferdinand24 schrieb:
    "Normalerweise", ja. Du könntest mittels AJAX alle paar Sekunden die aktuelle Zeit eines jeden Benutzers speichern lassen und wüsstest dann fast genau, wie lange er dort war.


    Das müsste wohl konkret so aussehen, dass du für jede Session einen neuen Datensatz in der Datenbank anlegen musst. Zu Beginn der Session speicherst du die Startzeit und setzt dann mittels XML-Request alle paar Sekunden die aktuelle Zeit als Endzeit. Solange der User auf der Seite ist, wird die Zeit ja ständig aktualisiert und du hast letztendlich, wenn der User wieder weg ist, die Start- und Endzeit seiner Aktivität, die du dann auswerten kannst.

    Du könntest das notfalls auch mit einem unsichtbaren IFrame machen, der sich automatisch neu lädt. Das wäre die einfachere Methode, die so gut wie kein JavaScript oder gar XML-Requests braucht :wink:



    gruß
    ferdinand24

    Beitrag zuletzt geändert: 9.8.2009 11:12:53 von ferdinand24
  9. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!