ilch Forum » Allgemein » HTML, PHP, SQL,... » Statistik

Geschlossen
  1. #1
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    hi

    ich hab mir eine statistik gebastellt so jetzt ich hab nur ein problem eig kein problem funtk alles aber schöheitsfehler und zwar lass ich mir Zählen auf welcher seite ich von mir wie oft war so jetzt will ich des nach dem höchsten sotieren mit ORDER BY funkt es nicht weil ich ja nur sotiren muss wer die meisten besucher hatte goa1.go.funpic.de/logdatei.php?s=0 hoffe das ihr mich versteht

    das ist der teil der dafür zuständig ist
    
    $query = "
    		SELECT DISTINCT(webseite) FROM `logdatei`
    ";
    $sql = mysql_query($query);
    while($row = mysql_fetch_object($sql)){
    	$webseite = $row->webseite;
    	$gesamt_webseite = search("webseite LIKE '%$webseite%'");
    	echo "$webseite: $gesamt_webseite<br />"; 
    }

    und das die gnaze
    logdatei.php
    <?php
    include("../inc.php");
    function search($where){
    	if(empty($where)){
    		return mysql_result(mysql_query("SELECT COUNT(*) FROM `logdatei`"),0);
    	}else{
    		return mysql_result(mysql_query("SELECT COUNT(*) FROM `logdatei` WHERE $where"),0);
    	}
    }
    $date_search = date("Ymd");
    $day = date("d");
    $month = date("m");
    $year = date("y");
    $timestamp = mktime(0,0,0,$month,$day,$year)-86400;
    $gestern = date("Y-m-d",$timestamp);
    $alle = search("");
    $datum = search("datum = '$date_search'");
    $gestern = search("datum = '$gestern'");
    $google = search("referer LIKE '%google%'");
    $ie6 = search("browser LIKE '%MSIE 6.0%'");
    $gecko = search("browser LIKE '%gecko%'");
    $query = "
    		SELECT DISTINCT(webseite) FROM `logdatei`
    ";
    $sql = mysql_query($query);
    while($row = mysql_fetch_object($sql)){
    	$webseite = $row->webseite;
    	$gesamt_webseite = search("webseite LIKE '%$webseite%'");
    	echo "$webseite: $gesamt_webseite<br />"; 
    }
    ?>
    <p>
    	<div>Besucher Gesamt: <?php echo $alle; ?></div>
    	<div>Heute wahren <?php echo $datum; ?> Besucher online</div>
    	<div>Gestern wahren <?=$gestern?> Besucher online</div>
    	<div>Insgesamt kamen <?php echo $google; ?> Besucher via Google</div>
    	<div><?php echo $ie6; ?> Besucher surfen mit dem Internet Explorer 6</div>
    	<div><?php echo $gecko; ?> Besucher surfen mit einem auf Gecko basierenden Browser z.B.(Mozilla Firefox)</div>
    </p>
    <?php
    $gesamt = search("");
    $start = $_GET['s'];
    $intervall = "15";
    $back = $start - $intervall;
    if(($start + $intervall) > $gesamt){
    	$intervall = $gesamt - $start;
    	$mehr = "0";	
    }else{
    	$mehr = $start+$intervall;
    }
    ?>
    <table border="1" width="90%" align="center">	
    	<tr>
    		<td colspan="3">
    			<p>Die Tabelle hat <?php echo $gesamt; ?> Eintr&auml;ge, Dies sind Eintr&auml;ge Nummer <?php echo "$start bis "; echo $start+$intervall; ?><br />
    			<?php if(!$start == 0){ ?><a href="logdatei.php?s=<?php echo $back ?>"><input type="button" value="Zur&uuml;ck" /></a><?php } ?>
    			<a href="logdatei.php?s=<?php echo $mehr ?>"><input type="button" value="Weiter" /></a></p>
    		</td>
    	</tr>
    	<tr>
    		<td width="10%">Datum</td>
    		<td width="70%">Referer</td>
    		<td width="20%">Webseite</td>
    	</tr>
    <?php
    
    
    $query = "
    		SELECT DATE_FORMAT(datum, '%d.%m.%Y') AS datum, ip, referer, browser, ip, webseite FROM `logdatei` ORDER BY datum LIMIT $start,$intervall 
    ";
    $sql = mysql_query($query) or die(mysql_error());
    while($row = mysql_fetch_object($sql)){
    	$ip = $row->ip;
    	$datum = $row->datum;
    	$url = $row->referer;
    	$referer = substr($url, 7, 50);
    	$webseite = $row->webseite;
    	echo "<tr>";
    		echo "<td>$datum&nbsp;</td>";
    		echo "<td><a href=\"$url\">$referer&nbsp;</td>";
    		echo "<td>$webseite&nbsp;</td>";
    	echo "</tr>";
    }
    ?>
    
    <?php
    
    ?>
    </table>



    Zuletzt modifiziert von -GoA][-Sniper am 02.01.2009 - 16:57:54
    0 Mitglieder finden den Beitrag gut.
  2. #2
    User Pic
    Surangumal Mitglied
    Registriert seit
    01.01.2009
    Beiträge
    28
    Beitragswertungen
    0 Beitragspunkte
    Versuche mal:

    $query = "SELECT COUNT(*) gesamt_webseite, webseite FROM `logdatei` GROUP BY webseite ORDER BY 1";
      
    $sql = mysql_query($query);
    while($row = mysql_fetch_object($sql)){
        $webseite = $row->webseite;
        $gesamt_webseite = $row->gesamt_webseite;
        echo "$webseite: $gesamt_webseite<br />"; 
    }


    Ich habe das jetzt aus dem Kopf getippt, hoffe ich hab keine Fehler reingebaut.

    Noch was ganz wichtiges:

    $start = $_GET['s'];


    ist extremst schlecht. Wenn du kein magic_quotes anhast (und das kann immer mal irgendwie sein, gewollt oder ungewollt), dann kann dir ein Angreifer SQL einschleußen.

    Lies dir auf jeden Fall mal etwas zum Thema SQL-Injection durch.

    Deinen Code könnte man durch:

    $start = (int) $_GET['s'];


    absichern.
    0 Mitglieder finden den Beitrag gut.
  3. #3
    User Pic
    Chapter Hall Of Fame
    Registriert seit
    21.10.2007
    Beiträge
    5.951
    Beitragswertungen
    229 Beitragspunkte
    ich kann mit dem weiter-button deinen couter hochklicken. ich glaub da stimmt was nicht zwinker
    Spamming, sinnlose Beiträge, Pushing, Doppelposting und Werbung sind verboten
    externer Link
    0 Mitglieder finden den Beitrag gut.
  4. #4
    User Pic
    -GoA][-Sniper Mitglied
    Registriert seit
    31.10.2007
    Beiträge
    1.468
    Beitragswertungen
    63 Beitragspunkte
    ja hast recht ich hab noch des fehlerhafte auf dem webspace des richtige liegt bei mir aufm xammp server da ist noch kein cookie gestetzt und so


    Zuletzt modifiziert von -GoA][-Sniper am 05.01.2009 - 19:15:24
    0 Mitglieder finden den Beitrag gut.
Geschlossen

Zurück zu HTML, PHP, SQL,...

Optionen: Bei einer Antwort zu diesem Thema eine eMail erhalten