Jump to content

MasterACE14

Members
  • Posts

    2,687
  • Joined

  • Last visited

Posts posted by MasterACE14

  1. http://www.php.net/manual/en/function.get-browser.php#101125

    ruudrp at live dot nl 28-Nov-2010 11:31

    To my surprise I found that none of the get_browser alternatives output the correct name / version combination that I was looking for using Opera or Chrome. They either give the wrong name eg Safari when in fact it should be Chrome and if the ua string includes a version number as with the latest versions of Chrome and Opera the wrong number is reported. So I took bits and pieces from the various examples and combined them and added a check for version.

    <?php
    function getBrowser() 
    { 
        $u_agent = $_SERVER['HTTP_USER_AGENT']; 
        $bname = 'Unknown';
        $platform = 'Unknown';
        $version= "";
    
        //First get the platform?
        if (preg_match('/linux/i', $u_agent)) {
            $platform = 'linux';
        }
        elseif (preg_match('/macintosh|mac os x/i', $u_agent)) {
            $platform = 'mac';
        }
        elseif (preg_match('/windows|win32/i', $u_agent)) {
            $platform = 'windows';
        }
        
        // Next get the name of the useragent yes seperately and for good reason
        if(preg_match('/MSIE/i',$u_agent) && !preg_match('/Opera/i',$u_agent)) 
        { 
            $bname = 'Internet Explorer'; 
            $ub = "MSIE"; 
        } 
        elseif(preg_match('/Firefox/i',$u_agent)) 
        { 
            $bname = 'Mozilla Firefox'; 
            $ub = "Firefox"; 
        } 
        elseif(preg_match('/Chrome/i',$u_agent)) 
        { 
            $bname = 'Google Chrome'; 
            $ub = "Chrome"; 
        } 
        elseif(preg_match('/Safari/i',$u_agent)) 
        { 
            $bname = 'Apple Safari'; 
            $ub = "Safari"; 
        } 
        elseif(preg_match('/Opera/i',$u_agent)) 
        { 
            $bname = 'Opera'; 
            $ub = "Opera"; 
        } 
        elseif(preg_match('/Netscape/i',$u_agent)) 
        { 
            $bname = 'Netscape'; 
            $ub = "Netscape"; 
        } 
        
        // finally get the correct version number
        $known = array('Version', $ub, 'other');
        $pattern = '#(?<browser>' . join('|', $known) .
        ')[/ ]+(?<version>[0-9.|a-zA-Z.]*)#';
        if (!preg_match_all($pattern, $u_agent, $matches)) {
            // we have no matching number just continue
        }
        
        // see how many we have
        $i = count($matches['browser']);
        if ($i != 1) {
            //we will have two since we are not using 'other' argument yet
            //see if version is before or after the name
            if (strripos($u_agent,"Version") < strripos($u_agent,$ub)){
                $version= $matches['version'][0];
            }
            else {
                $version= $matches['version'][1];
            }
        }
        else {
            $version= $matches['version'][0];
        }
        
        // check if we have a number
        if ($version==null || $version=="") {$version="?";}
        
        return array(
            'userAgent' => $u_agent,
            'name'      => $bname,
            'version'   => $version,
            'platform'  => $platform,
            'pattern'    => $pattern
        );
    } 
    
    // now try it
    $ua=getBrowser();
    $yourbrowser= "Your browser: " . $ua['name'] . " " . $ua['version'] . " on " .$ua['platform'] . " reports: <br >" . $ua['userAgent'];
    print_r($yourbrowser);
    ?>

  2. is 'Computer_Price' the correct name of the field?

     

    EDIT:

    Noticed you changed the second argument of mysql_fetch_array to MYSQL_NUM.

     

    Change your while loop to this and it should work fine:

    while($row = mysql_fetch_array($result)) 

    MYSQL_NUM means the fields are numbered with an index. Which you don't want if you're calling a field by it's name rather than an id.

  3. [ code ] [ /code ] tags please.

     

    <?php
    
    include '../php/config_conn.php';
    
    $querysum = "SELECT SUM(total_time) FROM `coop_hours` where user = '".$_SESSION['user_name']."'";
    $resultsum = mysql_query($querysum);
    $arr = mysql_fetch_row($resultsum);
    $resulthours = $arr[0];
    
    $querytime = "SELECT * FROM `coop_hours` WHERE user = '".$_SESSION['user_name']."' ORDER BY 'date_completed'";
    $result = mysql_query($querytime);
    
    $num = mysql_num_rows($result);
    
    mysql_close();
    
    
    echo "<table width='800' cellpadding='0'><tr>
          <td><strong>Coop Job</strong></td>
          <td align=center><strong>Date Completed</strong></td>
          <td align=center><strong>Total Time</strong></td>
          <td><strong>Comments</strong></td><td>Delete Entry</td></tr>";
    
    $i=0;
    while ($i < $num) {
       
    $hours_id = mysql_result($result, $i, "hours_id");
    $user = mysql_result($result, $i, "user");
    $coop_job = mysql_result($result, $i, "coop_job");
    $date_completed = mysql_result($result, $i, "date_completed");
    $start_time = mysql_result($result, $i, "start_time");
    $end_time = mysql_result($result, $i, "end_time");
    $total_time = mysql_result($result, $i, "total_time");
    $comments = mysql_result($result, $i, "comments");
    
    
    echo "<tr><td>$coop_job</td>
       <td align=center>$date_completed</td>
       <td align=center>$total_time</td>
       <td>$comments</td>
       <td align=center>
       
       <a href='php/del.php'><img src='images/del.png'></a></td>
       </tr>";
    
    $i++;
    }
    echo "<tr><td colspan=5><hr></td></tr>";
    echo "<tr><td></td><td align=right>Total hours:</td><td align=center>$resulthours</td><td></td></tr>";
    echo "<table>";
    
    ?>
    
    And here is del.php:
    
    <?php
    
    include '../../php/config_conn.php';
    
    $del_query = ("DELETE FROM coop_hours WHERE hours_id = '".$hours_id."' LIMIT 1");
    $result = mysql_query($del_query);
    
    header("Location: http://.../myaccount-testing.php");
    
    ?>

  4. Should I be using my "Config" file with my PHP Includes, or should I *just* be using Relative Path references as some have said?

     

    I suppose if I have a simple site structure, things don't change too much, and I don't have too many layers, then typing...

    <?php	require_once('../components/content_sticky.inc.php');	?>
    

     

    ...isn't that big of a deal?!

     

    Shouldn't really have config.php with a heap of includes in it(if that's what you mean?), a config file is usually for variables, arrays or constants that are used in various parts of the website such as database connection details.

     

    Relative path references is the way to go, and if you're worried about having to copy/paste includes into multiple files(that's what I think you're talking about?), then you may want to develop some kind of template system.

  5. Volunteer staff and members are helping you out of their own precious free time, no one here HAS to help you. A little respect goes a long way.

     

    As far as your code is concerned. In my opinion it would be quicker to recode it differently then to 'tinker' with it. Sometimes you just need to take in the advice, scrap what you have and start over. That way you will avoid hours of some what wasted time and bad headaches.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.