Showing posts with label tutorial. Show all posts
Showing posts with label tutorial. Show all posts

Thursday, April 29, 2010

Code to create Dynamic Random Number using PHP

Here is the Code:

function generateRandomNo ($length)
{
$output = "";
$options = "0123456789abcdefghijklmnopqrstuvwxyz";
$count = 0;
while ($count < $length)

{
$char = substr($options, mt_rand(0, strlen($options)-1), 1);
if (!strstr($output, $char)) {
$output .= $char;
$count++;
}
}
return $output;
}

Wednesday, April 28, 2010

Joomla Module for Dynamic Submenu

Create dynamic Submenu using the following joomla module.


This module will automatically create sub menu for the all menus like "topmenu, usermenu, etc" in joomla menu. After installing this module position to the corresponding place.

Download Code from here...

Rounded corners using PHP and the GD library

Why GD library?

I needed to add rounded corners to some pictures and didn't want to modify the source files in Photoshop (I think it's a bad idea to modify original pictures if the effect can be added dynamically).
First, I thought CSS would do the trick. But after finding some tutorials on the web (some also use Javascript), I realized that to get it working in most web browsers, it doesn't seem that easy, and it generally means that you have to create a lot of wrapping divs.
That's when I decided to use the GD library, which I had found very useful in other projects. I'm not saying that this solution is perfect or better that others, but it has worked very well for me, and I hope it will be useful to some of you as well. Feel free to contact me if you have any comment about this code.
    Advantages of this solution:
  • Flexible: You can chose which corner to round as well as the radius
  • Cross-browser: Since the rounded corners are applied server-side, there's no need for CSS or Javascript support
  • Clean: no wrapping DIVs
  • The entire image can be rotated and still have rounded corners.
    Known limitations:
  • Depending on your rounded corner image, a black border might be shown when using a radius different from the one in that rounded corner image, because of some transparency issues. Thus, use a corner image with the correct size, if possible.
  • The src attribute must point to the function file, so you have to adapt your HMTL. But anyway, it would be easy to set up some javascript to automatically change the src attribute of the images you want to apply rounded corners to.

PHP code

<?php
$image_file 
= $_GET['src'];$corner_radius = isset($_GET['radius']) ? $_GET['radius'] : 20; // The default corner radius is set to 20px$angle = isset($_GET['angle']) ? $_GET['angle'] : 0; // The default angle is set to 0ยบ$topleft = (isset($_GET['topleft']) and $_GET['topleft'] == "no") ? false : true; // Top-left rounded corner is shown by default$bottomleft = (isset($_GET['bottomleft']) and $_GET['bottomleft'] == "no") ? false : true; // Bottom-left rounded corner is shown by default$bottomright = (isset($_GET['bottomright']) and $_GET['bottomright'] == "no") ? false : true; // Bottom-right rounded corner is shown by default$topright = (isset($_GET['topright']) and $_GET['topright'] == "no") ? false : true; // Top-right rounded corner is shown by default
$images_dir = 'images/';$corner_source = imagecreatefrompng('images/rounded_corner.png');
$corner_width = imagesx($corner_source);  $corner_height = imagesy($corner_source);  $corner_resized = ImageCreateTrueColor($corner_radius, $corner_radius);ImageCopyResampled($corner_resized, $corner_source, 0, 0, 0, 0, $corner_radius, $corner_radius, $corner_width, $corner_height);
$corner_width = imagesx($corner_resized);  $corner_height = imagesy($corner_resized);  $image = imagecreatetruecolor($corner_width, $corner_height);  $image = imagecreatefromjpeg($images_dir . $image_file); // replace filename with $_GET['src'] $size = getimagesize($images_dir . $image_file); // replace filename with $_GET['src'] $white = ImageColorAllocate($image,255,255,255);$black = ImageColorAllocate($image,0,0,0);
// Top-left cornerif ($topleft == true) {
    
$dest_x = 0;
    
$dest_y = 0;
    
imagecolortransparent($corner_resized, $black);
    
imagecopymerge($image, $corner_resized, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100);
}
// Bottom-left cornerif ($bottomleft == true) {
    
$dest_x = 0;
    
$dest_y = $size[1] - $corner_height;
    
$rotated = imagerotate($corner_resized, 90, 0);
    
imagecolortransparent($rotated, $black);
    
imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100);
}
// Bottom-right cornerif ($bottomright == true) {
    
$dest_x = $size[0] - $corner_width;
    
$dest_y = $size[1] - $corner_height;
    
$rotated = imagerotate($corner_resized, 180, 0);
    
imagecolortransparent($rotated, $black);
    
imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100);
}
// Top-right cornerif ($topright == true) {
    
$dest_x = $size[0] - $corner_width;
    
$dest_y = 0;
    
$rotated = imagerotate($corner_resized, 270, 0);
    
imagecolortransparent($rotated, $black);
    
imagecopymerge($image, $rotated, $dest_x, $dest_y, 0, 0, $corner_width, $corner_height, 100);
}
// Rotate image$image = imagerotate($image, $angle, $white);
// Output final imageimagejpeg($image);
imagedestroy($image);  imagedestroy($corner_source);?>

Here is the screenshot:

 

How to use it?

Needless to say, PHP and the GD library needs to be installed on your server. You'll also need a png file of the corner. You can use one of our corner images if you want.
Just paste the code above and save it in a php file. Make the necessary changes to the $images_dir and $corner_source variables. Link the src attribute of your image to that file, using the following GET variables:
  • "src": name of the image file
  • "radius" (optionnal): value that represents (in pixels) the radius of the corners (used to resize the corner image)
  • "angle" (optionnal): value that represents (in degrees) the rotation angle
  • "topleft=no" (optionnal): doesn't round the top-left corner
  • "bottomleft=no" (optionnal): doesn't round the bottom-left corner
  • "bottomright=no" (optionnal): doesn't round the bottom-right corner
  • "topright=no" (optionnal): doesn't round the top-right corner
The 3 pictures above have the following src attributes, respectively:
  • src='roundedCorners.php?src=bunny.jpg&radius=40'
  • src='roundedCorners.php?src=bunny.jpg&radius=40&angle=15'
  • src='roundedCorners.php?src=bunny.jpg&radius=40&topleft=no&bottomright=no'
Enjoy!

 

 







Tuesday, April 27, 2010

PHP/MySQL records per row

Way to have the records pulled from a mysql database display like this in a table:
record1 | record2
record3 | record4
I am going to assume you know what you are talking about when you say “records”, and that you don’t really mean “fields”. If you really mean “fields” you can adapt the code below to suit your needs.
If you use mysql_fetch_array(), you will find out that $row is an array that is twice the length of the number of fields you selected. Why is that? Because mysql_fetch_array() returns both a numerical array and an associative array so that you can use either numbers or field names as the array key. If you use mysql_fetch_row(), the array $row will be a numerical array the same length as the number of fields you selected, which will be more convenient in this case because you need to numerically loop through the fields of the record you selected, then stop when all the fields have been echoed.
If you want to print out two records per row in the table, you can use the modulus operator(%) to start new rows. The modulus operator returns the remainder after integer division. Just keep count of the number of records you have echoed, and if the number is evenly divisible by 2($record_count % 2 == 0), then start a new row.
<table>
<
tr>
<?
php
$record_count
= 0; //Keeps count of the records echoed.
while ($row=mysql_fetch_row($sql_result))
{
//Check to see if it is time to start a new row
//Note: the first time through when
//$record_count==0, don't start a new row
if ($record_count % 2==0 AND $record_count != 0)
{
echo
'</tr><tr>';
}
echo ‘<td>’;
//Echo out the entire record in one table cell:
for ($i=0; $i< count($row); $i++)
{
echo
$row[$i];
}
echo ‘</td>’;
//Indicate another record has been echoed:
$record_count++;
}
?>
</tr>
</table>

MIME Types – Complete List

MIME Type Complete List
Suffixes applicable Media type and subtype(s)
.3dm x-world/x-3dmf
.3dmf x-world/x-3dmf
.a application/octet-stream
.aab application/x-authorware-bin
.aam application/x-authorware-map
.aas application/x-authorware-seg
.abc text/vnd.abc
.acgi text/html
.afl video/animaflex
.ai application/postscript
.aif audio/aiff
.aif audio/x-aiff
.aifc audio/aiff
.aifc audio/x-aiff
.aiff audio/aiff
.aiff audio/x-aiff
.aim application/x-aim
.aip text/x-audiosoft-intra
.ani application/x-navi-animation
.aos application/x-nokia-9000-communicator-add-on-software
.aps application/mime
.arc application/octet-stream
.arj application/arj
.arj application/octet-stream
.art image/x-jg
.asf video/x-ms-asf
.asm text/x-asm
.asp text/asp
.asx application/x-mplayer2
.asx video/x-ms-asf
.asx video/x-ms-asf-plugin
.au audio/basic
.au audio/x-au
.avi application/x-troff-msvideo
.avi video/avi
.avi video/msvideo
.avi video/x-msvideo
.avs video/avs-video
.bcpio application/x-bcpio
.bin application/mac-binary
.bin application/macbinary
.bin application/octet-stream
.bin application/x-binary
.bin application/x-macbinary
.bm image/bmp
.bmp image/bmp
.bmp image/x-windows-bmp
.boo application/book
.book application/book
.boz application/x-bzip2
.bsh application/x-bsh
.bz application/x-bzip
.bz2 application/x-bzip2
.c text/plain
.c text/x-c
.c++ text/plain
.cat application/vnd.ms-pki.seccat
.cc text/plain
.cc text/x-c
.ccad application/clariscad
.cco application/x-cocoa
.cdf application/cdf
.cdf application/x-cdf
.cdf application/x-netcdf
.cer application/pkix-cert
.cer application/x-x509-ca-cert
.cha application/x-chat
.chat application/x-chat
.class application/java
.class application/java-byte-code
.class application/x-java-class
.com application/octet-stream
.com text/plain
.conf text/plain
.cpio application/x-cpio
.cpp text/x-c
.cpt application/mac-compactpro
.cpt application/x-compactpro
.cpt application/x-cpt
.crl application/pkcs-crl
.crl application/pkix-crl
.crt application/pkix-cert
.crt application/x-x509-ca-cert
.crt application/x-x509-user-cert
.csh application/x-csh
.csh text/x-script.csh
.css application/x-pointplus
.css text/css
.cxx text/plain
.dcr application/x-director
.deepv application/x-deepv
.def text/plain
.der application/x-x509-ca-cert
.dif video/x-dv
.dir application/x-director
.dl video/dl
.dl video/x-dl
.doc application/msword
.dot application/msword
.dp application/commonground
.drw application/drafting
.dump application/octet-stream
.dv video/x-dv
.dvi application/x-dvi
.dwf drawing/x-dwf (old)
.dwf model/vnd.dwf
.dwg application/acad
.dwg image/vnd.dwg
.dwg image/x-dwg
.dxf application/dxf
.dxf image/vnd.dwg
.dxf image/x-dwg
.dxr application/x-director
.el text/x-script.elisp
.elc application/x-bytecode.elisp (compiled elisp)
.elc application/x-elc
.env application/x-envoy
.eps application/postscript
.es application/x-esrehber
.etx text/x-setext
.evy application/envoy
.evy application/x-envoy
.exe application/octet-stream
.f text/plain
.f text/x-fortran
.f77 text/x-fortran
.f90 text/plain
.f90 text/x-fortran
.fdf application/vnd.fdf
.fif application/fractals
.fif image/fif
.fli video/fli
.fli video/x-fli
.flo image/florian
.flx text/vnd.fmi.flexstor
.fmf video/x-atomic3d-feature
.for text/plain
.for text/x-fortran
.fpx image/vnd.fpx
.fpx image/vnd.net-fpx
.frl application/freeloader
.funk audio/make
.g text/plain
.g3 image/g3fax
.gif image/gif
.gl video/gl
.gl video/x-gl
.gsd audio/x-gsm
.gsm audio/x-gsm
.gsp application/x-gsp
.gss application/x-gss
.gtar application/x-gtar
.gz application/x-compressed
.gz application/x-gzip
.gzip application/x-gzip
.gzip multipart/x-gzip
.h text/plain
.h text/x-h
.hdf application/x-hdf
.help application/x-helpfile
.hgl application/vnd.hp-hpgl
.hh text/plain
.hh text/x-h
.hlb text/x-script
.hlp application/hlp
.hlp application/x-helpfile
.hlp application/x-winhelp
.hpg application/vnd.hp-hpgl
.hpgl application/vnd.hp-hpgl
.hqx application/binhex
.hqx application/binhex4
.hqx application/mac-binhex
.hqx application/mac-binhex40
.hqx application/x-binhex40
.hqx application/x-mac-binhex40
.hta application/hta
.htc text/x-component
.htm text/html
.html text/html
.htmls text/html
.htt text/webviewhtml
.htx text/html
.ice x-conference/x-cooltalk
.ico image/x-icon
.idc text/plain
.ief image/ief
.iefs image/ief
.iges application/iges
.iges model/iges
.igs application/iges
.igs model/iges
.ima application/x-ima
.imap application/x-httpd-imap
.inf application/inf
.ins application/x-internett-signup
.ip application/x-ip2
.isu video/x-isvideo
.it audio/it
.iv application/x-inventor
.ivr i-world/i-vrml
.ivy application/x-livescreen
.jam audio/x-jam
.jav text/plain
.jav text/x-java-source
.java text/plain
.java text/x-java-source
.jcm application/x-java-commerce
.jfif image/jpeg
.jfif image/pjpeg
.jfif-tbnl image/jpeg
.jpe image/jpeg
.jpe image/pjpeg
.jpeg image/jpeg
.jpeg image/pjpeg
.jpg image/jpeg
.jpg image/pjpeg
.jps image/x-jps
.js application/x-javascript
.js application/javascript
.js application/ecmascript
.js text/javascript
.js text/ecmascript
.jut image/jutvision
.kar audio/midi
.kar music/x-karaoke
.ksh application/x-ksh
.ksh text/x-script.ksh
.la audio/nspaudio
.la audio/x-nspaudio
.lam audio/x-liveaudio
.latex application/x-latex
.lha application/lha
.lha application/octet-stream
.lha application/x-lha
.lhx application/octet-stream
.list text/plain
.lma audio/nspaudio
.lma audio/x-nspaudio
.log text/plain
.lsp application/x-lisp
.lsp text/x-script.lisp
.lst text/plain
.lsx text/x-la-asf
.ltx application/x-latex
.lzh application/octet-stream
.lzh application/x-lzh
.lzx application/lzx
.lzx application/octet-stream
.lzx application/x-lzx
.m text/plain
.m text/x-m
.m1v video/mpeg
.m2a audio/mpeg
.m2v video/mpeg
.m3u audio/x-mpequrl
.man application/x-troff-man
.map application/x-navimap
.mar text/plain
.mbd application/mbedlet
.mc$ application/x-magic-cap-package-1.0
.mcd application/mcad
.mcd application/x-mathcad
.mcf image/vasa
.mcf text/mcf
.mcp application/netmc
.me application/x-troff-me
.mht message/rfc822
.mhtml message/rfc822
.mid application/x-midi
.mid audio/midi
.mid audio/x-mid
.mid audio/x-midi
.mid music/crescendo
.mid x-music/x-midi
.midi application/x-midi
.midi audio/midi
.midi audio/x-mid
.midi audio/x-midi
.midi music/crescendo
.midi x-music/x-midi
.mif application/x-frame
.mif application/x-mif
.mime message/rfc822
.mime www/mime
.mjf audio/x-vnd.audioexplosion.mjuicemediafile
.mjpg video/x-motion-jpeg
.mm application/base64
.mm application/x-meme
.mme application/base64
.mod audio/mod
.mod audio/x-mod
.moov video/quicktime
.mov video/quicktime
.movie video/x-sgi-movie
.mp2 audio/mpeg
.mp2 audio/x-mpeg
.mp2 video/mpeg
.mp2 video/x-mpeg
.mp2 video/x-mpeq2a
.mp3 audio/mpeg3
.mp3 audio/x-mpeg-3
.mp3 video/mpeg
.mp3 video/x-mpeg
.mpa audio/mpeg
.mpa video/mpeg
.mpc application/x-project
.mpe video/mpeg
.mpeg video/mpeg
.mpg audio/mpeg
.mpg video/mpeg
.mpga audio/mpeg
.mpp application/vnd.ms-project
.mpt application/x-project
.mpv application/x-project
.mpx application/x-project
.mrc application/marc
.ms application/x-troff-ms
.mv video/x-sgi-movie
.my audio/make
.mzz application/x-vnd.audioexplosion.mzz
.nap image/naplps
.naplps image/naplps
.nc application/x-netcdf
.ncm application/vnd.nokia.configuration-message
.nif image/x-niff
.niff image/x-niff
.nix application/x-mix-transfer
.nsc application/x-conference
.nvd application/x-navidoc
.o application/octet-stream
.oda application/oda
.omc application/x-omc
.omcd application/x-omcdatamaker
.omcr application/x-omcregerator
.p text/x-pascal
.p10 application/pkcs10
.p10 application/x-pkcs10
.p12 application/pkcs-12
.p12 application/x-pkcs12
.p7a application/x-pkcs7-signature
.p7c application/pkcs7-mime
.p7c application/x-pkcs7-mime
.p7m application/pkcs7-mime
.p7m application/x-pkcs7-mime
.p7r application/x-pkcs7-certreqresp
.p7s application/pkcs7-signature
.part application/pro_eng
.pas text/pascal
.pbm image/x-portable-bitmap
.pcl application/vnd.hp-pcl
.pcl application/x-pcl
.pct image/x-pict
.pcx image/x-pcx
.pdb chemical/x-pdb
.pdf application/pdf
.pfunk audio/make
.pfunk audio/make.my.funk
.pgm image/x-portable-graymap
.pgm image/x-portable-greymap
.pic image/pict
.pict image/pict
.pkg application/x-newton-compatible-pkg
.pko application/vnd.ms-pki.pko
.pl text/plain
.pl text/x-script.perl
.plx application/x-pixclscript
.pm image/x-xpixmap
.pm text/x-script.perl-module
.pm4 application/x-pagemaker
.pm5 application/x-pagemaker
.png image/png
.pnm application/x-portable-anymap
.pnm image/x-portable-anymap
.pot application/mspowerpoint
.pot application/vnd.ms-powerpoint
.pov model/x-pov
.ppa application/vnd.ms-powerpoint
.ppm image/x-portable-pixmap
.pps application/mspowerpoint
.pps application/vnd.ms-powerpoint
.ppt application/mspowerpoint
.ppt application/powerpoint
.ppt application/vnd.ms-powerpoint
.ppt application/x-mspowerpoint
.ppz application/mspowerpoint
.pre application/x-freelance
.prt application/pro_eng
.ps application/postscript
.psd application/octet-stream
.pvu paleovu/x-pv
.pwz application/vnd.ms-powerpoint
.py text/x-script.phyton
.pyc applicaiton/x-bytecode.python
.qcp audio/vnd.qcelp
.qd3 x-world/x-3dmf
.qd3d x-world/x-3dmf
.qif image/x-quicktime
.qt video/quicktime
.qtc video/x-qtc
.qti image/x-quicktime
.qtif image/x-quicktime
.ra audio/x-pn-realaudio
.ra audio/x-pn-realaudio-plugin
.ra audio/x-realaudio
.ram audio/x-pn-realaudio
.ras application/x-cmu-raster
.ras image/cmu-raster
.ras image/x-cmu-raster
.rast image/cmu-raster
.rexx text/x-script.rexx
.rf image/vnd.rn-realflash
.rgb image/x-rgb
.rm application/vnd.rn-realmedia
.rm audio/x-pn-realaudio
.rmi audio/mid
.rmm audio/x-pn-realaudio
.rmp audio/x-pn-realaudio
.rmp audio/x-pn-realaudio-plugin
.rng application/ringing-tones
.rng application/vnd.nokia.ringing-tone
.rnx application/vnd.rn-realplayer
.roff application/x-troff
.rp image/vnd.rn-realpix
.rpm audio/x-pn-realaudio-plugin
.rt text/richtext
.rt text/vnd.rn-realtext
.rtf application/rtf
.rtf application/x-rtf
.rtf text/richtext
.rtx application/rtf
.rtx text/richtext
.rv video/vnd.rn-realvideo
.s text/x-asm
.s3m audio/s3m
.saveme application/octet-stream
.sbk application/x-tbook
.scm application/x-lotusscreencam
.scm text/x-script.guile
.scm text/x-script.scheme
.scm video/x-scm
.sdml text/plain
.sdp application/sdp
.sdp application/x-sdp
.sdr application/sounder
.sea application/sea
.sea application/x-sea
.set application/set
.sgm text/sgml
.sgm text/x-sgml
.sgml text/sgml
.sgml text/x-sgml
.sh application/x-bsh
.sh application/x-sh
.sh application/x-shar
.sh text/x-script.sh
.shar application/x-bsh
.shar application/x-shar
.shtml text/html
.shtml text/x-server-parsed-html
.sid audio/x-psid
.sit application/x-sit
.sit application/x-stuffit
.skd application/x-koan
.skm application/x-koan
.skp application/x-koan
.skt application/x-koan
.sl application/x-seelogo
.smi application/smil
.smil application/smil
.snd audio/basic
.snd audio/x-adpcm
.sol application/solids
.spc application/x-pkcs7-certificates
.spc text/x-speech
.spl application/futuresplash
.spr application/x-sprite
.sprite application/x-sprite
.src application/x-wais-source
.ssi text/x-server-parsed-html
.ssm application/streamingmedia
.sst application/vnd.ms-pki.certstore
.step application/step
.stl application/sla
.stl application/vnd.ms-pki.stl
.stl application/x-navistyle
.stp application/step
.sv4cpio application/x-sv4cpio
.sv4crc application/x-sv4crc
.svf image/vnd.dwg
.svf image/x-dwg
.svr application/x-world
.svr x-world/x-svr
.swf application/x-shockwave-flash
.t application/x-troff
.talk text/x-speech
.tar application/x-tar
.tbk application/toolbook
.tbk application/x-tbook
.tcl application/x-tcl
.tcl text/x-script.tcl
.tcsh text/x-script.tcsh
.tex application/x-tex
.texi application/x-texinfo
.texinfo application/x-texinfo
.text application/plain
.text text/plain
.tgz application/gnutar
.tgz application/x-compressed
.tif image/tiff
.tif image/x-tiff
.tiff image/tiff
.tiff image/x-tiff
.tr application/x-troff
.tsi audio/tsp-audio
.tsp application/dsptype
.tsp audio/tsplayer
.tsv text/tab-separated-values
.turbot image/florian
.txt text/plain
.uil text/x-uil
.uni text/uri-list
.unis text/uri-list
.unv application/i-deas
.uri text/uri-list
.uris text/uri-list
.ustar application/x-ustar
.ustar multipart/x-ustar
.uu application/octet-stream
.uu text/x-uuencode
.uue text/x-uuencode
.vcd application/x-cdlink
.vcs text/x-vcalendar
.vda application/vda
.vdo video/vdo
.vew application/groupwise
.viv video/vivo
.viv video/vnd.vivo
.vivo video/vivo
.vivo video/vnd.vivo
.vmd application/vocaltec-media-desc
.vmf application/vocaltec-media-file
.voc audio/voc
.voc audio/x-voc
.vos video/vosaic
.vox audio/voxware
.vqe audio/x-twinvq-plugin
.vqf audio/x-twinvq
.vql audio/x-twinvq-plugin
.vrml application/x-vrml
.vrml model/vrml
.vrml x-world/x-vrml
.vrt x-world/x-vrt
.vsd application/x-visio
.vst application/x-visio
.vsw application/x-visio
.w60 application/wordperfect6.0
.w61 application/wordperfect6.1
.w6w application/msword
.wav audio/wav
.wav audio/x-wav
.wb1 application/x-qpro
.wbmp image/vnd.wap.wbmp
.web application/vnd.xara
.wiz application/msword
.wk1 application/x-123
.wmf windows/metafile
.wml text/vnd.wap.wml
.wmlc application/vnd.wap.wmlc
.wmls text/vnd.wap.wmlscript
.wmlsc application/vnd.wap.wmlscriptc
.word application/msword
.wp application/wordperfect
.wp5 application/wordperfect
.wp5 application/wordperfect6.0
.wp6 application/wordperfect
.wpd application/wordperfect
.wpd application/x-wpwin
.wq1 application/x-lotus
.wri application/mswrite
.wri application/x-wri
.wrl application/x-world
.wrl model/vrml
.wrl x-world/x-vrml
.wrz model/vrml
.wrz x-world/x-vrml
.wsc text/scriplet
.wsrc application/x-wais-source
.wtk application/x-wintalk
.xbm image/x-xbitmap
.xbm image/x-xbm
.xbm image/xbm
.xdr video/x-amt-demorun
.xgz xgl/drawing
.xif image/vnd.xiff
.xl application/excel
.xla application/excel
.xla application/x-excel
.xla application/x-msexcel
.xlb application/excel
.xlb application/vnd.ms-excel
.xlb application/x-excel
.xlc application/excel
.xlc application/vnd.ms-excel
.xlc application/x-excel
.xld application/excel
.xld application/x-excel
.xlk application/excel
.xlk application/x-excel
.xll application/excel
.xll application/vnd.ms-excel
.xll application/x-excel
.xlm application/excel
.xlm application/vnd.ms-excel
.xlm application/x-excel
.xls application/excel
.xls application/vnd.ms-excel
.xls application/x-excel
.xls application/x-msexcel
.xlt application/excel
.xlt application/x-excel
.xlv application/excel
.xlv application/x-excel
.xlw application/excel
.xlw application/vnd.ms-excel
.xlw application/x-excel
.xlw application/x-msexcel
.xm audio/xm
.xml application/xml
.xml text/xml
.xmz xgl/movie
.xpix application/x-vnd.ls-xpix
.xpm image/x-xpixmap
.xpm image/xpm
.x-png image/png
.xsr video/x-amt-showrun
.xwd image/x-xwd
.xwd image/x-xwindowdump
.xyz chemical/x-pdb
.z application/x-compress
.z application/x-compressed
.zip application/x-compressed
.zip application/x-zip-compressed
.zip application/zip
.zip multipart/x-zip
.zoo application/octet-stream
.zsh text/x-script.zsh

Pagination in php

As your database grows, showing all the results of a query on a single page is no longer practical. This is where pagination comes in handy. You can display your results over a number of pages, each linked to the next, to allow your users to browse your content in bite sized pieces.
<?php
/*
Place code to connect to your DB here.
*/
include(’config.php’); // include your code to connect to DB.
$tbl_name=”"; //your table name
// How many adjacent pages should be shown on each side?
$adjacents = 3;
/*
First get total number of rows in data table.
If you have a WHERE clause in your query, make sure you mirror it here.
*/
$query = “SELECT COUNT(*) as num FROM $tbl_name”;
$total_pages = mysql_fetch_array(mysql_query($query));
$total_pages = $total_pages[num];
/* Setup vars for query. */
$targetpage = “filename.php”; //your file name (the name of this file)
$limit = 2; //how many items to show per page
$page = $_GET['page'];
if($page)
$start = ($page – 1) * $limit; //first item to display on this page
else
$start = 0; //if no page var is given, set start to 0
/* Get data. */
$sql = “SELECT column_name FROM $tbl_name LIMIT $start, $limit”;
$result = mysql_query($sql);
/* Setup page vars for display. */
if ($page == 0) $page = 1; //if no page var is given, default to 1.
$prev = $page – 1; //previous page is page – 1
$next = $page + 1; //next page is page + 1
$lastpage = ceil($total_pages/$limit); //lastpage is = total pages / items per page, rounded up.
$lpm1 = $lastpage – 1; //last page minus 1
/*
Now we apply our rules and draw the pagination object.
We’re actually saving the code to a variable in case we want to draw it more than once.
*/
$pagination = “”;
if($lastpage > 1)
{
$pagination .= “<div class=\”pagination\”>”;
//previous button
if ($page > 1)
$pagination.= “<a href=\”$targetpage?page=$prev\”>« previous</a>”;
else
$pagination.= “<span class=\”disabled\”>« previous</span>”;
//pages
if ($lastpage < 7 + ($adjacents * 2)) //not enough pages to bother breaking it up
{
for ($counter = 1; $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= “<span class=\”current\”>$counter</span>”;
else
$pagination.= “<a href=\”$targetpage?page=$counter\”>$counter</a>”;
}
}
elseif($lastpage > 5 + ($adjacents * 2)) //enough pages to hide some
{
//close to beginning; only hide later pages
if($page < 1 + ($adjacents * 2))
{
for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
{
if ($counter == $page)
$pagination.= “<span class=\”current\”>$counter</span>”;
else
$pagination.= “<a href=\”$targetpage?page=$counter\”>$counter</a>”;
}
$pagination.= “…”;
$pagination.= “<a href=\”$targetpage?page=$lpm1\”>$lpm1</a>”;
$pagination.= “<a href=\”$targetpage?page=$lastpage\”>$lastpage</a>”;
}
//in middle; hide some front and some back
elseif($lastpage – ($adjacents * 2) > $page && $page > ($adjacents * 2))
{
$pagination.= “<a href=\”$targetpage?page=1\”>1</a>”;
$pagination.= “<a href=\”$targetpage?page=2\”>2</a>”;
$pagination.= “…”;
for ($counter = $page – $adjacents; $counter <= $page + $adjacents; $counter++)
{
if ($counter == $page)
$pagination.= “<span class=\”current\”>$counter</span>”;
else
$pagination.= “<a href=\”$targetpage?page=$counter\”>$counter</a>”;
}
$pagination.= “…”;
$pagination.= “<a href=\”$targetpage?page=$lpm1\”>$lpm1</a>”;
$pagination.= “<a href=\”$targetpage?page=$lastpage\”>$lastpage</a>”;
}
//close to end; only hide early pages
else
{
$pagination.= “<a href=\”$targetpage?page=1\”>1</a>”;
$pagination.= “<a href=\”$targetpage?page=2\”>2</a>”;
$pagination.= “…”;
for ($counter = $lastpage – (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
{
if ($counter == $page)
$pagination.= “<span class=\”current\”>$counter</span>”;
else
$pagination.= “<a href=\”$targetpage?page=$counter\”>$counter</a>”;
}
}
}
//next button
if ($page < $counter – 1)
$pagination.= “<a href=\”$targetpage?page=$next\”>next »</a>”;
else
$pagination.= “<span class=\”disabled\”>next »</span>”;
$pagination.= “</div>\n”;
}
?>
<?php
while($row = mysql_fetch_array($result))
{
// Your while loop here
}
?>
<?=$pagination?>

To delete the Cache of previous page

This code can be used in the php pages where the cache will be deleted and this will be usefull for logout functionality where after logout it should not go to the previous page

// Date in the past
header(”Expires: Mon, 26 Jul 1997 05:00:00 GMT”);
// always modified
header(”Last-Modified: ” . gmdate(”D, d M Y H:i:s”) . ” GMT”);
// HTTP/1.1
header(”Cache-Control: no-store, no-cache, must-revalidate”);
header(”Cache-Control: post-check=0, pre-check=0″, false);
// HTTP/1.0
header(”Pragma: no-cache”);

How to validate multiple Email ID from Textarea input

To validate Email ID is quite common but when it comes to validate a multiple email Id from textarea input then you will be facing many bugs. I Have solved this issue in my task and i hope
it will be useful for you..
client may ask to enter the Email Id in this format:
ex1:(To type in horizontal wise)
test@sdf.com,rest@test.com,rest@sdf.com
ex2:(To type in vertical order)

For this output we can use javascript or PHP coding. so i have used Php coding for this one,lets see how can we extract the result by separating comma’s and enter carraige.
Code:
//To explode the submitted value when you press Enter button
$arrLines = explode(”\n”,$_POST['email']);
//Separated values are stored in $value
foreach($arrLines as $key=>$value){
//Now we are Looking for comma operator , if they have specified in field
$arrEmail = explode(”,”,$value);
//Separated values are stored in $value1
foreach($arrEmail as $key1=>$value1){
//Here i am checking whether the user as entered any Null values
if(trim($value1)!=”){
//Regular Expression used to check the Email is valid or Not
if(!eregi(’^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z]{2,4}(\.[a-zA-Z]{2,3})?(\.[a-zA-Z]{2,3})?$’, trim($value1))){
//Assigning invalid email Id to varaible
$invalidemailId = trim($invalidemailId.$value1).”<br>”;
//Printing the email Id which is Not Valid.
$erroremail=’Mail as Not Sent For Following Email ID,Please Enter Valid Email ID<br> ‘.$invalidemailId;
}
//To send the mail to list
else{
$from=’inforeply@bharat.com’;
$to = $value1;
$subject = ‘Birthday Reminders for August’;
$message =file_get_contents(’mailers/bmp-mailer.html’);
$headers = ‘MIME-Version: 1.0′ . “\r\n”;
$headers .= ‘Content-type: text/html; charset=iso-8859-1′ . “\r\n”;
$headers .= ‘From:’ .$from . “\r\n”;
mail($to, $subject, $message, $headers);
}
}

Monday, April 26, 2010

Counting the characters dynamically inside a textarea and setting a limit

Here is the Code

<html>
<head>
<title>(Type a title for your page here)</title>

<script language=JavaScript>
<!--
function check_length(my_form)
{
maxLen = 50; // max number of characters allowed
if (my_form.my_text.value.length >= maxLen) {
// Alert message if maximum limit is reached.
// If required Alert can be removed.
var msg = "You have reached your maximum limit of characters allowed";
alert(msg);
// Reached the Maximum length so trim the textarea
my_form.my_text.value = my_form.my_text.value.substring(0, maxLen);
}
else{ // Maximum length not reached so update the value of my_text counter
my_form.text_num.value = maxLen - my_form.my_text.value.length;}
}
//-->
</script>

</head>

<body>
<form name=my_form method=post>
<textarea onKeyPress=check_length(this.form); onKeyDown=check_length(this.form); name=my_text rows=4 cols=30></textarea>
<br>
<input size=1 value=50 name=text_num> Characters Left
</form>

</body>
</html>


 

Followers