SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Das Zend Framework

Das Zend Framework zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > HTML, CSS und JavaScript Help!
Hilfe Community Kalender Heutige Beiträge Suchen

HTML, CSS und JavaScript Help! Hier gibt es Hilfe zu HTML, CSS und JavaScript Problemen

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 26.11.2006, 17:16:56
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Alter: 66
Beiträge: 352
Jürg eine Nachricht über Skype™ schicken
Download und Hyperlinks zählen

Guten Tag
Mann kennt diese Methode.
Ein Link wird in HTML so eingebunden: ...link.php?url=www.xy.xy...
Damit gelangt man auf die Seite link.php. Dort wird der Link gezählt und auf die eigentliche URL weitergeleitet.
Das funktioniert ganz gut, ist aber nicht sehr schön.
Nun versuche ich das mit JavaScript.
HTML:
PHP-Code:
<a onclick="StatDatei('1')" href="http://www.xy.xy"/> 
Aber was muss nun in das JavaScript?
PHP-Code:
<script language="javascript1.2" type="text/javascript">
<!--
function 
StatDatei(id)
{
     ?
}
//-->
</script> 
Es müsste ja nur die Datei link.php aufgerufen, aber nicht angezeigt werden.
Danke
__________________
www.zudila.ch
Mit Zitat antworten
  #2  
Alt 26.11.2006, 20:28:53
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Download und Hyperlinks zählen

Zitat:
Zitat von Jürg Beitrag anzeigen
Das funktioniert ganz gut, ist aber nicht sehr schön.
Aber immer noch schöner als mit JavaScript.

Zitat:
Zitat von Jürg
Aber was muss nun in das JavaScript?
Was genau soll dein JavaScript nun tun?
Mit Zitat antworten
  #3  
Alt 26.11.2006, 21:50:45
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Alter: 66
Beiträge: 352
Jürg eine Nachricht über Skype™ schicken
AW: Download und Hyperlinks zählen

Da JS soll nur die Datei link.php aufrufen, der übergebene Wert wird verarbeitet und fertig.
__________________
www.zudila.ch
Mit Zitat antworten
  #4  
Alt 27.11.2006, 09:13:31
Benutzerbild von xabbuh
xabbuh xabbuh ist offline
SELFPHP Guru
 
Registriert seit: May 2003
Beiträge: 7.187
AW: Download und Hyperlinks zählen

Dafür müsstest du dir dann wohl einen HTTP-Request zusammenbasteln und diesen mittels AJAX an dein PHP-Script senden. Falls du dabei Schwierigkeiten hast, wird dir aber jemand anderes weiterhelfen müssen.
Mit Zitat antworten
  #5  
Alt 27.11.2006, 14:31:42
Benutzerbild von Jürg
Jürg Jürg ist offline
Junior Member
 
Registriert seit: May 2003
Ort: CH Zürich
Alter: 66
Beiträge: 352
Jürg eine Nachricht über Skype™ schicken
AW: Download und Hyperlinks zählen

Das ist schon das, was ich möchte.
AJAX wäre dann ja ebenfalls JavaScript!
Aber wie könnte es gehen?
Geht es überhaupt? Denn so etwas habe ich nirgends gefunden.
__________________
www.zudila.ch
Mit Zitat antworten
  #6  
Alt 27.11.2006, 15:58:03
Andes Andes ist offline
Member
 
Registriert seit: Jun 2006
Ort: Bayern
Alter: 56
Beiträge: 930
AW: Download und Hyperlinks zählen

Wenn ich das jetzt richtig verstanden habe. Möchtest du, wenn jemand auf den Link klickt, eine JS-Funktion aufgerufen wird die dann ein Request an ein PHP-Script sendet und dieses dann den Klick zählt. Wenn alles richtig gelaufen ist soll dann die URL, die in href steht, aufgerufen werden.
Das würde schon gehen. Bloß ist der Aufwand zum Verhältnis des Nutzens etwas groß.
Zudem hast du keine Garantie dass es zu 100% funktioniert. Wenn Javascript beim Client abgeschaltet ist, wird nichts mehr gezählt.
Dein Link müsste dann auch etwas anders aussehen. Sonst würde die Funktion und Link gleichzeitig aufgerufen werden.

Code:
<script>
function machwas(v) {
	
//Request an Server
	return false;
}

<a onclick=”return machwas(this.href)” href=http://url>XXX</a>
So würde die URL nur aufgerufen werden, wenn JS abgeschaltet ist.

Hier mal ein Script(e) die ein Request senden und empfangene Daten verarbeitet.
Das PHP Script gibt nur den GET-Wert zurück.

Datei: xmlReq.js
Code:
/**
 * Classe für XMLHttpRequest
 * mit Browser Unterscheidung
 */
ajaxRequest = function(u, f, m, b, h, s) {
	//Standart-Werte
	this.url		= u;					//Zieladresse für den Request
	this.wState		= f || function() { };	//Funktion für Daten-Weiterverarbeitung und Stausüberwachung
	this.method 	= m || "GET";			//Methode, die für den Request verwendet wird
	this.body		= b || null;			//Inhalt, der bei einem Request gesendet wird
	this.headers	= h || false;			//zusätzliche Header-Angaben als Array(key/val)
	this.sync		= s || true;			//Art der Übertragung, Standart asynchrone Übertragung
	this.abortReq	= false;
	
	//XMLHttpRequest initialisieren
	this.req = (window.XMLHttpRequest) ? new XMLHttpRequest() : ((window.ActiveXObject) ? new ActiveXObject("Microsoft.XMLHTTP") : false);
	
	//Verarbeitung der Serveranfrage
	this.doRequest = function() {
		this.req.open(this.method,this.url,this.sync);
		//zusätzlich HeaderInformationen anfügen
		if(this.headers) {
			for(var i=0; i<this.headers.length; i+=2)
			{
				this.req.setRequestHeader(this.headers[i],this.headers[i+1]);
			}
		}
		
		//Anfrage senden
		this.req.onreadystatechange = this.wState;
		(!this.abortReq) ? this.req.send(this.body) : this.req.abort();
	}
}

var ajaxSend = function(u, m, f) {
	//u = Zieladresse für den Request
	//m = Methode, die für den Request verwendet wird
	var fworks = f || function() { };
	
	//Neues Object definieren und URL und Methode übergeben
	xmlhttp = new ajaxRequest(u, null, m);
	
	//Status prüfen und Daten zu Weiterverarbeitung übergeben
	xmlhttp.wState = function () {
		//Div Box für Ladezustand einbleden
		var elm = document.getElementById("load");
		elm.style.display = "block";
		//Status prüfen, ob abgeschloßen
		if(xmlhttp.req.readyState == 4) {
			//prüfen ob angeforderte Daten enthalten sind
			if(xmlhttp.req.status == 200) {
				//prüfen welche Document-Art zurück geliefert wurde
				var r = xmlhttp.req;
				var c = xmlhttp.req.getResponseHeader("Content-Type");
				if(c.indexOf("xml") >-1) var xml =r.responseXML;
				else var xml = r.responseText;
				//Daten an Funktion übergeben
				fworks(xml);
			}
			else {
				//Header-Status auslesen
				c = xmlhttp.req.status;
				//Fehlermeldung ausgeben
				err = new errAusg(c);
				err.eInfo();
			}
			//Ladezustand ausblenden
			elm.style.display = "none";
		}
	}
	xmlhttp.doRequest();
}

var errAusg = function(c) {
	this.err = c || 204;
	this.error = "Es ist ein Fehler aufgetreten!\nWiederholen Sie bitte Ihre Auswahl.";
	if(this.err == 404) this.error = "Seite nicht erreichbar.";
	if(this.err == 205) this.error = "Keine Inhalte gefunden.";
	this.eInfo = function() { alert(this.error); }
}
Datei: count.js
Code:
/**
 * Class um URL aus zu lesen und entsprechende Daten (PHP-Seite) an die Request-Class zu übergeben
 */
counter = function() {
	var verw;
	
	//Function zum Weiterleiten nach erfolgreichem Request
	var weiter = function(v) {
		alert(v+" "+verw);
		location.href = verw;
	}
	
	//Funktion um URL aus zu lesen
	this.zaehle = function(v) {
		verw = v;
		ajaxSend('count.php?c=1', null, weiter);	//Request aufrufen
												//PHP-Seite die Daten verarbeiten soll
												//Methode GET oder POST (GET = Standard)
												//Funktion die nach erfolgreichem Requset aufgerufen werden soll
		return false;							//damit der Link nicht ausgeführt wird
	}
}
Datei: link.html
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
<script src="xmlReq.js" type="text/javascript"></script>
<script src="count.js" type="text/javascript"></script>
<script type="text/javascript">
zaehler = new counter();
</script>
</head>

<body>
<a onclick="return zaehler.zaehle(this.href)" href="http://selfphp.de">Web</a>
<div id="load"><img src="loading.gif" width="16" height="16" border="0" /></div>
</body>
</html>
Datei: count.php
PHP-Code:
if(!empty($_GET['c']) && is_numeric($_GET['c'])) echo $_GET['c'];
else 
header('HTTP/1.0 205 No Content'); 
In der PHP-Datei kannst du nun die Daten als Text, JSON oder XML ausgeben. Oder nur einen Header senden. Damit der Request erfolgreich war und JS zur angegeben URL weiterleitet.
__________________
Grüße Andes
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Download mit Code versehen jonne PHP Entwicklung und Softwaredesign 4 15.05.2006 14:55:32
Hyperlinks innerhalb von Text in db sputnik72 PHP Grundlagen 3 08.03.2006 22:11:03
Download begrenzen khm PHP Grundlagen 1 12.12.2004 13:38:40
Scriptabbruch durch user bei download Small-Talk PHP Grundlagen 7 14.09.2004 22:39:10
File Download snoopy2004 PHP Grundlagen 1 26.01.2004 22:33:18


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:27:33 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt