Hirdetés

2024. május 28., kedd

Gyorskeresés

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)

Hozzászólások

(#2001) _Petya_


_Petya_
őstag

Hello!

Van egy Perl scriptem, ami így néz ki:

[link]

(Mailman levlsita tagok szinkronizálása mysql-ből)

Ez így működik szépen parancssorból, crontabból is. Viszont felmerült az igény, hogy web felületről, PHP-ból is le lehessen ezt futtatni, mégpedig úgy, hogy a script kimenete látsszon a webfelületen.

PHP-ból a system() függvényhívással próbálom futtatni a Perl scriptet, de ezzel két probléma is van:

- csak az utolsó sort kapom vissza (pl ha többször egymás után több levlistára hívom meg a Perl sub-ot)
- a Perl script system() hívásának kimenete nem látszik PHP-ból, tehát annyit kapok vissza, hogy:

Synchronizing members for list: "listaneve" Synchronizing members for list: "listaneve" finished"------------------------------

, amit közben kiír a sync_members parancs, az nem látszik.

Átírtam a scriptet így: [link] , ennek ellenére továbbra sem látszik PHP-ból a sync_members kimenete, pedig a mailman-out.txt file-ban ott van.

Az első hibára is várom az ötleteket, hogy illik ilyet csinálni? Köszönöm előre is a segítségeteket!

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2002) tildy válasza _Petya_ (#2001) üzenetére


tildy
nagyúr

exec-el nem fut?

[ Szerkesztve ]

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#2003) _Petya_ válasza tildy (#2002) üzenetére


_Petya_
őstag

Hello!

exec()-el egyáltalán nem kapok semmilyen kimenetet. passthru()-val pedig ugyanaz az eredmény, mint system()-mel.

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2004) tildy válasza _Petya_ (#2003) üzenetére


tildy
nagyúr

Pedig kell kapnod . Lehet kell valami kimeneti filet vagy valamit cisnálnod a perlnek.

Nekem c programmal működött így:

exec(
"/opt/wbmpgen/wbmpgen /opt/wbmpgen/images/hungary.wbmp ".
"/opt/wbmpgen/images/".$filename.
" 43 25 ".$wd["LHBP"]." ".$ws["LHBP"]. // budapest
" 58 32 ".$wd["LHSN"]." ".$ws["LHSN"]. // szolnok
" 30 57 ".$wd["LHPP"]." ".$ws["LHPP"]. // pecs-pogany
" 27 36 ".$wd["LHSA"]." ".$ws["LHSA"]. // szentkiraly
" 78 24 ".$wd["LHDC"]." ".$ws["LHDC"]. // debrecen
" 58 53 ".$wd["LHUD"]." ".$ws["LHUD"] // szeged
);

"Tartsd magad távol azoktól, akik le akarják törni az ambíciódat! A "kis" emberek mindig ezt teszik, de a nagyok éreztetik veled, hogy te is naggyá válhatsz" - Mark Twain

(#2005) drShaman


drShaman
aktív tag

Egy "csúnya szó" moderátort csinálok. Egy tömbben tárolom a cserélendő szavakat, egy másikban pedig azokat, amikre cserélje. Ezzel nincs is gond. Viszont kéne nekem egy olyan függvény, melynek segítségével figyelmen kívül hagyhatnám a vizsgálat alatt, hogy kis vagy nagy betűvel írták be. Az StrToLower-rel próbáltam, de így az összes szó kisbetűs lett.

(#2006) fordfairlane válasza drShaman (#2005) üzenetére


fordfairlane
veterán

Esetleg az str_ireplace. Ha az strtr-t használod, akkor a php manual strtr oldalán a user kommentekben találsz egy case insensitive függvényt, amit stritr-nek nevezett el az írója.

x gon' give it to ya

(#2007) _Petya_ válasza tildy (#2004) üzenetére


_Petya_
őstag

Számomra az a furcsa, hogy ugyanúgy a Perl írja ki a print paranccsal a "Syncronizing.." szöveget, és a mailman_sync kimenetét is, file-ból. Ennek ellenére az egyik látszik, a másik pedig nem.

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2008) cucka válasza _Petya_ (#2003) üzenetére


cucka
addikt

Izé, php manual ismerős? :)

string exec ( string $command [, array &$output [, int &$return_var]] )

A $output tömbben kell visszakapd a perl programod kimenetét, soronként, a $return_val pedig a program visszatérési értékét tárolja. Figyeld meg, hogy mindkettő referencia szerint van átadva. Példa:

$out=array();
exec('./azenprogramom.pl', $out);
print_r($out);

Elvileg így jó kell legyen, legalábbis ennél jobb ötletem nincs..

[ Szerkesztve ]

(#2009) _Petya_ válasza cucka (#2008) üzenetére


_Petya_
őstag

Oké, így már átjön minden sor, de a mailman_sync kimenete (amit a Perl hív system-mel) akkor sincs benne.

Erre van valakinek ötlete?

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2010) cucka válasza _Petya_ (#2009) üzenetére


cucka
addikt

Próbáltad, hogy elkapod a perl progiban a mailman kimenetét és kiírod?
A system() függvénynél azt mondja a help, hogy This is not what you want to use to capture the output from a command, for that you should use merely backticks

Itt van valamiféle leírás erről a módszerről, ez alapján elvileg a system hívás helyett valami hasonlót kéne csinálni:

$out=`parancs 2>&1`;
print $out;

Mondjuk lehet ez így nem jó, perl-ből nem vagyok valami nagy ász..

[ Szerkesztve ]

(#2011) _Petya_ válasza cucka (#2010) üzenetére


_Petya_
őstag

Hello!

Igen, próbáltam, a második pastebin-es linken ott van. Ekkor a system-en belül, a parancs kimenetét beírom egy file-ba, majd később a perl-el íratom ki. Így:

system("/usr/lib/mailman/bin/sync_members -a=no -w=no -g=no -f /tmp/maillist ".$data{listname}." > /tmp/mailman-out.txt");
....
open(RET, "</tmp/mailman-out.txt");
while(<RET>) {
print $_;
}

Akkor kipróbálom a backtick-et is.

szerk: De egyébként ugyanott írják, hogy:

[I]
To read both a command's STDOUT and its STDERR separately, it's easiest to redirect them separately to files, and then read from those files when the program is done:

system("program args 1>program.stdout 2>program.stderr");
[/I]

Ez alapján az én módszeremnek is működnie kellene.

Petya

[ Szerkesztve ]

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2012) cucka válasza _Petya_ (#2011) üzenetére


cucka
addikt

Igen, ez elkerülte a figyelmemet. A második verziós perl kód alapján nem tudok mást elképzelni, mint hogy valamiért nem is kerül be a /tmp/mailman-out fileba semmi, szóval ezzel kezdeném a debugolást :)

(#2013) _Petya_ válasza cucka (#2012) üzenetére


_Petya_
őstag

Megnéztem, belekerül.

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2014) PazsitZ


PazsitZ
addikt

Üdv! Még csak most kezdek belemerülni a PHP rejtelmeibe, így várom a szíves segítségeteket.
Egy fórum hozzászólásait egy textarea tagbe bekérem és MySQL-ben varchar-ban tárolom, echo-val iratom ki.
A problémám az, hogy a sortörést nem jegyzi meg. Egymás után bedobálja a szöveget.
Hol a hiba? Avagy milyen formázást kellene külön elvégeznem a bemeneten?

- http://pazsitz.hu -

(#2015) PazsitZ válasza PazsitZ (#2014) üzenetére


PazsitZ
addikt

Meg is találtam a hiba kulcsát. Elhamarkodottan kérdeztem. :U
A forrásban is jól adja vissza, csak a html nem ételmezi ugye a sortörést.
Szóval vagy a kimenetben kell cserélnem a sortörést <br/> taggel, vagy a <pre></pre> taget kell használnom az üzenetre.

- http://pazsitz.hu -

(#2016) fordfairlane válasza PazsitZ (#2015) üzenetére


fordfairlane
veterán

Így van, nl2br .

x gon' give it to ya

(#2017) cucka válasza PazsitZ (#2015) üzenetére


cucka
addikt

csak a html nem ételmezi ugye a sortörést.
Ez így nem teljesen igaz. A html a sortörés, tab és szóköz karaktereket is értelmezi, méghozzá úgy, hogy mindegyiket átalakítja 1 darab szóközzé. Tehát 1 darab sortörésből és egy 3 sortörés + 2 tab kombóból is egy darab szóközt fog csinálni. Ez azért van így, hogy lehessen szépen megszerkesztett, olvasható (magyarul indentált :) ) html kódot írni anélkül, hogy a szerkesztésnél használt tab-ok és újsorok tönkretennék a végeredményt.

[ Szerkesztve ]

(#2018) fordfairlane válasza cucka (#2017) üzenetére


fordfairlane
veterán

Whitespace collapse, vagy valami hasonlónak hívja a művelt francia...

x gon' give it to ya

(#2019) PazsitZ válasza fordfairlane (#2016) üzenetére


PazsitZ
addikt

Köszi!
Én konkrétan

$szoveg=str_ireplace("\n",'<br />',$szoveg);

módszerrel oldottam meg, nem gondoltam, hogy erre is van parancs :)

(#2017) cucka: Igazad van, rosszul fogalmaztam.

Még lenne egy kérdésem: Egy beléptetéses rendszernél mire kell figyelni? :F
Egyelőre sima session-el megírtam, de nem tudom mennyire "biztonságos vagy törékeny". :F

[ Szerkesztve ]

- http://pazsitz.hu -

(#2020) cucka válasza PazsitZ (#2019) üzenetére


cucka
addikt

Így jobb:

$szoveg=str_ireplace(array("\r\n", "\n", "\r"),'<br />',$szoveg);

Egyébként velem előfordult már, hogy az nl2br nem működött, a fenti sor viszont igen. Arra nem jöttem rá, hogy miért, elvileg ugyanaz..

(#2021) cucka válasza PazsitZ (#2019) üzenetére


cucka
addikt

Még lenne egy kérdésem: Egy beléptetéses rendszernél mire kell figyelni? :F
A session jó. Figyelj oda az sql injection elleni védelemre és belépés ellenőrzésénél tegyél be egy kis várakozást (lásd usleep() ) , így nehézkes lesz találgatással kitalálni a jelszót..

(#2022) _Petya_ válasza _Petya_ (#2013) üzenetére


_Petya_
őstag

Van valakinek ötlete?

Petya

Fontos feladatot soha ne bízz olyan gépre, amit egyedül is fel tudsz emelni!

(#2023) pentium4


pentium4
senior tag

hali!

egy kis help kéne ez ügyben: [link]
ezt sikerült megcsinálnom js el: [link], de valami nem kóser, mert firefox alatt nem megym viszont IE alatt simán megy!
esetleg ha php ra átültetnénk és nem lenne js hanem csak php és html form!
így firefoxba is működne elvileg vagy ezt megbuhizni úgy hogy menjen rókába is!
köszi a segítséget!

P4

(#2024) cucka válasza pentium4 (#2023) üzenetére


cucka
addikt

Most mit kell ezen nézni? Bármit írok, azt mondja, nincs ilyen rendelés.

esetleg ha php ra átültetnénk és nem lenne js hanem csak php és html form!
Elég a js is a feladat megoldásához, de a linkelt oldalon az ultraweb szarjait leszámítva 1 betűnyi javascript-et sem látok..

(#2025) pentium4 válasza cucka (#2024) üzenetére


pentium4
senior tag

azért, mert reggel sikerült megcsinálni működőképesre!
így az itteni segítség már nem kell!

P4

(#2026) bodom87


bodom87
tag

hali! egy egyszerű képgalériát szeretnék, egy könyvtárba töltöm felfele a képeket és az megjelenik az oldalon szépen sorba

(#2027) raczger válasza bodom87 (#2026) üzenetére


raczger
őstag

és mi a kérdés? :U

www.movat.hu - http://bit.ly/2mIziA4

(#2028) #34784256 válasza bodom87 (#2026) üzenetére


#34784256
törölt tag

Ilyet csináltam én is, a gondom már csak az, hogy kellene egy olyan webtárhely, ahova akár több GB-t is feltölthetek ls nincsennek korlátozva sem a PHP-k ( amit csináltam az a feltöltött képekből csinál thumbnail-t, ha még nincs, majd elmenti egy fájlba, sajnos ahol én nekem van tárhelyem, ott a PHP nem tud fájlt létrehozni ).

(#2029) Paradox1


Paradox1
csendes tag

hali
kérlek segítsetek mert nagyon nagy bajba vagyok
kell egy ***** mert az életem és a jövöm függ tölle
Kérlek

Ilyet ne is kérj, vagy ha kérsz is, ne itt a PH!-n tedd!!

[ Módosította: Racecam ]

(#2030) Fire/SOUL/CD


Fire/SOUL/CD
félisten

Hali!

Adott egy honlap, amit el kell készítenem. A grafikus elküldte a terveket, ebből nyílvánvaló, hogy Flash-be kell az egész oldalt csinálnom. Viszont azt is kérte a megrendelő, hogy legyen üzenőfal benne ahova a látogatók leírhatják a véleményüket, javaslataikat stb.
Elméleti tanácsot kérnék, hogy lehetne ezt megoldani, tehát PHP+FLASH.
Tehát külön-külön nem gond(el tudom készíteni az oldalt Flashbe és az üzenőfalat is kölün PHP-be), csak hogy tudom "átadni" a PHP-vel kezelt üzeneteket a FLASH-nek?

Remélem érthetően fogalmaztam.

Fire.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#2031) Fire/SOUL/CD válasza Fire/SOUL/CD (#2030) üzenetére


Fire/SOUL/CD
félisten

Hali!

Kérdésem tárgytalan.

Fire.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#2032) cucka válasza Fire/SOUL/CD (#2030) üzenetére


cucka
addikt

Nincs semmilyen nagy trükk, flash-ből le tudsz kérni egy url-t, az url mögött meg a te php programjaid vannak. Ezek között lesz olyan, ami berak egy GET/POST paraméterként kapott üzenetet az adatbázisba, lesz olyan, ami a paraméterek alapján visszaadja xml-ben (vagy bármiben) a korábban írt üzeneteket, stb.

mod: látom, időközben kiderült, hogy fölöslegesen írtam, de ezért még nem törlöm ki, hátha segít valakinek.. :)

[ Szerkesztve ]

(#2033) bodom87 válasza raczger (#2027) üzenetére


bodom87
tag

a php kódja kellene. amiket eddig találtam nem voltak jók

mod: ezt az oldalt (ami aláírásodban van) még nem néztem. szétnézek :)

[ Szerkesztve ]

(#2034) Fire/SOUL/CD válasza cucka (#2032) üzenetére


Fire/SOUL/CD
félisten

Hali!

Kösz, hogy foglalkoztál a kérdésemmel. Én is rájöttem időközben, hogy mennyire egyszerű a dolog, ezért írtam hogy tárgytalan.

Fire.

Mindenki tudja, hogy bizonyos dolgokat nem lehet megvalósítani, mígnem jön valaki, aki erről nem tud, és megvalósítja. (Albert Einstein)

(#2035) raczger válasza bodom87 (#2033) üzenetére


raczger
őstag

Ok, van ott olyan script, ha jól emlékszem.

www.movat.hu - http://bit.ly/2mIziA4

(#2036) exhumano


exhumano
csendes tag

Üdv.!
Egy kis segítséget szeretnék kérni!
Van egy ilyen levélküldő scriptem, amely flash-ből kapja a változókat.
<?php
$message = $HTTP_POST_VARS['Message'];
$name = $HTTP_POST_VARS['Name'];
$email = $HTTP_POST_VARS['Email'];

$name = stripslashes($name);
$email = stripslashes($email);
$message = stripslashes($message);

$rec_email = "info@akarmi.com";
$subject = "Üzenet a weboldalról";

$msg_body = "Üzenet érkezett: $SERVER_NAME \r\n";
$msg_body .= "------------------------------------------\r\n";
$msg_body .= "Az üzenet küldo neve:\r\n $name \r\n";
$msg_body .= "E-Mail címe: $email\r\n";
$msg_body .= "Üzenete: $message\r\n";

$header_info = "From: ".$name." <".$email.">";

mail($rec_email, $subject, $msg_body, $header_info);

?>
N
Tudom, hogy a flash utf-8-at használ, d nem tudom megoldani, hogy az ékezetes karakterek megfelelően jelenjenek meg.
Valaki tudna egy egyszerű megoldást?
Köszi!

(#2037) vakondka válasza exhumano (#2036) üzenetére


vakondka
őstag

Szia,

Lehet, hogy már az is elég ha ezt a php fájlt UTF-8 formátumban mented el.

https://toptarget.hu - Online Marketing Ügynökség

(#2038) exhumano válasza vakondka (#2037) üzenetére


exhumano
csendes tag

Köszi, kipróbálnám, de nem tudok rájönni azt hogyan kell. :O :B
sorry.

(#2039) vakondka válasza exhumano (#2038) üzenetére


vakondka
őstag

Attól füg, hogy milyen kódszerkesztőt használsz,
de általában Mentés másként-->fájlneve: valami.php
és alatta ki lehet választani a karakter kódolást, ami általában alapból ANSI.
Ott lesz alatta valahol, hogy UTF-8.
Elmented és kész :)
Ha nincs kódszerkesztő programod, akkor a Windows beépített Jegyzettömb programja is jó erre a célra, pontosan így működik.
De hosszú távon jobban jársz ha szerzel egy kódszerkesztőt,
pl Editplus, Notepad++, stb. (Esetleg Dreamwaver)

https://toptarget.hu - Online Marketing Ügynökség

(#2040) Tele von Zsinór válasza vakondka (#2039) üzenetére


Tele von Zsinór
őstag

Notepad rak bele byte order mark-ot (BOM), így nem tudsz utána sessiont, sütiket, headert használni. Azzal inkább ne.

(#2041) vakondka válasza Tele von Zsinór (#2040) üzenetére


vakondka
őstag

jó tudni...
...látszik hogy sosem használtam kódszerkesztésre a notepadot...:B

https://toptarget.hu - Online Marketing Ügynökség

(#2042) exhumano válasza vakondka (#2039) üzenetére


exhumano
csendes tag

Sajnos így nem jó. DW-öm van, azon nincs ilyen lehetőség a mentésnél, de notepad++-al megoldottam, viszont semmi sem változott.
Egy másik fórumon olvastam, hogy iconv() függvényt kellene használni.
Próbálkozom, csak sajna php-ból elég homály vagyok. :B
Azért köszi.

(#2043) vakondka válasza exhumano (#2042) üzenetére


vakondka
őstag

Legyen ez az utasítás a php fájlod első sora:

header("Content-type: text/plain; charset=utf-8");

(nem lehet előtte sortörés, szóköz sem !)

természetesen van a Dreamweaver-ben karakter kódolás beállítása:

modify -> page properties -> title/encoding fül:
Encoding - Unicode 4.0 UTF-8

Én sosem használtam még Dreamweaver-t....
...de a Google egyből kidobta a beállítást és gondolom help-je is van a programnak :)

https://toptarget.hu - Online Marketing Ügynökség

(#2044) exhumano válasza vakondka (#2043) üzenetére


exhumano
csendes tag

Sajnos nem jó így sem. :(
Azt hittem ez egyszerűbb dolog lesz.

(#2045) vakondka válasza exhumano (#2044) üzenetére


vakondka
őstag

Ezt próbáld még meg, több ötletem nincs:

<?php
$message = $HTTP_POST_VARS['Message'];
$name = $HTTP_POST_VARS['Name'];
$email = $HTTP_POST_VARS['Email'];
$name = stripslashes($name);
$email = stripslashes($email);
$message = stripslashes($message);
$rec_email = "info@akarmi.com";
$subject= "Üzenet a weboldalról";
$msg_body= "Üzenet érkezett: $SERVER_NAME \r\n";
$msg_body.= "------------------------------------------\r\n";
$msg_body.= "Az üzenet küldő neve:\r\n $name \r\n";
$msg_body.= "E-Mail címe: $email\r\n";
$msg_body.= "Üzenete: $message\r\n";
$header_info = "From: ".$name." <".$email.">\n";
$header_info= "MIME-Version: 1.0\n";
$header_info.= "Content-type: text/html; charset=utf-8\n";
mail($rec_email, $subject, $msg_body, $header_info);
?>

https://toptarget.hu - Online Marketing Ügynökség

(#2046) exhumano válasza vakondka (#2045) üzenetére


exhumano
csendes tag

Hoppá! Tökéletes! :DD
Már tiszta hab voltam, hogy nem lesz jó, pedig 2 napja szenvedek vele.
Én az iconv() függvénnyel próbálkoztam, de sötét vagyok nagyon.
Tehát, ha mást is érdekel később, ez itt a jó megoldás.
Nagyon köszi!

[ Szerkesztve ]

(#2047) vakondka válasza exhumano (#2046) üzenetére


vakondka
őstag

Nagyon szívesen ;)

https://toptarget.hu - Online Marketing Ügynökség

(#2048) Zsu_


Zsu_
senior tag

Sziasztok,

Nem vagyok egy php guru, lécci segítsetek.

Szeretnék csinálni egy html, php űrlapot (lesz rajta validálás, stb...), csak akkor lehet majd elküldeni, ha minden mező ki van töltve és minden mezőbe formailag jó adat került (pl. 6 szám).

Idáig még nincs is problémám, csak a feldolgozás részével.

Utána azt szeretném csinálni, hogy az elküld gombra a kitöltött adatokból egy szép formátumú (előre formázott) dokumentum (pdf vagy doc vagy ilyesmi) generálódjon és azt küldi el mailben.

Ez lehetséges? Tudtok esetleg hasonló példaprogit küldeni nekem?

Előre is köszi a segítséget!

[ Szerkesztve ]

(#2049) vakondka válasza Zsu_ (#2048) üzenetére


vakondka
őstag

Szia,

Mivel ezt nem egyszerű megírni, érdemes egy jól megírt alapra építeni :)
Próbáld ki ezt: [link]

https://toptarget.hu - Online Marketing Ügynökség

(#2050) Zsu_ válasza vakondka (#2049) üzenetére


Zsu_
senior tag

Köszi, bár ez elég bonyolultnak tűnik :(

Útvonal

Fórumok  »  Szoftverfejlesztés  »  PHP programozás (kiemelt téma)
Copyright © 2000-2024 PROHARDVER Informatikai Kft.