Archívum a(z) Kezdő kategóriához

Ingyenes WordPress Blog

Szeretnél ingyen blogot? Regisztrálj és szerezd be saját blogodat ingyen. Folyamatosan bővülő sablonok, bővítmények.

Ingyenes WordPress blog regisztráció.

PHP – array()

Az array() függvény segítségével tömböt hozhatunk létre, mint látni fogjuk tömböt többféleképpen is létrehozhatunk, egy dolog fix, a tömb elemeinek
mindig lesz kulcsa és értéke.

Egy dimenziós tömbök:

Íme egy példa:


$arr = array(“egy” => 1, 5 => “öt”);

echo $arr["egy"]; // 1
 echo $arr[5];    // öt

Látható a kulcs string vagy integer lehet, míg az érték bármilyen típusú lehet.


$tomb = array();
 $tomb[0] = “Hello”;
 $tomb[1] = “világ”;
 $tomb[] = “!”;

Ennél a példánál látható, hogy a tömb első két elemének indexét mi adtuk meg, a harmadiknál nem adtunk meg indexet, itt a PHP hozza létre az indexet, automatikusan
a tömb végére teszi az új elemeket.

Több dimenziós tömbök:


$user = array(“adat” => array(‘id’ => 5, ‘name’ => ‘teszt user’, ‘email’ => ‘teszt@teszt.hu’));

echo $user["adat"]['id'];    // 5
 echo $user["adat"]['name'];   // teszt user
 echo $user["adat"]['email'];  // teszt@teszt.hu

Ez a példa létrehozott 1 több dimenziós tömböt, pontosabban 2 dimenziósat.

Beléptetés I.

Ebben a példában 1 egyszerű beléptető rendszert hozunk létre, ami MySQL nélkül dolgozik, egyszerű file-ból veszi az adatokat.

File-ok:

  • index.php – ez végzi a beléptetést, ebbe hívjuk be a tartalmat, ha be van lépve a felhasználó
  • auth.php – ebben tároljuk a felhasználóneveket és a hozzá tartozó jelszavakat “Linux stílusban” példa: ‘felhasznalo:jelszava’

index.php


<?php
 /* PHP beléptetés kulso file használatával, linux style */
 header (‘Content-type: text/html; charset=utf-8′);
 session_start();
 /* Kijelentkezés */
 if( isset( $_REQUEST['kijelentkezes'] ) ) {
 session_destroy();
 session_start();
 }

/* Beléptető függvény hívása */
 if( !empty( $_POST['nev'] ) && !empty( $_POST['jelszo'] ) ) Beleptetes( $_POST['nev'], $_POST['jelszo'] );

/* Ha belépett a felhasználó/ha nem */
 if( isset( $_SESSION['belepett'] ) ) {
 require(‘szerkeszto.php’);
 }
 else {
 ?>
 <html>
 <head>
 <title></title>
 </head>
 <body onload=”javascript: document.getElementById(‘nick’).focus()”>
 <form method=”post” action=”index.php” style=”margin: 20px; border: 1px solid black; padding: 5px; width: 150px;”>
 <input type=”text” name=”nev” id=”nick” style=”width: 145px; margin-bottom: 5px;” /><br />
 <input type=”password” name=”jelszo” style=”width: 145px; margin-bottom: 5px;” /><br />
 <input type=”submit” /><br />
 </form>
 </body>
 </html>
 <?php
 }

/* Beléptető függvény */
 function Beleptetes( $nev, $jelszo ) {
 /* kiolvassuk a file-bol a felhasználokat */
 $fh = fopen(‘auth.php’,'r’);

while(!feof($fh))
 {
 $users[] = fgets($fh);
 }
 fclose($fh);

/* felhasználók listájának rendezése */
 unset( $users[0] );
 unset( $users[count( $users )] );
 sort( $users );

/* megvizsgáljuk, hogy a beírt adatok passzolnak e */
 for( $i = 0; $i < count( $users ); $i++ ) {
 $tmp = explode( ‘:’, $users[$i] );

if( ( trim( $tmp[0] ) == $nev ) && ( trim( $tmp[1] ) == $jelszo ) ) {
 $_SESSION['belepett'] = 1;
 echo ‘<script type=”text/javascript”>window.location=”index.php”</script>’;
 }
 }

}

?>

auth.php


<?php
 tesztuser:123456789
 masikuser:asdfghjkl

admin:adminjelszo

?>

Mint látható nem egy nagyon bonyolult dolog, viszont gyorsan tudunk hozzáadni felhasználót ha szükséges.

Egyszerű template rendszer

Mire is jó 1 template rendszer?

Teljesen külön tudjuk választani a design-t a programkódtól, ami nagyban javítja az átláthatóságot, illetve a kezelhetőséget. Ebből kifolyólag 1 ilyen rendszerrel elég gyorsan összetudunk rakni egyszerű oldalakat a saját moduljaink segítségével. Ezért aki viszonylag sok oldalt csinál annak ajánlom, hogy készítsen magának 1-et, a saját moduljaival(Te tudod, hogy miket használsz gyakran), illetve olyan oldalaknál lehet hasznos ahol többféle designból lehet választani.

Nézzük hogyan működik:

  • létrehozunk 1 template file-t ami a design-t tartalmazza, ebbe teszünk speciális tag-eket amiknek a helyére betöltjük a moduljainkat
  • index.php-val feldolgozzuk
  • megjelenítjük az oldalt

template.html:


<html>

<head>

<title>{cim}</title>

</head>

<body>

<div id=”header”></div>

<div id=”menu”>{menusor}</div>

<div id=”tartalom”>{tartalom}</div>

</body>

</html>

index.php:


<?php
 $modul = array(
 ‘{cim}’ => ‘content/main/titles.inc.php’,
 ‘{tartalom}’ => ‘content/main/body.inc.php’,
 ‘{menusor}’ => ‘content/main/menu.inc.php’,
 );

$content = file_get_contents(‘template.html’);
 echo csere( $content, $modul );

//file feldolgozás
 function feldolgoz($file) {
 ob_start();
 include($file);
 $buffer = ob_get_contents();
 ob_end_clean();
 return $buffer;
 }

//tag-ek cseréje tényleges tartalomra
 function csere( $data, $modul ) {
 foreach( $modul as $tag => $link ) {
 if( stristr( $data, $tag ) ) {
 $data = str_replace( $tag, feldolgoz( $link ), $data);
 }
 }
 return( $data );
 }
 ?>

Mit is csinál ez a pár sor?

mikor beírjuk a http://teszt-domainem.hu/-t akkor az index.php töltödik be, ami rögtön megnyitja a template.html file-t ami tartalmazza a design-t, majd lecseréli benne a saját tag-eket a hozzá párosított php file-ra.

Ha megnézzük a böngészőben a file forrását akkor ilyesmit kell látnunk:


<html>

<head>

<title>cim amit megadtam a content/main/titles.inc.php fileban</title>

</head>

<body>

<div id=”header”></div>

<div id=”menu”>

<ul>

<li>menu1</li>

<li>menu2</li>

</ul>

</div>

Kivételkezelés

Lássuk a kódot:


<?php

//proba() függvényünk
 function proba( $parancs ) {
 $dbh = mysqli_connect(“”, “user”, “jelszo”, “adatbazis”) or die( mysql_error() );

if( !$result = mysqli_query( $dbh, $parancs ) ) {
 throw new Exception(“Érvénytelen MySQL Parancs!”);
 }
 else return $result;
 mysqli_close( $dbh );
 }

//itt teszteljük a proba()-t ha hiba történik szeretnénk saját hibaüzenetet generálni
 try {
 $dbh = mysqli_connect(“”, “user”, “jelszo”, “adatbazis”) or die( mysql_error() );
 print_r( mysqli_fetch_assoc( proba(“SELECT id FROM hirek”) ) );
 }catch( Exception $e ) {
 echo ‘Hiba történt: ‘, $e->GetMessage();
 }

mysqli_close( $dbh );
 ?>

Ebben a példában, létrehozunk 1 proba() függvényt amelyben megpróbálunk végrehajtani 1 MySQL lekérdezést, ha nem sikerülne végrehajtani akkor hibaüzenetet dobunk a felhasználónak.

A script fő részében behívjuk a proba()-t ha a proba hibát jelez akkor kiiratjuk a hibát, ha nem akkor mindenki boldog és az SQL lekérdezésünk szépen lefut!:)

RSS generálás

Ezzel a pár sorral létrehozhatjuk a saját RSS hírforrásunkat, nincs másra szükségünk, mint 1 mysql adatbázisra amiben tároljuk a híreinket és 1 kis kreativitásra

A kód:


<?php
 //rss_info.php
 header(‘content-type: text/xml’);
 header(‘content-type:text/html;charset=utf-8′);
 echo “<?xml version=\”1.0\” encoding=\”UTF-8\”?>”;
 echo “<rss version=\”2.0\”>”;
 echo “<channel>
 <title>Saját Hírforrás</title>
 <link>http://sajat-oldalam.hu/</link>
 <description>Saját hírforrásom leírása</description>”;

$dbh = mysqli_connect(“”,”user”,”jelszo”,”adatbázis”) or die( mysqli_error() );
 $sql = mysqli_query($dbh, “SET NAMES utf8″);
 $sql = mysqli_query($dbh, “SELECT begin,title FROM hirek WHERE lathato = 1″) or die( mysqli_error() );

while( $sor = mysqli_fetch_assoc( $sql ) ) {
 echo “<item>\r\n”;
 echo “<title>”.$sor['title'].”</title>\r\n”;
 echo “<link>http://sajat-oldalam.hu</link>\r\n”;
 echo “<description>”.html_entity_decode(  strip_tags( $sor['begin'] ), ENT_QUOTES, “utf-8″ ).”</description>\r\n”;
 echo “</item>\r\n”;
 }

echo “</channel>\r\n”;
 echo “</rss>”;

mysqli_close( $dbh );
 ?>

ennyi lenne, a html_entity_decode azért került bele, mert TinyMCE-t használok a hírek beviteléhez, és az lecseréli az ékezetes karaktereket, ezzel visszacserélem őket

ezután annyit kell tennünk, hogy elhelyezünk 1 linket az oldalunkon a jól ismert RSS logóval és 1 linkkel ami erre a PHP file-ra mutat.

HTML E-mail

Nézzük meg, hogyan küldhetünk HTML tartalmú E-Mail-t könnyen.
Létrehozunk 1 osztály ami tartalmazza a lényeget:

html_email.class.php


<?php
 class HTMLemail
 {
 function Send($to, $subject, $content)
 {
 $message=’<html>
 <head>
 <meta http-equiv=\”Content-Type\” content=\”text/html\” charset=\”windows-1250\”>
 <meta content=\”MSHTML 6.00.2600.0\” name=GENERATOR>
 </head>
 <body>

‘.$content.’

</body>
 </html>’;

$from=”From: PHP teszter<noreply@php-teszter.hu>\r\?n”;
 $from.=”MIME-Version: 1.0″.”\r\n”;
 $from.=”X-Mailer: PHP/” . phpversion().”\n”;
 $from.=”Content-type: text/html; charset=windows-1250″.”\r\n”;

mail($to, $subject, $message, $from) or print(“<center><b>Nem sikerult elkuldeni!</b></center>”);
 }
 }
 ?>

Miután elmentjük csak annyit kell tennünk, hogy szükség esetén meghívjuk

proba.php


<?php

require( ‘html_email.class.php’ );

$level = new HTMLemail();

$tartalom = ‘<img src=”http://test-domain.hu/logo.png”  /><h3>Teszt HTML levél!</h3><p>Ez egy  bekezdés</p><p>Ez még egy.</p><p style=”color:  blue; font-size: 10px;”>Ez az aprobetűs rész.</p>’;

$level->Send(‘neked@kuldom.hu’,'teszt HTML level’,$tartalom);

?>

Megjegyzés: a $tartalom változóba kerül a levél törzse, ebben kell megadni a formázott HTML tartalmat.

Ezzel a módszerrel Gmail-ben, Freemail-ben, Thunderbird-ben és ami miatt kidolgoztam az egészet Outlook-ban is megjelenik a szépen formázott HTML levelünk, és ha ezekben működik nagy valószínűséggel máshol is menni fog.

Karakterkódolás

Programozással foglalkozó fórumokon rengetegszer találkozok karakterkódolással kapcsolatos problémákkal.

Lássuk a megoldást:

Egyszerűbb mint gondolnánk, a lényeg az, hogy mindenhol ugyanazt a karakterkódolást használjuk.

Esetünkben legyen az utf-8:

Először is állítsuk be a .php file-unk kódolását UTF-8-ra, ezt a legegyszerübben a HTML editorunkban tudjuk megtenni, Komodo Edit-ben az Edit->Current File Settings menüpont alatt tehetjük meg.

Ezután jöhet az adatbázisunk, ennek is ugyanazt a karakterkódolást kell használnia, jelen esetben az utf-8-at. Ennek a beállítása a legegyszerűbben phpmyadminból érhető el, ahol is a használni kivánt adatbázis és azon belül táblák “illesztés”-ét kell beállítanunk utf8-bin-re.

A végső lépés pedig a php scriptünk létrehozása:


<?php
 //PHP-Mysqli cikk
 header (‘Content-Type: text/html; charset=UTF-8′);
 $dbh = mysqli_connect(“”, “felhasznalo”, “jelszo”, “adatbazis”);
 mysqli_query($dbh, “SET CHARACTER SET utf8″);
 mysqli_query($dbh, “SET NAMES utf8″);

$sql = mysqli_query($dbh, “SELECT * FROM contents where content_id=1″) or die( mysqli_error() );

$adat = mysqli_fetch_assoc( $sql );
 echo $adat['content'];

mysqli_close( $dbh );
 ?>

Ezek után az ékezetes karaktereknek is csodaszépen meg kell jelennie az oldalunkon!

PHP mysqli()

Mi is az a mysqli()?

A válasz egyszerű mysqli = MySQL Improved Extension.

Annyit érdemes róla tudni nagy körvonalakban, hogy a mysql() továbbfejlesztett változata, ajánlatos ezt használni helyette.

Ha valakit komolyabban érdekel nézzen körül ITT

Nézzünk 1 példát:


<?php
 //PHP-Mysqli cikk
 $dbh = mysqli_connect(“”, “felhasznalo”, “jelszo”, “adatbazis”);
 $sql = mysqli_query($dbh, “SELECT * FROM tabla”) or die( mysqli_error() );

while( $sor = mysqli_fetch_assoc( $sql ) ) {
 echo $sor['mezo'];
 }

mysqli_close( $dbh );
 ?>

láthatjuk, hogy alig tér el a mysql()-től.

PHP mysql()

Kezdjük rögtön 1 példával:


<?php
 //PHP-Mysql cikk
 $dbh = mysql_connect(“”,”felhasznalo”, “jelszo”) or die( mysql_error() );
 mysql_select_db(“adatbazis”);
 $sql = mysql_query(“SELECT mezo FROM tabla”);
 while( $sor = mysql_fetch_assoc( $sql ) ) {
 echo $sor['mezo'];
 }
 mysql_close($dbh);
 ?>

Magyarázat soronként:

  1. $dbh nevű változóval csatlakozunk az adatbázishoz mysql_connect() függvényben átadott paraméterek segítségével
  2. kiválasztjuk az adatbázist amit használni szeretnénk
  3. létrehozzuk a lekérdezést
  4. while() ciklussal végig lépkedünk a kapott tömbön(jelen esetben assszociatív tömbön)
  5. kiiratjuk a lekérdezés egyetlen mezőjét
  6. végül lezárjuk az adatbázis kapcsolatot.

A következő példában szépítünk rajta:


<?php
 //PHP-Mysql cikk
 $dbh = mysql_connect(””,”felhasznalo”, “jelszo”) or die( mysql_error() );
 mysql_select_db(”adatbazis”);
 $sql = mysql_query(”SELECT mezo, mezo2 FROM tabla”);

echo ‘<table>’;
 echo  ‘<tr><td><strong>Mezo</strong></td><td><strong>Mezo2</strong></td></tr>’;

while( $sor = mysql_fetch_assoc( $sql ) ) {
 echo ‘<tr><td>’. $sor['mezo'] .’</td><td>’. $sor['mezo2']. ‘</td></tr>’;
 }
 echo ‘</table>’;

mysql_close($dbh);
 ?>

Ebben a példában a kapott rekordokat beillesztjük 1 HTML táblázatba.

A mysql()-el nem foglalkozunk többet a cikkekben, mivel van neki 1 tovább fejlesztett változata, amit mysqli()-nek hivnak a továbbiakban ezzel foglalkozunk, komolyabb példákon keresztül!

Get Adobe Flash playerPlugin by wpburn.com wordpress themes

Nagy rakás könyv porosodik a polcodon? Szabadulj meg tőlük és keress pénzt!

Add fel nálunk könyv hirdetésed percek alatt!
Nálunk korlátlan számú hirdetést adhat fel teljesen ingyen!
Használt könyvek, apróhirdetések