WebPillangó főoldal
webszerkesztés és photoshop fórum - WebPillangó
WebPillangó
»
Programozás
»
PHP
Username:
1 óra
1 nap
1 hét
1 hónap
Mindig
Password:
Főoldal
Súgó
Keresés
Quick Search
Advanced Search
[Close]
Bejelentkezés
Regisztráció
Oldalak:
1
...
26
27
[
28
]
Le
« előző
következő »
Nyomtatás
Szerző
Téma: PHP (Megtekintve 62836 alkalommal)
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
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ő
Hozzászólások: 19
Re: PHP
«
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(
'&#225;'
=>
'a'
,
'&#233;'
=>
'e'
,
'-'
=>
'-'
,
'+'
=>
'-'
,
'&#246;'
=>
'o'
,
'&#337;'
=>
'u'
,
'&#252;'
=>
'u, '
&
#38;#369;'=>'u', '&#250;'=>'u', '&#243;'=>'o', ' '=>'-', '&#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ő
Hozzászólások: 35
Re: PHP
«
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ő
Hozzászólások: 19
Re: PHP
«
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(
'&#225;'=>'a', '&#233;'=>'e', '-'=>'-', '+'=>'-', '&#246;'=>'o', '&#337;'=>'u', '&#252;'=>'u, '&#369;'=>'u', '&#250;'=>'u', '&#243;'=>'o', ' '=>'-', '&#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ő
Hozzászólások: 118
Re: PHP
«
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ő
Hozzászólások: 118
Re: PHP
«
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.
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ő
Hozzászólások: 958
Re: PHP
«
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ő
Hozzászólások: 118
Re: PHP
«
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.
Próbálkozom, azért köszönöm.
Naplózva
Tas
Új tag
Nem elérhető
Hozzászólások: 35
Re: PHP
«
Válasz #548 Dátum:
2011. 06. 25. - 15:23:08 »
A "RewriteEngine on" csak a itt maradt el, ugye?
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
Naplózva
spier
Tag
Nem elérhető
Hozzászólások: 118
Re: PHP
«
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.
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ő
Hozzászólások: 958
Re: PHP
«
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ő
Hozzászólások: 118
Re: PHP
«
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?
Előre is köszönök mindenfajta kritikát és/vagy hozzászólást.
Üdv.
Naplózva
spier
Tag
Nem elérhető
Hozzászólások: 118
Re: PHP
«
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_str
,
0
,
6
);
$_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?
Naplózva
Tupacko
WebPillangó
Adminisztrátor
Törzstag
Nem elérhető
Hozzászólások: 958
Re: PHP
«
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
Az ob_start-os kerdesed nem tiszta. Megprobalod feltenni maskepp is esetleg?
Naplózva
spier
Tag
Nem elérhető
Hozzászólások: 118
Re: PHP
«
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ő
Hozzászólások: 958
Re: PHP
«
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ő
Hozzászólások: 19
Re: PHP
«
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 <? require("{$full_path}comments.php"); ?></p>
<p>For .shtml files use <!--#include file="/comments/comments.php" --></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ő
Hozzászólások: 118
Re: PHP
«
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
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ő
Hozzászólások: 19
Re: PHP
«
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
Oldalak:
1
...
26
27
[
28
]
Fel
Nyomtatás
« előző
következő »
Ugrás:
Kérlek válassz egy célt:
-----------------------------
WebPillangó
-----------------------------
=> Általános társalgó
=> Programozás
=> Grafika
=> Weboldal készítés
Töltés...