BRAINSTORMING PHP/SQL/HTML/JS/CSS Ihr habt eine Idee, aber keinen genauen Ansatz? Diskutiert mit anderen Usern des Forums über eure Gedankengänge um evtl. hilfreiche Ideen zu bekommen!
Normale Fragen bitte weiterhin in die entsprechenden Foren! |
 |
|

16-12-2006, 18:18
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
meist gelesene oder geklickte Artikel
Hallo Leute, ich würde gerne in meinen Seiten anzeigen können wie oft eine Seite angeklickt oder gelesen wurde, irgendwas in der Richtung, ich habe aber keine Ahnung wie ich es machen soll, bitte gibt mir Hinweise.
|

16-12-2006, 18:25
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
bei jedem aufruf nen counter in der DB hochzählen und diesen später auswerten.
*move* nach BS.
|

16-12-2006, 18:39
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
hi TobiaZ, ich kenne kleine tutorials wo Counter mit .txt Dateien erstellt werden, muss ich auch in die Richtung denken oder muss es eine andere Art Counter sein.
|

16-12-2006, 18:44
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
ja, z.b.
Einfach irgendwas wo die anzahl der aufrufe (also ein zahlenwert) gespeichert und erhöht werden kann.
|

16-12-2006, 20:45
|
stf]Daywalker
Registrierter Benutzer
|
|
Registriert seit: Sep 2003
Beiträge: 183
|
|
in der artikel db ein neues feld anlegen, zB: counter
dann in der aufruf-php-seite
mysql_query("UPDATE artikel SET counter=counter+1 WHERE id='...");
das wars schon
|

21-12-2006, 19:28
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
Zitat:
Original geschrieben von stf]Daywalker
in der artikel db ein neues feld anlegen, zB: counter
dann in der aufruf-php-seite
mysql_query("UPDATE artikel SET counter=counter+1 WHERE id='...");
das wars schon
|
Hi, danke für die Hilfe!!
Eine sehr einfache und leichte Lösung, gefällt mir :-), kann man da aber noch eine Reloadsperre rein machen, also für den Fall das der Besucher die Seite öfter lädt, wäre doch sicher Sinvoll sowas ne?
|

21-12-2006, 19:40
|
xManUx
Registrierter Benutzer
|
|
Registriert seit: Feb 2004
Beiträge: 833
|
|
Kleiner Zusatz: Vielleicht ist dir das gegen Kiddie-Push-Missbrauch nützlich:
PHP-Code:
function anti_push($ses,$id,$array=FALSE) {
IF ( !is_array($_SESSION[$ses]) ) {
$_SESSION[$ses] = array();
}
IF ( !in_array($id, $_SESSION[$ses]) ) {
array_push($_SESSION[$ses], $id);
return true;
} else {
return false;
}
}
__________________
Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
sondern mit den Augen das Manual zu lesen.
|

21-12-2006, 19:52
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
Also recht herzlichen Dank erst mal für deine Hilfe !!
Ich fasse mal zusammen wie ich das Script verstanden habe:
1. function prüft ob variable $_SESSION[$ses] kein Array ist, ist dies der Fall wird ein Array $_SESSION[$ses] gebildet.
2. function prüft ob in array $_SESSION[$ses] Variable $id ist, ist dies der Fall wird true andernfalls False zurückgegeben.
Also ich kann das Script mir zwar mit Hilfe des PHP Manuels erklären, aber ich verstehe nicht wie ich es in mein Script oben einbauen kann als Reloadsperre. Ich will dir also nicht deine kostbare zeit rauben, aber es wäre sehr nett von dir wenn du versuchen würdest mir es zu erklären.
|

21-12-2006, 19:54
|
TobiaZ
 Moderator
|
|
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
|
|
na,
if(anti_push(...))
die(du hast schon gevoted);
|

21-12-2006, 19:59
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
Zitat:
Original geschrieben von TobiaZ
na,
if(anti_push(...))
die(du hast schon gevoted);
|
Oh, mist ich versteh schon einen Anfänger wie mich der zu wenig Ahnung hat von PHP will man hier nicht haben, ich kanns ja immerhin verstehen, mich würds auch nerven wenn jeden tag die gleichen Fragen kommen, sorry.
|

21-12-2006, 20:01
|
xManUx
Registrierter Benutzer
|
|
Registriert seit: Feb 2004
Beiträge: 833
|
|
Zitat:
Original geschrieben von lamoe
Oh, mist ich versteh schon einen Anfänger wie mich der zu wenig Ahnung hat von PHP will man hier nicht haben, ich kanns ja immerhin verstehen, mich würds auch nerven wenn jeden tag die gleichen Fragen kommen, sorry.
|
Wäre dem so, wäre dein Topic mit 0 Replays
Allerdings, wer lernen will: learning by doing
Einfach ein bisschen herumspielen.
__________________
Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
sondern mit den Augen das Manual zu lesen.
|

21-12-2006, 21:12
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
Ich hab jetzt was gebaut das glaub ich den Vorschlag ganz nahe kommt.
1. prüfe ich mit einer mysql query ob die aktuelle datei schon in der tabelle liegt, ist dies nicht der fall wird erst mal der Dateiname, session id und counter Wert 1 in die tabelle geschrieben.
2. wenn die aktuelle seite schon in der tabelle ist, prüfe ich ob die session id in der tabelle die gleiche ist wie die aktuelle im browser, wenn sie nicht gleich sind, wird der counter um eins erhöt und die aktuelle session gespeichert, wenn sie gleich sind passiert nichts.
Aber irgendwie kann das ja nicht klappen so, da die session id immer gleich ist für eine Sitzung, wird jede folgende Seite die man lädt nicht mehr gezählt auch wenn es eine andere Seite ist, weil die prüfung der session id immer gleich ergibt.
Wie kann man es besser machen?
|

21-12-2006, 21:41
|
xManUx
Registrierter Benutzer
|
|
Registriert seit: Feb 2004
Beiträge: 833
|
|
Wie sieht dein Code aus? Php-Tag benutzen.
__________________
Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
sondern mit den Augen das Manual zu lesen.
|

21-12-2006, 21:46
|
lamoe
Junior Member
|
|
Registriert seit: Jun 2005
Beiträge: 87
|
|
Hier der Code, ich habe in jetzt allerdings etwas geändert, ich habe jetzt nämlich jeder session id noch den aktuellen Dateinamen angehängt und denke das ich so es jetzt doch noch hinbekomme das nun jede Seite gezählt wird, aber es ist im ganzen keine so gute Lösung denke ich mal
PHP-Code:
$dit = mysql_query("SELECT `dateiname` FROM `counter` WHERE `dateiname`='".$_SERVER['PHP_SELF']."'"); echo mysql_error(); $dit_ = mysql_num_rows($dit); //echo $dit_;
if($dit_ > 0) {
$sit = mysql_query("SELECT `sid` FROM `counter` WHERE `dateiname`='".$_SERVER['PHP_SELF']."'"); $roww = mysql_fetch_array($sit);
$ss = $_SESSION["sid"].$_SERVER['PHP_SELF'];
if($roww['sid'] != $ss) {
mysql_query("UPDATE `counter` SET `count`=count+1, `sid`='".$_SESSION["sid"]."".$_SERVER['PHP_SELF']."' WHERE `dateiname`='".$_SERVER['PHP_SELF']."'"); echo mysql_error();
}
}
else {
$sql = "INSERT INTO `counter`
(count,
dateiname,
sid,
datum)
VALUES (
'1',
'".$_SERVER['PHP_SELF']."',
'".$_SESSION["sid"]."".$_SERVER['PHP_SELF']."',
NOW())";
mysql_query($sql);
}
|

22-12-2006, 10:23
|
xManUx
Registrierter Benutzer
|
|
Registriert seit: Feb 2004
Beiträge: 833
|
|
Ungetestet und ohne Gewähr.
PHP-Code:
<?php
function anti_push($ses,$id,$array=FALSE) {
IF ( !is_array($_SESSION[$ses]) ) {
$_SESSION[$ses] = array();
}
IF ( !in_array($id, $_SESSION[$ses]) ) {
array_push($_SESSION[$ses], $id);
return true;
} else {
return false;
}
}
// In diesem Zusammenhang wie du die sid speicherst, macht die funktion wenig(er) sinn.
// Solltest in der sid das PHP_SELF weglassen? Nur so als Vorschlag
IF ( anti_push('push',session_id())) {
$sql = "SELECT
`dateiname`
FROM
`counter`
WHERE
`dateiname`='".$_SERVER['PHP_SELF']."'
LIMIT 1";
$dit = mysql_query($sql) or die ( mysql_error() );
$dit_ = (mysql_num_rows($dit) > 0 ? TRUE : FALSE);
if($dit_) {
$sql2 = "
UPDATE
`counter`
SET
`count`=count+1
WHERE
`sid`='".$_SESSION["sid"]."".$_SERVER['PHP_SELF']."' AND
`dateiname`='".$_SERVER['PHP_SELF']."'
LIMIT 1
";
} else {
$sql2 = "
INSERT
INTO `counter`
SET
count = '1',
dateiname = '".$_SERVER['PHP_SELF']."',
sid = '".$_SESSION["sid"].$_SERVER['PHP_SELF']."',
datum = NOW()
";
}
mysql_query($sql) or die ( mysql_error());
}
?>
__________________
Es kommt nicht darauf an, mit dem Kopf durch den Monitor zu rennen,
sondern mit den Augen das Manual zu lesen.
|
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
|
|
Themen-Optionen |
|
Thema bewerten |
|
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.
HTML-Code ist aus.
|
|
|
|
PHP News
|