webhost

Web hosting

Tuesday, February 21, 2012

HTTP POST Using PHP CURL

Here's how you execute a POST using the PHP CURL library.

//define post values 
$message="test message ";//define post url
 
$url="http://localhost/WebServices/";//encode the message
 
$message urlencode($message);//initialize the curl
 
$ch curl_init();

 if (!
$ch){
die(
"Couldn't initialize a cURL handle");
}
//setting options
 
$ret curl_setopt($chCURLOPT_URL,$url);
  
curl_setopt ($chCURLOPT_POST1);
 
curl_setopt($chCURLOPT_SSL_VERIFYPEERfalse);       
 
curl_setopt($chCURLOPT_SSL_VERIFYHOST2);//setup post fields
 
curl_setopt ($chCURLOPT_POSTFIELDS,"Message=$message");
 
$ret curl_setopt($chCURLOPT_RETURNTRANSFER1);//If you are behind proxy then please uncomment below line and provide your proxy ip with port.
// $ret = curl_setopt($ch, CURLOPT_PROXY, "PROXY IP ADDRESS:PORT");

//execute and geting response
 
$curlresponse curl_exec($ch);

if(
curl_errno($ch))
    echo 
'curl error : 'curl_error($ch);

 if (empty(
$ret)) {
    
// some kind of an error happened
    
die(curl_error($ch));
    
curl_close($ch); // close cURL handler
 
} else {
    
$info curl_getinfo($ch);
    
curl_close($ch); // close cURL handler
    //echo "<br>";
    
echo $curlresponse;    //echo "post message Sent Succesfully" ;
    
}
 }

Email Script in PHP

Below script is simple email script in php. by using mail function


<?php 
// Email destination address
 $to 'to@email.com'; 
// Email Subject
 $subject 'PHP Simple Mailer Example'; 
// Email message 
$content 'Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
 Etiam sit amet elit vitae arcu interdum ullamcorper.'; 
// Additional headers

$headers  'MIME-Version: 1.0' "\n";
$headers .= 'Content-type: text; charset=iso-8859-1' "\n"; 
$headers .= 'From: from@email.com';

 mail($to,$subject,$content,$headers); 
?> 

Thursday, February 16, 2012

codeigniter error reporting handling


1. Turn off PHP Errors with error_reporting(0)In the root directory of your CodeIgniter installthere is an index.php fileThe first option in there is ‘PHP ERROR REPORTING LEVEL’.

 Set it to zero:error_reporting(0);CodeIgniter version 2.0.1 and above have an environment constant in the index.php file as wellSetting this to “production” will disable all PHP error outputRead more about this on the Codeigniter User Guide page on Security and on Handling Environments. 

2. Turn off Database Errors in Config
The PHP errors are off
but any MySQL errors are still going to showTurn these off in the /config/database.php fileSet the db_debug option to false: 

$db['default']['db_debug'] = FALSE; 

3. Adjust Error Logging Threshold
The 
/config/config.php file has a log threshold optionIt states “For a live site you’ll usually only enable Errors (1to be logged otherwise your log files will fill up very fast.

$config
['log_threshold'] = 1; 


4. Turn on all Errors in Config
In the root directory of your CodeIgniter install
there is an index.php fileThe first option in there is ‘PHP ERROR REPORTING LEVEL’Set it to :
    
error_reporting(E_ALL);

CodeIgniter tutorials .htaccess Setup

CodeIgniter provides the option to use Search Engine friendly URL’s in your application. Search Engine friendly URL’s let’s spiders index your site better and are visually more attractive.

mod_rewrite and the Index page

Before anything else, make sure you have mod_rewrite enabled on your server. Once that’s taken care of, edit your index.php file and set $config['index_page'] to blank.
index.php
[sourcecode]
$config['index_page'] = ”;
[/sourcecode]

Creating the .htaccess file

Go to your root directory, create a file called “.htaccess” and paste the following.

[sourcecode]

# Set the default file for indexes

DirectoryIndex index.php
# mod_rewrite rules

RewriteEngine on
# The RewriteBase of the system (if you are using this system in a sub-folder).

# RewriteBase /SubFolderName/
# This will make the site only accessible without the “www.”


# (which will keep the subdomain-sensive config file happy)

# If you want the site to be accessed WITH the “www.”

# comment-out the following two lines.

# RewriteCond %{HTTP_HOST} ^www\.site\.com$ [NC]

# RewriteRule ^(.*)$ http://site.com/$1 [L,R=301]
# If a controller can’t be found – then issue a 404 error from PHP

# Error messages (via the “error” plugin)


# ErrorDocument 403 /index.php/403/

# ErrorDocument 404 /index.php/404/

# ErrorDocument 500 /index.php/500/
# Deny any people (or bots) from the following sites: (to stop spam comments)

# RewriteCond %{HTTP_REFERER} nienschanz\.ru [NC,OR]

# RewriteCond %{HTTP_REFERER} porn\.com

# RewriteRule .* – [F]

# Note: if you are having trouble from a certain URL just


# add it above to bock all visitors from that site.
# Or you can also uncomment this if you know the IP:

# Deny from 192.168.1.1
# If the file is NOT the index.php file

RewriteCond %{REQUEST_FILENAME} !index.php
# Hide all PHP files so none can be accessed by HTTP

RewriteRule (.*)\.php$ index.php/$1
# If the file/dir is NOT real go to index

RewriteCond %{REQUEST_FILENAME} !-f


RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php/$1 [QSA,L]
# If mod_rewrite is NOT installed go to index.php
ErrorDocument 404 index.php

[/sourcecode]

codeigniter tutorials for beginners

CodeIgniter – Getting Started

Become a CodeIgniter Pro in 15 Days!

Other Sample CodeIgniter Tutorials Worth Reviewing

To Get Last Insert Id in CodeIgniter Mysql


<?php
// Basic php mysql method 

mysql_insert_id();

 // CodeIgniter method 
$this->db->insert_id();?> 

Wednesday, February 15, 2012

How to Refresh Current Page in CodeIgniter

redirect($this->uri->uri_string());

Set and Delete Cookies at CodeIgniter

$cookie = array(
    'name'   => 'loggedin',
    'value'  => 'yes',
    'expire' => '86500',
    'domain' => '.apol0829.dev',
    'prefix' => 'apollidon_'
    );
set_cookie($cookie);
$cookie = array(
    'name'   => 'loggedin',
    'value'  => '',
    'expire' => '0',
    'domain' => '.apol0829.dev',
    'prefix' => 'apollidon_'
    );
delete_cookie($cookie);

Multiple Database Connection in CodeIgniter

The database.php config file 
$active_group "default";
$active_record TRUE;
$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "123456";
$db['default']['database'] = "database_1";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";
$db['second_db']['hostname'] = "localhost";
$db['second_db']['username'] = "root";
$db['second_db']['password'] = "abcdef";
$db['second_db']['database'] = "database_2";
$db['second_db']['dbdriver'] = "mysql";
$db['second_db']['dbprefix'] = "my_";
$db['second_db']['pconnect'] = TRUE;
$db['second_db']['db_debug'] = TRUE;
$db['second_db']['cache_on'] = FALSE;
$db['second_db']['cachedir'] = "";
$db['second_db']['char_set'] = "utf8";
$db['second_db']['dbcollat'] = "utf8_general_ci";

The default group will be loaded automatically during $this->db call. You can use CI legacy_db method to load other db configuration group.

// load second database
$this->legacy_db $this->load->database(database_2true);
// fetch result from my_table
$this->legacy_db->select ('*');
$this->legacy_db->from ('my_table');
$query $this->legacy_db->get();
$result $query->result ();

CodeIgniter: Payment Gateway using Authorize.net Library

First, download the Authorize.net library for CodeIgniter from here :
Download Authorize.net CodeIgniter Library »
Put the lib on your libraries directory, then load it as follow :


// Load authorize_net library

 $this->load->library('authorize_net'); 

// Invoke Authorize.net service 
$this->authorize_net->set_params($_POST); 

$this->authorize_net->set_login('$login_id''$tran_key');

 $this->authorize_net->process(true); 

$response $this->authorize_net->response();
 

CodeIgniter: Convert XML into Object

Codeigniter library that help you convert and parse xml data into php object

<?phpclass CI_Xml_Handle{
    var 
$xml='';
    function 
CI_Xml_Handle($xml_content)
    {
        
$this->xml=$xml_content;
    }
    function 
XMLtoObject () {
        try {
            
$xml_object = new SimpleXMLElement($this->xml);
            if (
$xml_object == false) {
                return 
false;
            }
        }
        catch (
Exception $e) {
            return 
false;
        }
        return 
$xml_object;
    }

This library works as an XML parser and convert any XML document to an object for further processing. Just copy and paste source code above, create a CodeIgniter library file, put it in usual CodeIgniter library folder, load it, and call it ;)

How to Create Star Rating using CodeIgniter and jQuery Star Rating Plugin

$(function() {
       $('.star-radio').rating({
            required: true,
            callback: function(value, link) {
            $.ajax({
                type: "post",
                url: site_url + "user/rate",
                dataType: "json",
                data: "&post_url=" + $('#post_url').val() + "&rate_val=" + value,
                success: function(e) {
                    $.jGrowl(e.code + "<br>" + e.msg);
                }
         });
     }
});
On the code snippet above, we implement the rating plugin on the HTML element which has "star-radio" class attribute, which is your radio button as rating control. Every time user rate to a post, the script will send an Ajax request to User controller and send the rate data to the "rate" function.
<?php
    // .. some User controller code up here
    // Rate function on User Controller
    public function rate()
    {
        // Turn of layout for Ajax request
        unset($this->layout);
        // Gather ajax post data
        $rate = $this->input->post("rate_val", true);
        $post_url = $this->input->post("post_url", true);
        // Load model data
        $this->load->model('Post');
        $post_id = $this->Post->get_post_id($post_url);
        // Call function to check if user is login
        // return current login user id, null if not login yet
        // You need to define this helper function your self
        if (get_user_id()) {
            // Call the Post Model is_rated method to check whether the current login user has submit a rate to related post
            if (!$this->Post->is_rated(get_user_id(), $post_id))
            {
                $data = array("post_id" => $post_id,
                    "user_id" => get_user_id(),
                    "posts_rating_value" => $rate,
                    "posts_rating_date" => date("Y-m-d H:i:s")
                );
                // Call Post model method to insert rating data
                if ($this->Post->insert_rating($data, $post_id, $rate)) {
                    echo json_encode(array("code" => "Success", "msg" => "Thank you, rate has been submitted"));
                }
                else {
                    echo json_encode(array("code" => "Error", "msg" => "Sorry, something wrong. Please try again."));
                }
            }
            // If post has been rated by the current login user
            else {
                echo json_encode(array("code" => "Error", "msg" => "You have already rated this post"));
            }
        }
        // User is not login yet, ask them to login first
        else {
            echo json_encode(array("code" => "Error", "msg" => "Please login to submit this rate"));
        }
        // Do not proceed to view, just terminate to send Json response
        exit;
    }
    // .. any other User controller code goes here
?>
Following is the CodeIgniter View sample code for the rating control on your post view:
<?php
//Check if user logged in
if (!get_user_id()) {
    $radioIsActive = "disabled=disabled ";
}
else {
    $radioIsActive = " ";
}
?>
<?php
for ($i = 1; $i <= 5; $i++) :
    if ($i == round($row["average"])) :
?>
    <input class="star-radio" type="radio" name="rating" value="<?php echo $i; ?>" checked="checked" <?php echo "$radioIsActive"; ?>/>
    <?php else: ?>
    <input class="star-radio" type="radio" name="rating" value="<?php echo $i; ?>" <?php echo "$radioIsActive"; ?>/>
<?php
    endif;
endfor;
?>

CodeIgniter Tutorial: Use Pagination Class

MySQL DDL Quer

Create a blogs table using sql below: 
CREATE TABLE `db_name`.`blog` (
    `blog_id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `title` VARCHAR( 200 ) NOT NULL ,
    `desc` TEXT NOT NULL ,
    `created` DATETIME NOT NULL ,
    `modified` DATETIME NOT NULL
) ENGINE = MYISAM

CodeIgniter Model


<?php
class blog extends Model
{
    function blog()
    {
        parent::Model();
        $this->load->database();
    }
    function count_blogs()
    {
        // Count total numbers of blog entries
        $query = $this->db->query('SELECT count(*) as count_blog FROM blogs');
        $result = $query->results();
        return $result[0]->count_blog;
    }
    function select_blogs($num, $offset)
    {
        // Fetch data from blogs table
        $query = $this->db->get('blogs', $num, $offset);
        $result = $query->results();
        return $result;
    }
}
?>

CodeIgniter Controller

<?php
class blog extends Controller
{
    function blog() {
        parent::Controller();
        $this->load->library(‘pagination’);
        $this->load->model(‘blog’);
        $this->load->helper(‘url’);
    }
    function bloglist() {
        $config['base_url'] = ‘http://your-site.com/index.php/test/page/’;
        $config['per_page']=10;
        $config['total_rows'] =$data['count_blog'];
        $this->pagination->initialize($config);
        $data['title']=’CodeIgniter Pagination Example’;
        $data['bloglist'] = $this->blog->select_blogs($config['per_page'],$this->uri->segment(3));
        $data['count_blog']=$this->blog->count_blogs();
        // This will generate your pagination links
        $data['page_links']=$this->pagination->create_links();
        $this->load->view(‘blog/index’,$data);
    }
}
?>

CodeIgniter View

<table>
    <?php for ($i=0; $i < count($bloglist); $i++) : ?>
    <tr>
        <td><?php echo $bloglist[$i]->title; ?></td>
    </tr>
    <tr>
        <td><?php echo $bloglist[$i]->desc; ?></td>
    </tr>
    <?php echo endfor; ?>
    <tr>
        <td><?php echo $page_links; ?></td>
    </tr>
</table>

How to Send Gmail using CodeIgniter Email Library

// Set SMTP Configuration$emailConfig = array(
    
'protocol' => 'smtp',
    
'smtp_host' => 'ssl://smtp.googlemail.com',
    
'smtp_port' => 465,
    
'smtp_user' => 'yourgoogleaccount@googlemail.com',
    
'smtp_pass' => 'yourgooglepassowrd',
);
// Set your email information$from = array('email' => 'yourgoogleaccount@gmail.com''name' => 'Your Name');$to = array('recipient_address@gmail.com''other@email.com');$subject 'Your gmail subject here';$message 'Type your gmail message here';// Load CodeIgniter Email library$this->load->library('email'$emailConfig);// Sometimes you have to set the new line character for better result$this->email->set_newline("\r\n");// Set email preferences$this->email->from($from['email'], $from['name']);$this->email->to($to);$this->email->subject($subject);$this->email->message($message);// Ready to send email and check whether the email was successfully sentif (!$this->email->send()) {
    
// Raise error message
    
show_error($this->email->print_debugger());
}
else {
    
// Show success notification or other things here
    
echo 'Success to send email';
}