WebPillangó főoldal
Oldalak: 1 ... 26 27 [28] 29   Le
  Nyomtatás  
Szerző Téma: PHP  (Megtekintve 197251 alkalommal)
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #540 Dátum: 2011. 06. 15. - 19:19:42 »

@Odin: telepitesz egy Wordpresst

@spier: & - referencia atadas

Nem, a singleton nem azert felel, hogy a valtozoi is singleton-ok legyenek, hanem azert, hogy belole ne letezzen tobb. Pl. ha van egy DBFactory singletonod, akkor az azert felel, hogy akarhol meghivod ugyan arra az egy peldanyra mutasson a DBFactory.GetInstance(). Tobb mint valoszinu lesz neki egy olyan mezoje, hogy connectionString, ami tortenetesen egy karakterlanc. Az alkalmazasodban meg sokmillio helyen lesznek karakterlancok hasznalva, de attol a DBFactory az singleton, mert belole egy van.

Ha kihagysz valamit, akkor az alap hivodik meg, oroklodik. Minden a StdClass-bol oroklodik, vagy object-bol, stb. nyelv fuggo. Szoval, ha nincs egy konstruktorja sem, akkor alapbol van egy parameter mentes. Ezt akkor tudod elrejteni, ha felulirod a parameter mentes konstruktort private modositoval. Akkor csak sajat magat tudja "elkesziteni". Pl. a singleton-nal is ez van.

Az, hogy legyen egy osztalyod, amiben van 100 statikus fuggveny rossz otlet, nem objektum orientalt programozas, hanem visszamardt rossz szokas az imperativ programozasbol, lasd Pascal, C, stb. Az oszytalyok lenyege, hogy mindeniknek legyen egy jol behatarolt felelossegkore, aminek a beteljesiteseert felel. Masert nem. Ha ilyen osztalyod van, hogy Utils, Tools, Helpers, stb. akkor azt torold ki s a megfelelo metodusokat ujratervezessel mozgasd a megfelelo osztalyba, akinek valoban a felelossegkorebe tartozik.
Naplózva
pepe0521
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 19


« Válasz #541 Dátum: 2011. 06. 22. - 11:26:10 »

Sziasztok!

Elakadtam egy nekem még ismeretlen témában, ha jól tudom Transliteration-nak nevezik.

url ékezet elhagyása. Problémám a következő

funkcio.php

Kód:
<?php
// Atalakítás keresőbarat url..
function seoUrl($title,$cleanrss=true) {
  
// Átalakít speciális karaktereket..
  
$chars = array(
   
'&#38;#225;'=>'a''&#38;#233;'=>'e''-'=>'-''+'=>'-''&#38;#246;'=>'o''&#38;#337;'=>'u''&#38;#252;'=>'u, '&#38;#369;'=>'u', '&#38;#250;'=>'u', '&#38;#243;'=>'o', ' '=>'-', '&#38;#237;'=>'i'
  
);

  
// Csere karakter tömbben..
  
$title strtr($title$chars);
  
// RSS kimenet tisztitása..
  
if ($cleanrss) {
    return 
$title;
  }
  
// Alfabetikus és numerikus karakterek..
  
$title strtolower(preg_replace('`[^\w_-]`''-'$title));
  
// Csere..
  
return str_replace(array('--','---','----''),
                     array('
-','-','-''),
                     
$title
                     
);
}

?>

Hogy tudnám elérni,hogy elhagyja az ékezeteket az url-ből.

valami.hu/alkatrész/videokártya (ezt kapom most vissza)

valami.hu/alkatresz/videokartya (ez lenne a célom)

Előre is köszönöm a válaszokat!
Naplózva
Tas
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 35


« Válasz #542 Dátum: 2011. 06. 22. - 22:53:44 »

Gondolom van egy átirányításod, valami ilyesmi.
Kód:
RewriteRule ^(.*)$ index.php?qstring=$1 [QSA,L]

Ha csak annyi kell, hogy átirányítás után leszedje az ékezeteket, akkor az alábbi kód jól jöhet.
Kód:
<?php
header
('content-type: text/html; charset=utf-8');

// url-bol kapott query string szetdrabolasa
$params explode('/'$_GET['qstring']);

// ekezetes
$mit =  array("/í/""/é/""/á/""/ű/""/ő/""/ú/""/ö/""/ü/""/ó/");
// sima
$mire = array("i""e""a""u""o""u""o""u""o");

$csere preg_replace($mit$mire$params);

// az eredménye
print_r($csere);
?>

A fenti kód az url-ből kapott query string-et szétszedi, majd a preg_replace kicserélgeti a $mit tömbben felsoroltakat a $mire tömbben lévőkre ha van egyezés.
A valami.hu/alkatrész/videókártya eredménye a print_r után: Array (
  • => alkatresz [1] => videokartya )
Naplózva
pepe0521
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 19


« Válasz #543 Dátum: 2011. 06. 23. - 10:32:49 »


Köszönöm a segítséged!

igen van egy átirányításom

Kód:
RewriteRule ^(.*)$ index.php [QSA,L]

Valahol itt lehet a bibi

Kód:
  // Átalakít speciális karaktereket..
  $chars = array(
   '&#38;#225;'=>'a', '&#38;#233;'=>'e', '-'=>'-', '+'=>'-', '&#38;#246;'=>'o', '&#38;#337;'=>'u', '&#38;#252;'=>'u, '&#38;#369;'=>'u', '&#38;#250;'=>'u', '&#38;#243;'=>'o', ' '=>'-', '&#38;#237;'=>'i'
  );

http://www.ficgs.com/How-to-remove-accents-in-PHP-f3057.html

Valami nagyon hasonló megoldás lesz az igazi

Kód:
function replace_accents($string)
{
  return str_replace( array('à','á','â','ã','ä', 'ç', 'è','é','ê','ë', 'ì','í','î','ï', 'ñ', 'ò','ó','ô','õ','ö', 'ù','ú','û','ü', 'ý','ÿ', 'À','Á','Â','Ã','Ä', 'Ç', 'È','É','Ê','Ë', 'Ì','Í','Î','Ï', 'Ñ', 'Ò','Ó','Ô','Õ','Ö', 'Ù','Ú','Û','Ü', 'Ý'), array('a','a','a','a','a', 'c', 'e','e','e','e', 'i','i','i','i', 'n', 'o','o','o','o','o', 'u','u','u','u', 'y','y', 'A','A','A','A','A', 'C', 'E','E','E','E', 'I','I','I','I', 'N', 'O','O','O','O','O', 'U','U','U','U', 'Y'), $string);
}
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #544 Dátum: 2011. 06. 24. - 09:42:49 »

Én ezt szögeltem, többféle képen tudsz alakítani:

Kód:
function url_convert($f, $mode = 1, $t = TRUE)
{
$cf = '';
$allow_chars_default = "abcdefghijklmnopqrstuvwxyz0123456789_-";
$allow_chars_other = "ABVDEFGHIJKLMNOPQRSTUVWXYZ=+<>.";
$allow_chars = $allow_chars_default . $allow_chars_other;
$accent       = array("á", "é", "í", "ó", "ö", "ő", "ú", "ü", "ű", "Á", "É", "Í", "Ó", "Ö", "Ő", "Ú", "Ü", "Ű", "ë", "ä", " ");
$not_accent   = array("a", "e", "i", "o", "o", "o", "u", "u", "u", "A", "E", "I", "O", "O", "O", "U", "U", "U", "E", "A", "_");
$not_accent_2 = array("a", "e", "i", "o", "o", "o", "u", "u", "u", "a", "e", "i", "o", "o", "o", "u", "u", "u", "e", "a", "-");

if ($t==TRUE)
{
$f = trim($f);
}

if ($mode!=3)
{
$f = str_replace($accent, $not_accent, $f);
}
else
{
$f = str_replace($accent, $not_accent_2, $f);
}

if (($mode==2) || ($mode==3))
{
$f = strtolower($f);
$allow_chars = $allow_chars_default;
}

$i = 0;

while ($i < strlen($f))
{
$pos = strpos($allow_chars, substr($f, $i, 1));
if ($pos!==FALSE)
{
$cf .= substr($f, $i, 1);
}
$i++;
}
return $cf;
}

Pl.:

$string = "Ez egy nem megfelelő szöveg";
url_convert($string, 3)
// ez-egy-nem-megfelelo-szoveg

url_convert($string, 2)
// ez_egy_nem_megfelelo_szoveg
« Utoljára szerkesztve: 2011. 06. 24. - 09:47:00 írta spier » Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #545 Dátum: 2011. 06. 24. - 10:09:53 »

Érti azt valaki, hogy van egy index.php fájlom ez beállítja a mappák elérését meg error reporting, tömörítés, stb.
Az index.php végén jön a rendszertöltő fájl esetemben bootstrap.php ezt beemelem require_once-al.
Van egy mod_rewrite-om a hírekhez:
Kód:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^hirek/([0-9]+)-(.*)$ index.php?nid=$1&nname=$2 [QSA,L]

A bootstrap.php-ban szeretném levenni a $_GET['nid'] és $_GET['nname']-t, ott állítom be az osztályhoz a lekérni kívánt dolgokat.
A $_GET viszont nem jut el a bootstrap.php-ig... érti ezt valaki? az index.php-ban simán megkapom de a bootstrap.php-ban már nincs ilyen.  Dühös

Tettem egy ilyet az index.php-ba:
Kód:
if (isset($_SERVER['REQUEST_METHOD']) AND $_SERVER['REQUEST_METHOD'] == 'GET')
{
foreach($_GET as $key => $value)
{
$$key = filter_var($value, FILTER_SANITIZE_STRING);
}
}

if (isset($_SERVER['REQUEST_METHOD']) AND $_SERVER['REQUEST_METHOD'] == 'POST')
{
foreach($_POST as $key => $value)
{
$$key = filter_var($value, FILTER_SANITIZE_STRING);
}
}

és így átadom sima változóba amit tudok használni a bootastrap.php-ban is már, mondjuk legalább filterezem így, de... miért nem lehet használni a $_GET-et a beemelt tartalomban?
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #546 Dátum: 2011. 06. 25. - 13:40:54 »

@Pepe0521:  Nezd meg ezt: http://uk2.php.net/manual/en/intro.iconv.php
@Spier: elvileg kellene ismerje, lehet hogy az rondit bele, hogy atirsz ezt-azt. Probald meg a require elott elerni valamelyik _GET valtozot es a behivas utan is. Ugyan azt a kulcsot probald meg a bootstrap elso es utolso soran is elerni. Lehet valami kitorlo a _GET tartalmat.

Udv,
Tupacko
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #547 Dátum: 2011. 06. 25. - 14:32:01 »

Az az érdekes, hogy az index.php-ban van pár define meg error reporting és beemelem ezt a bootstrap.php-t amiben van egy funkciok.php require meg alatta egy default.tpl include. A default.tpl-ben van a header és body rész tesztelgetni, más nincs benne.
Közben megnéztem pontosabban az url-ben átadott $_GET működik mindenhol csak a mod_rewrite-ban küldött nem megy.
Az az index.php-ben elérhető és máshol nem. Hááát
Próbálkozom, azért köszönöm.
Naplózva
Tas
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 35


« Válasz #548 Dátum: 2011. 06. 25. - 15:23:08 »

A "RewriteEngine on" csak a itt maradt el, ugye? Vigyorog Amúgy nálam is működik. Hogy próbálod használni a $_GET-et? Lehet hülye kérdés, de kitudja Mosolyog
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #549 Dátum: 2011. 06. 27. - 18:52:13 »

Üdv. Mivel ott jó volt újratettem a wamp-ot és megjavult. Valami megállt benne vagy rajta vagy nem tudom.
Igen benne van az "on" csak kivágtam gyorsan azt a részt a jobb szemléltetés érdekében.  Kacsint

Azt vettem észre ez az oop elég fertőző, olyan dolgokat is class-ba akarok írni aminek semmi értelme, hogy ott legyen, egyszerű funkció vagy 1-2 sor ugyan azt adja. hmmm
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #550 Dátum: 2011. 06. 27. - 20:40:46 »

Az igazi OOP-ben nincsenek "a levegoben logo" fuggvenyek. Sot, fuggvenyek sincsenek, hanem osztalyok es azok metodusai. Az csak jo, ha mar egyre tobb mindent egy osztaly reszeve tudsz tenni foleg, ha az valoban az osztaly felelossegkorebe tartozik.
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #551 Dátum: 2011. 07. 05. - 22:32:59 »

Értem, köszönöm.

Nem tudom, hogy használhatom egyszerre az ob_start("ob_gzhandlert"); és az ob_start();-ot
Úgy gondoltam az gzip-et a kód legelején hívom meg, feltéve ha engedélyezett és nincs bekapcsolva a zlib.
A sima ob_start();-ot pedig a template fájl előtt indítom, elmentem egy változóba a tartalmat amit generált és a kódom legvégén amikor már lezártam az adatbázis kapcsolatot akkor kiküldöm a böngészőnek.

Ez így nagyon elvetemült elgondolás?  Bibííí

Előre is köszönök mindenfajta kritikát és/vagy hozzászólást.
Üdv.
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #552 Dátum: 2011. 07. 09. - 17:16:14 »

Üdv.

Kicsit hihetetlen, hogy mindig bevonzok érdekességeket.
Lecsupaszított és egyszerű random karakter készítő és az irány session.

index.php
Kód:
<?php
session_start();

$random_str md5(microtime());
$word substr($random_str06);
$_SESSION['ee'] = $word;

echo $word;
echo "<br /><br />";
echo $_SESSION['ee'];
?>

.htaccess
Kód:
RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php [L]

Frissítem mondjuk F5-el a böngészőt, (mind1 milyen módon), hogy generáljon új random számot és tegye bele sessionba illetve írja ki.
A megjelenő érték és a sessionban lévő érték nem egyezik viszont amit kiír, hogy a sessionban van az meg egyezik.

pl.:
$word az 09c44e
$_SESSION['ee'] ez 09c44e
ee|s:6:"198d95";

Tehát kiírva jó a $word és $_SESSION['ee'] értéke viszont ha megnézem (wampserver) a tmp mappában a fájlt akkor abban eltérő kód van minden esetben.
Ez normális dolog?  He
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #553 Dátum: 2011. 07. 25. - 22:14:41 »

Ne erdekeljen, hogy wamp-ban mi van. Teged nem a low-level resze kell erdekeljen, mint PHP nyelvet felhasznalo fejleszto hanem, hogy az jol mukodjon, ugy ahogy te elvarod. Az mar a PHP fejlesztok dolga es szabadsaga, hogyan taroljak a dolgokat, foleg temporalis allomanyokban Mosolyog

Az ob_start-os kerdesed nem tiszta. Megprobalod feltenni maskepp is esetleg? Mosolyog
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #554 Dátum: 2011. 07. 26. - 11:18:47 »

Értem. Közben kiderült, hogy csak firefox alatt csinálja, akkor valószínűleg vagy a localhost miatt vagy a firefox 4es verziója csámpa. Majd kipróbálom weben is.

Az ob_startal az lett volna a lényegi kérdésem, hogy tudom-e egymásba ágyazni ezeket.
A kód legelején feltételek alapján indítok egy ob_start ob_gzhandlert, ez vagy elindul vagy nem ha engedélyezett a zlib illetve nem fut már tömörítés amivel összeakadna. Ennek tüzetesen utána néztem.

Kód:
if (extension_loaded('zlib') AND !ini_get('zlib.output_compression'))
{
if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])
AND strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE)
{
ob_start('ob_gzhandler');
}
}

És egy sima ob_startor meghvok még ahol a template-ot meghívom.
Ez lebutítva ilyesmi:
Kód:
ob_start();
include(TPLPATH.$template.'.tpl');
$buffer = ob_get_contents();
ob_end_clean();
/* ha mindent lezártam bezártam stb. */
echo $buffer;

Lehet így variálni vagy inkább ne?
Naplózva
Tupacko
WebPillangó

Adminisztrátor
Törzstag
*****
Nem elérhető Nem elérhető

Hozzászólások: 966


WWW
« Válasz #555 Dátum: 2011. 08. 15. - 21:26:15 »

Persze, mukodik. A dokumentaciobol:

Idézet
Output buffers are stackable, that is, you may call ob_start() while another ob_start() is active.

http://php.net/manual/en/function.ob-start.php
Naplózva
pepe0521
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 19


« Válasz #556 Dátum: 2011. 12. 03. - 13:45:01 »

Sziasztok

Nem rég belekezdtem egy kisebb blogmotor megírásába ami utf8 karakterkódolást használ, először úgy gondoltam kommentelni megteszi majd a disqus.
De ezt utólag mégis elvetettem. Saját hobbi projektként indult az egész (nem volt specifikáció) nem több, idő hiányában elkeztem keresgélni a neten hátha találok valmmi kész scriptet és megleszek végre.

Ekkor bukkantam az alábbi scriptre: http://www.scriptsmill.com - egy komment script nem egy újdonság de szerintem amire használnám pont jó.

Viszont karakterkódolási problémába ütköztem a script iso-t használ.

Az eredeti install.php

Kód:
<?

/*

Install v1.04

Copyright (C) 2005-2006 ScriptsMill

E-Mail: info@scriptsmill.com
URL: http://www.scriptsmill.com
Author: Stanislav Perederiy

    This file is part of ScriptsMill Comments.

    ScriptsMill Comments is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 2.1 of the License, or
    (at your option) any later version.

    ScriptsMill Comments is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with ScriptsMill Comments; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA


*/


main();

function main() {

if ($_REQUEST['action'] == 'make_install') {
make_install();
}
else {
display_config_form();
}

}

function display_config_form() {

preg_match("/(.*)\/install.php/", $_SERVER['REQUEST_URI'], $matches);
$script_dir = $matches[1];


print<<<EOF
<html>
<head>
 <title>Comments script configuration</title>
</head>
<body>
<h1>Comments script configuration</h1>
EOF;
if (file_exists("./config.php")) {
print "It seems that you have already installed comments script. If you want to reinstall it, please delete mysql tables created during previous install and delete file config.php";
}
else {
print<<<EOF
<form action="{$_SERVER['REQUEST_URI']}" method="POST">
<input type="hidden" name="action" value="make_install">
<table>
 <tr>
  <td align="right" valign="top"><b>Site URL:</b></td>
  <td align="left"><input name="site_url" type="text" value="http://{$_SERVER['HTTP_HOST']}" size="80"><br><small>(Without trailing slash)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>MySQL host:</b></td>
  <td align="left"><input name="dbhost" type="text" value="" size="80"><br><small>(Ask your hosting provider about this if you're not sure)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>MySQL username:</b></td>
  <td align="left"><input name="dbuser" type="text" value="" size="80"><br><small>(Ask your hosting provider about this if you're not sure)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>MySQL password:</b></td>
  <td align="left"><input name="dbpassword" type="text" value="" size="80"><br><small>(Ask your hosting provider about this if you're not sure)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>MySQL database:</b></td>
  <td align="left"><input name="dbname" type="text" value="" size="80"><br><small>(Ask your hosting provider about this if you're not sure)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>MySQL tables preffix:</b></td>
  <td align="left"><input name="dbtablespreffix" type="text" value="comments_" size="80"><br><small>(Just unique preffix for sql tables names)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Script virtual directory:</b></td>
  <td align="left"><input name="script_dir" type="text" value="{$script_dir}" size="80"></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Admin login:</b></td>
  <td align="left"><input name="admin_name" type="text" value="admin" size="80"><br><small>(Choose login for admin panel of comments script)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Admin password:</b></td>
  <td align="left"><input name="admin_passw" type="password" value="" size="80"><br><small>(Choose password for admin panel of comments script)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Confirm password:</b></td>
  <td align="left"><input name="admin_passw2" type="password" value="" size="80"><br><small>(You should remember this password)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Admin email:</b></td>
  <td align="left"><input name="email_admin" type="text" value="" size="80"><br><small>(leave blank if you don't want to receive notification about new comments on your site)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Script email:</b></td>
  <td align="left"><input name="email_from" type="text" value="" size="80"><br><small>(Email in field 'From:' of notification messages)</small></td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Comments sort order:</b></td>
  <td align="left"><select name="sort_order"><option value="">Newest comments in the end</option><option value="desc">Newest comments in the begining</option></select></td>
 </tr>
 <tr>
 <tr>
  <td align="right" valign="top"><b>WordPress API key:</b></td>
  <td align="left"><input name="akismet_apikey" type="text" value="" size="80"><br>
    <small>(Get api key <a href="http://wordpress.com/signup/">here</a>. Or leave blank if you don't want to filter spam comments)</small>
 </td>
 </tr>
 <tr>
  <td align="right" valign="top"><b>Language:</b></td>
  <td align="left"><select name="language">
   <option value="en">English</option>
   <option value="ptbr">Brazilian Portuguese</option>
   <option value="cnS">Chinese Simple</option>
   <option value="zh">Chinese Traditional</option>
   <option value="nl">Dutch</option>
   <option value="est">Estonian</option>
   <option value="fa">Farsi</option>
   <option value="el">Greek</option>
   <option value="he">Hebrew</option>
   <option value="fr">French</option>
   <option value="de">German</option>
   <option value="it">Italian</option>
   <option value="no">Norwegian</option>
   <option value="pt">Portuguese Standard</option>
   <option value="pl">Polish</option>
   <option value="pl2">Polish (alt version)</option>
   <option value="es">Spanish</option>
   <option value="sv">Swedish</option>
   <option value="th">Thai</option>
   <option value="tr">Turkish</option>
   <option value="ru">Russian</option>
   <option value="ua">Ukrainian</option>
   <option value="vn">Vietnamese</option>
     </select>
  </td>
 </tr>
 <tr>
  <td align="center" colspan="2"><br><input type="submit" value="Install"></td>
 </tr>
</table>
</form>
EOF;

}

@mail("info@scriptsmill.com", "Someone trying to install comments", "Trying to install on {$_SERVER['HTTP_HOST']}", "From: Install <install@scriptsmill.com>\r\n");

print<<<EOF
</body>
</html>
EOF;


}

function make_install() {

print<<<EOF
<html>
<head>
 <title>Comments script installation process</title>
</head>
<body>
<h1>Comments script installation process</h1>
EOF;

 foreach ($_POST as $key => $value) {
  if ($key != 'email_admin' &&
   $key != 'sort_order' &&
   $key != 'sript_dir' &&
   $key != 'akismet_apikey' &&
   $value == '') {
$error_message .= "Field '$key' shouldn't be blank.<br>\n";
  }
 }
 if ($_POST['admin_passw'] != $_POST['admin_passw2']) {
$error_message .= "'Password' and 'Confirm password' fields should have equal values.<br>\n";
 }

 if (!$error_message) {
  print "Connecting to mysql ... ";
  $comments_db_link = mysql_connect($_POST['dbhost'],$_POST['dbuser'],$_POST['dbpassword']);
mysql_select_db($_POST['dbname'], $comments_db_link);
  if (mysql_error()) {
$error_message .=  mysql_error() . "<br>\n";
  }
  else {
print "done<br>";
  }
 }

 if (!$error_message) {
   print "Creating table {$_POST['dbtablespreffix']}data ... ";
  mysql_query("CREATE TABLE `{$_POST['dbtablespreffix']}data` (
 `ID` bigint(3) NOT NULL auto_increment,
 `time` datetime NOT NULL default '0000-00-00 00:00:00',
 `href` varchar(255) NOT NULL default '',
 `text` text NOT NULL,
 `author` varchar(255) NOT NULL default '',
 `email` varchar(255) default NULL,
 `dont_show_email` int(11) default '0',
 `ip` varchar(15) default NULL,
 PRIMARY KEY  (`ID`),
 KEY `time` (`time`,`href`),
 KEY `href` (`href`)
)");
  if (mysql_error()) {
$error_message .=  mysql_error() . "<br>\n";
  }
  else {
  print "done<br>";
  }

   print "Creating table {$_POST['dbtablespreffix']}junk ... ";
  mysql_query("CREATE TABLE `{$_POST['dbtablespreffix']}junk` (
 `ID` bigint(3) NOT NULL auto_increment,
 `time` datetime NOT NULL default '0000-00-00 00:00:00',
 `href` varchar(255) NOT NULL default '',
 `text` text NOT NULL,
 `author` varchar(255) NOT NULL default '',
 `email` varchar(255) default NULL,
 `dont_show_email` int(11) default '0',
 `ip` varchar(15) default NULL,
 PRIMARY KEY  (`ID`),
 KEY `time` (`time`,`href`),
 KEY `href` (`href`)
)");
  if (mysql_error()) {
$error_message .=  mysql_error() . "<br>\n";
  }
  else {
  print "done<br>";
  }

   print "Creating table {$_POST['dbtablespreffix']}subscribes ... ";
  mysql_query("CREATE TABLE `{$_POST['dbtablespreffix']}subscribes` (
 `ID` bigint(20) NOT NULL auto_increment,
 `email` varchar(255) NOT NULL default '',
 `href` varchar(255) NOT NULL default '',
 `hash` varchar(255) NOT NULL default '',
 PRIMARY KEY  (`ID`),
 KEY `href` (`href`)
)");
  if (mysql_error()) {
$error_message .=  mysql_error() . "<br>\n";
  }
  else {
  print "done<br>";
  }


   print "Creating table {$_POST['dbtablespreffix']}banned ... ";
  mysql_query("CREATE TABLE `{$_POST['dbtablespreffix']}banned` (
 `ID` int(1) NOT NULL auto_increment,
 `ip` varchar(15) NOT NULL default '',
 PRIMARY KEY  (`ID`),
 UNIQUE KEY `ip` (`ip`)
)");
  if (mysql_error()) {
$error_message .=  mysql_error() . "<br>\n";
  }
  else {
  print "done<br>";
  }


 }

 if (!$error_message) {

$keychars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_";
$length = 10;
$copy_random_seed = "";
$max=strlen($keychars)-1;
for ($i=0;$i<=$length-1;$i++) {
 $copy_random_seed .= substr($keychars, rand(0, $max), 1);
}

if ($_POST['akismet_apikey']) {
$do_for_check_spam = 1;
}
else {
$do_for_check_spam = 0;
}

$config_file =<<<EOF
<?
\$COM_CONF['site_url'] = "{$_POST['site_url']}";  // Without trailing slash

\$COM_CONF['dbhost'] = "{$_POST['dbhost']}";
\$COM_CONF['dbuser']="{$_POST['dbuser']}";
\$COM_CONF['dbpassword']="{$_POST['dbpassword']}";
\$COM_CONF['dbname']="{$_POST['dbname']}";
\$COM_CONF['dbtablespreffix'] = "{$_POST['dbtablespreffix']}";
\$COM_CONF['dbmaintable'] = "{\$COM_CONF['dbtablespreffix']}data";
\$COM_CONF['dbemailstable'] = "{\$COM_CONF['dbtablespreffix']}subscribes";
\$COM_CONF['dbbannedipstable'] = "{\$COM_CONF['dbtablespreffix']}banned";
\$COM_CONF['dbjunktable'] = "{\$COM_CONF['dbtablespreffix']}junk";

\$COM_CONF['script_dir'] = "{$_POST['script_dir']}";
\$COM_CONF['admin_name'] = "{$_POST['admin_name']}";
\$COM_CONF['admin_passw'] = "{$_POST['admin_passw']}";
\$COM_CONF['email_admin'] = "{$_POST['email_admin']}";
\$COM_CONF['email_from'] = "{$_POST['email_from']}";
\$COM_CONF['admin_script_url']="{\$COM_CONF['script_dir']}/admin.php";

\$COM_CONF['script_url']="{\$COM_CONF['script_dir']}/comments.php";
\$COM_CONF['template']="default";
\$COM_CONF['lang']="{$_POST['language']}";
\$COM_CONF['sort_order']="{$_POST['sort_order']}";      // If you want newest comments at the beginig use "desc"
// otherwise leave blank

\$COM_CONF['anti_flood_pause'] = '60';  // in seconds

\$COM_CONF['akismet_apikey'] = "{$_POST['akismet_apikey']}";
\$COM_CONF['ckeck_for_spam'] = $do_for_check_spam;


\$COM_CONF['copy_random_seed'] = "{$copy_random_seed}"; // Was generated during install.
// Using in email notifications for unsubscribing.
// Don't change it!
?>
EOF;

   print "Writing config file ... ";
  if($handle = fopen("./config.php", 'w')) {
         fwrite($handle, $config_file);
         fclose($handle);
         print "done<br>";
  }
  else {
print "can't open config file for writing, you can manually create file config.php and copy/paste following content into it:<br>
<textarea cols=80 rows=10>{$config_file}</textarea>";
  }


@mail("info@scriptsmill.com", "New install of comments", "Comments installed on {$_SERVER['HTTP_HOST']}", "From: Install <install@scriptsmill.com>\r\n");


$full_path = dirname(__FILE__) . DIRECTORY_SEPARATOR;
  print<<<EOF
<p><b>Installation complete.</b> Now include comments.php to your pages.</p>

<p>For .php files use &lt;? require("{$full_path}comments.php"); ?&gt;</p>

<p>For .shtml files use &lt;!--#include file="/comments/comments.php" --&gt;</p>

<p>See <b>readme.txt</b> for more info.</p>
EOF;

 }

 if($error_message) {
print "<br><b>The following errors occured:</b><br>$error_message";
 }

 print<<<EOF
</body>
</html>
EOF;


}


?>

Viszont  én adtam az adatbázis tábláknak egy másik értéket

Kód:
ENGINE=InnoDB DEFAULT CHARSET=utf8"

Azon is töprengtem már mysql kapcsolódásnál kellene adnom egy
Kód:
mysql_query("SET NAMES 'utf8'");
talán.

Kód:
$comments_db_link = mysql_connect($_POST['dbhost'],$_POST['dbuser'],$_POST['dbpassword']);
mysql_select_db($_POST['dbname'], $comments_db_link);

Ha valaki ismeri a scriptet és tudna segíteni a megoldásban írjon.
Köszönöm mindenkinek előre is.
« Utoljára szerkesztve: 2011. 12. 03. - 13:48:08 írta pepe0521 » Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #557 Dátum: 2011. 12. 04. - 12:42:37 »

Szia.

Ez a script nem igazán "életre való", elég sok gond lenne vele.
Itt van kettő amit bár nem próbáltam de talán működhet Mosolyog

http://www.phpkode.com/projects/item/swg-miniblog/
http://code.google.com/p/miniblog/downloads/list

Ha a google-ba beírod a "php miniblog" kulcsszót még kiad jó párat. Esetleg lehet keresgélni github-on vagy google code-on, vannak jó kis minták/munkák.

Más projektek szerkesztésénél némi munkába telik, de sajátnál ha hasonlót követsz nem lehet gond ilyennel.
Így más nyelveknél sem lehet majd nagyon probléma.

Programnak a Notepad++ kellemesen és egyszerűen használható át lehet állítani a fájlok kódolását könnyedén UTF8 és BOM nélkülire, ez sok gondtól megkímélhet a későbbiekben.
Jobb alul ki is írja hogy ANSI vagy UTF8 stb. a kódolása magának a fájlnak.

HTML:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

PHP kódban lehet agressziózni ha még mindig nem akarja vagy pl. hibát íratsz ki a kódban majd exit('Érvénytelen valami...'):
<?php header("Content-Type: text/html; charset=UTF-8"); ?>

Adatbázis kapcsolatnál hasznos lehet:
set names UTF8
set character set UTF8

esetleg lehet a collation még utf8_general_ci vagy utf8_unicode_ci bár ezt én sem használom már hozzá, ezen kívül még sok beállítás létezik

SQL:
Ha minden (illesztés és a műveletben az illesztés) utf8_general_ci vagy utf8_unicode_ci akkor nem lehet gond.
Ezt manuálisan is át lehet szerkeszteni ha már telepített, bár babra munka. Tehát mindenhol ezt írja ki.

SQL installnál:
DEFAULT CHARACTER SET utf8
DEFAULT COLLATE utf8_general_ci

más nem jut eszembe hirtelen.
Naplózva
pepe0521
Új tag
*
Nem elérhető Nem elérhető

Hozzászólások: 19


« Válasz #558 Dátum: 2011. 12. 04. - 21:27:58 »

Köszi spier!

Ha valaki használni akarja véletlenül a scriptet utf8 alatt is

A comments.php ezt kell cserélni.

Eredeti
Kód:
$comments_db_link = mysql_connect($COM_CONF['dbhost'],$COM_CONF['dbuser'],$COM_CONF['dbpassword']);
mysql_select_db($COM_CONF['dbname'], $comments_db_link);

smcom_main();

Javított
Kód:
$comments_db_link = mysql_connect($COM_CONF['dbhost'],$COM_CONF['dbuser'],$COM_CONF['dbpassword']);
mysql_select_db($COM_CONF['dbname'], $comments_db_link);
mysql_query("SET
NAMES UTF8");
mysql_query("set character
set UTF8");
mysql_query("set collation_connection='utf8_unicode_ci'");
smcom_main();
Naplózva
spier
Tag
**
Nem elérhető Nem elérhető

Hozzászólások: 125


« Válasz #559 Dátum: 2012. 05. 25. - 08:13:48 »

Hello.

Kicsit elakadtam az mvc routing-al. Van esetleg valakinek ötlete, hogy többszintű linknél, miként válasszam ki és adjam meg a betöltendő oldalt és a többi paramétert?
Ugyebár az alap formájában most van a:
www.valami.hu/controller/action/id és ezt ki lehet egészíteni egy www.valami.hu/nyelv/controller/action/id formára.
Ez eddig nem is nehéz. Viszont ha többszintű szerkezetet akarok dinamikusan arra nincs "elegáns" ötletem.
Tehát hol a controller/action/id hol egy /controller/szegmens/szegmens/action/id struktúra kellene stb. stb.

Alap koncepciónál a www.valami.hu/kapcsolat -nál a kapcsolat a controller az action meg index mert az üres hozza az alapot, és lekezelem.
De ha szeretnék olyat, hogy a www.valami.hu/kapcsolat/negyedikemelet/harmadikszek akkor a controller a kapcsolat de a le kellene követnie a többi értéket is ami még nem az action és az id hanem egyéb paraméter és csak ezután jön az alap index action.

Üdv.
« Utoljára szerkesztve: 2012. 05. 25. - 08:18:48 írta spier » Naplózva
Oldalak: 1 ... 26 27 [28] 29   Fel
  Nyomtatás  
 
Ugrás: