Pripojeni do DB - config.php

// ------------------------------------------------
// Databaze
// ------------------------------------------------

$dbuser = "test";

$dbname = "test";

$dbheslo = "test";

$dbserver = "localhost";

// ------------------------------------------------
/// PRIPOJENI K DB A VYBRANI SPRAVNE DATABAZE
// ------------------------------------------------

$conn=MySQL_Connect($dbserver, $dbuser , $dbheslo);
if (!$conn):
die("Chyba pripojeni do db! Chyba: ".mysql_error());
endif;

$vyberdb=MySQL_Select_DB($dbname);
if (!$vyberdb):
die("Spatne, nepovedlo se vybrat databazi! Chyba: ".mysql_error());
endif;

Moje captcha

function captcha()
{
//nase vlastni metoda CAPTCHY :) scitani cisel v textu
$numbers = array(
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
5 => 'five',
6 => 'six',
7 => 'seven',
8 => 'eight',
9 => 'nine');

$prvni = rand(1,9);
$druhy = rand(1,9);
$_SESSION['right_captcha'] = $prvni + $druhy;
echo $numbers[$prvni],' + ',$numbers[$druhy],' = ';
}

Meta refresh

function refresh($kam,$cas)
{
echo '<meta http-equiv="refresh" content="',$cas,';',$kam,'"/>';
}

Generovani datumu

function generuj_datum()
{
return date("YmdHi");
}

Hezci vypis pole (variace print_r)

function print_ar($array, $count=0)
{
$i=0;
$tab ='';
while($i != $count) {
$i++;
$tab .= "&nbsp;&nbsp;|&nbsp;&nbsp;";
}
foreach($array as $key=>$value){
if(is_array($value)){
echo $tab."[<strong><u>$key</u></strong>]<br />";
$count++;
$this->print_ar($value, $count);
$count--;
}
else{
$tab2 = substr($tab, 0, -12);

if(!is_numeric($key) && strlen($value) > 0)
{
echo "$tab2~ $key: <strong>$value</strong><br />";
}
}
$k++;
}
$count--;
}

Useknuti stringu po zadanem poctu znaku

function cutstr($str, $i)
{
//$str = htmlspecialchars($str);

if (strlen($str) > $i)
{
$str = substr($str, 0, $i);
$str .= " ...";
}

return $str;
}

Kodovani a dekodovani mod_rewrite adresy - neresi diakritiku

function encode_url($text)
{
$text = strtolower(trim($text));
$text = str_replace(' ', '-', $text);
//nahradi vsecko co neni alfanumericky znak a -
$text = ereg_replace("[^A-Za-z0-9-]", "", $text);

return $text;
}

function decode_url($text)
{
return str_replace('-',' ',$text);
}

HTML kostra

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<link rel="stylesheet" href="style.css" type="text/css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="en" />
<meta name="author" content="Jakub 'Pirozek' Ludwig; e-mail: pirozek@mafyje.com" />
<meta name="copyright" content="" />
<meta name="distribution" content="global" />
<meta lang="en" name="description" content="popis stranky" />
<meta lang="en" name="keywords" content="klicova slova" />
<title>Titulek</title>
<script src="script.js" type="text/javascript"></script>
</head>
<body>
<h1>Nazdarek :)</h1>
</body>
</html>

Nejzakladnejsi .htaccess pro mapovani akci do PHP

RewriteEngine On
RewriteRule ^a-([^/]+)$ index.php?akce=$1 [L,QSA]
#akce musi zacinat a, takze napriklad akce na login bude http://www.neco.cz/a-login
#jde to i jinak, ja to mam rad takhle

Zobraz/Skryj element na strance pomoci JS

function zobrazDiv(idecko)
{
var el = document.getElementById(idecko).style;
if(el.display == 'block') { el.display='none'; }
else { el.display = 'block'; }
}

JS cast jednoducheho AJAXu

var http = createRequestObject();
var displayRating = '';
var currentId = '';

function createRequestObject() {
var ro;
var browser = navigator.appName;

if(browser == "Microsoft Internet Explorer"){
ro = new ActiveXObject("Microsoft.XMLHTTP");
}
else{
ro = new XMLHttpRequest();
}
return ro;
}

function fce_volana_z_html(id)
{
http.open('get', 'adresa_skriptu.php&id='+id);
http.onreadystatechange = fce_pro_handle_vysledku;
http.send(null);
}

function handle_vysledku() {
if(http.readyState == 4){
var response = http.responseText;

if (response == 'ERROR'){
alert("Sorry... Action failed :(");
}
else {
//tu se dela to, co chces aby se provedlo po uspesnej ajaxnuti.
}
}
}

PHP cast jednoducheho AJAXu

<?php

$_GET['id'] = mysql_escape_string($_GET['id']);
//tuhle udelej co treba s tim IDckem, pripadne dalsim parametrem kterej si predas
//nezapomen, ze pokud dojde k chybe, vypis si "ERROR"
//ano, melo by se to delat pres xml, ale tohle ma byt co nejkratsi
?>

Check stringu a pripadne upravy

//checkuje na delku, pokud je zadana + prida slashe pro db
function check_string($string,$lenght = 0,$convert = 0)
{
if($lenght > 0)
{
if(strlen($string) < $lenght)
{
return false;
}
}

if($convert == 1)
{
$string = htmlspecialchars($string);
}

$string = mysql_escape_string($string);
return $string;
}

Generovani snadno zapamatovatelnych hesel

function generatePassword($length=8, $strength=0)
{
$vowels = 'aeuy';
$consonants = 'bdghjmnpqrstvz';
if ($strength & 1) {
$consonants .= 'BDGHJLMNPQRSTVWXZ';
}
if ($strength & 2) {
$vowels .= "AEUY";
}
if ($strength & 4) {
$consonants .= '23456789';
}
if ($strength & 8) {
$consonants .= '@#$%';
}

$password = '';
$alt = time() % 2;
for ($i = 0; $i < $length; $i++) {
if ($alt == 1) {
$password .= $consonants[((rand() * microtime()) % strlen($consonants))];
$alt = 0;
} else {
$password .= $vowels[((rand() * microtime()) % strlen($vowels))];
$alt = 1;
}
}
return $password;
}

Prevadeni datumu udelaneho fci generuj_datum

function preved_datum($d)
{
switch(strlen($d))
{
case 12:
return substr($d,6,2).'.'.substr($d,4,2).'.'.substr($d,0,4).' '.substr($d,8,2).':'.substr($d,10,2);
break;
case 8:
return substr($d,6,2).'.'.substr($d,4,2).'.'.substr($d,0,4);
break;
}
}

Detekce stareho IE6 + vynadani uzivateli

function ie_check()
{
$ie6 = "MSIE 6.0";
$browser = $_SERVER['HTTP_USER_AGENT'];
$browser = substr("$browser", 25, 8);

if($browser == $ie6)
{
echo '<div class="warning">Tvoje varovna hlaska</div>';
}

}

Delani kotev v textu

<a name=zalozka></a>Zalozka
<a href="#zalozka">Klikni a prejdes na zalozku</a>

Favicon

<link rel='shortcut icon' href='favicon.ico'>
Generator ikonek - http://www.html-kit.com/favicon/

Posilani download hlavicek, funguje i v IE6,7,8

$len = filesize($soubor);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Content-Type: application/pdf" );
header("Content-Disposition: attachment; filename=\"tvuj.nazev\";");
header("Content-Length: ".$len);

readfile($soubor);

Proc je tam sakra tolik uvozovek?

Kdyz mam nasledujici dotaz:

$sql = "SELECT * FROM vyrobky WHERE ean = 'aaa'";

Tak se musi v dotazu psat ' kolem retezce, aby databaze pochopila, ze se jedna o retezec.
Kdyz chceme nahradit retezec nejakou promennou, tak tam ale ty uvozovky musi zustat.

Rekneme ze mame promennou:

$ean = 'aaa';

a chceme ji dosadit do naseho dotazu. Udelame to nasledovne:

$sql = "SELECT * FROM vyrobky WHERE ean = '" . $ean . "'";

A ted proc ty uvozovky takhle, ty jednoduche uvozovoky ' patri do dotazu proto, aby databaze vedela, ze se jedna o retezec.

Mezivysledek: ' '

Ty dvojite uvozovky " jsou tam proto, protoze phpko je pouziva na oznaceni zacatku/konce retezce a my tady potrebujeme ty retezce vlastne spojit. Mame totiz retezec
"SELECT * FROM vyrobky WHERE ean = '"
a retezec
"'"
a mezi ne vkladame $ean

Mezivysledek: '" "'

Ted tam musi prijit . nebo jiny znak kterym se spojuji retezce (ve VB/JS/C++ je to +), aby php vedelo, ze se maji retezce spojit.

Mezivysledek: '". ."'

Mno a mezi ty . se proste vlozi promenna, kterou tam chceme.

Takze vlaste slucujeme retezce:
I. "SELECT * FROM vyrobky WHERE ean = '"
II. $ean
III. "'"

A ve vysledku kdyz se provede nahrazeni, tak nam z toho vyleze:

$sql = "SELECT * FROM vyrobky WHERE ean = 'aaa'";

Lehke, ze?

Logovani do souboru

$handler = fopen('log.txt','a');
fwrite($handler,'sem neco napis :)');
fclose($handler);

Fullscreen mod s pomoci javascriptu

Ozkouseno na IE a FF (zatim)





Click Here

IP adresa uzivatele

function get_ip()
{
return $_SERVER['REMOTE_ADDR'];
}

Razeni jmen podle ceskych pravidel uz v databazovem dotazu

$vyber = mysql_query("SELECT * FROM zak WHERE id_tridy = ".$id_tridy." ORDER BY jmeno COLLATE utf8_czech_ci ASC");

Konverze datetime z MySQL DB na human form

public function convert_datetime($datetime)
{
//2010-07-06 02:00:00
$half = explode(' ',$datetime); //now we have date and time separated
$date = $half[0];
$time = $half[1];

$date = explode('-',$date); //explode it
$time = explode(':',$time);

//and create our format
$out = ltrim($time[0],'0').':'.$time[1].' '.$date[2].'.'.$date[1].'.'.$date[0];
return $out;
}
 
 
Vloz novej kousek kodu
Titulek
Kod