Új hozzászólás Aktív témák
-
cucka
addikt
A következő sort:
$line = $REMOTE_ADDR . "|" . $mday . $month . $year . "\n";
Cseréld ki erre:
$line = $_SERVER['REMOTE_ADDR'] . "|" . $mday . $month . $year . "\n";
A hiba oka, hogy a letöltött script-ed meglehetősen szarul van megírva és csak akkor működik, ha a szerveren a register_globals be van kapcsolva. A bekapcsolt register_globals egy óriási biztonsági lyuk, ezért jó ideje alapból ki van kapcsolva a php-ban, sőt, a fejlesztés alatt álló 6-os php-ból ki is lesz szedve teljesen.
Egyébként bohóckodni jó ez a log file-al működő látogató számlálás, de javaslom, minél hamarabb cseréld ki egy olyanra, ami adatbázist használ.
[ Szerkesztve ]
-
The DJ
addikt
Ismét csak köszönöm, ez volt a hiba. Lassan kezdem azt érezni, hogy nagyon rá kell feküdnöm erre a PHP témára, mert egyre többször kell használnom és szükség lenne alapvető ismeretekre ezen a téren is.
https://wpszaki.hu - Minden, ami WordPress, cikkek kezdőknek és haladóknak.
-
emitter
őstag
JS-ellenőrzés már kész, most azon gondolkozom, hogy a szerver-oldalon hogyan tudom leghatékonyabban megoldani ugyanezt..
Azt szeretném, hogy akkor is működjön az ellenőrzés, ha ki van kapcsolva a JS a böngészőben. De nem lenne túl szerencsés, ha egy elrontott mező után mindent újra ki kéne tölteni. Tehát php-ből írjak vissza minden kitöltött mezőt, ugye?
Az ellenőrzést hogyan csináljam? Egy marha hosszú if-sorozattal, így?if(isset( $_POST["submit"] )) {
if( !isset($_POST["mezo1"]) ) {
$hianyos[$i] = "mezo1";
$i++;
}
if( !isset($_POST["mezo2"]) ) {
$hianyos[$i] = "mezo2";
$i++;
}
.
.
.
if( !isset($_POST["mezo9"]) ) {
$hianyos[$i] = "mezo9";
$i++;
}
else {
echo "<p>Sikeres regisztráció!</p>";
}
//kitöltött mezők visszaírása; hibás mezők jelzése
} -
whYz
addikt
Hali
Azt szeretném megoldani, hogy van 2 login rendszerem két különböző gépen, és ezt szeretném egy beléptetőrendszerrel összehozni.
Tehát egy login lenne, ami ellenőrizné, hogy melyik mysql adatbázisban van az a felhasználó amit épp beírtak és oda lépjen be.Erre tudtok valami használható megoldást?
-
emitter
őstag
válasz vakondka #2254 üzenetére
ja, de most csak a példa kedvéért mezo1, stb. a mezők nevei szóval akkor ezt nem lehet megúszni (áll vagy 30 mezőből az űrlapom..)
--
Viszont lenne egy másik kérdésem: ki lehet-e nyerni valahogyan a $_POST elemeinek a nevét? Hogy ne kelljen egy helytelen űrlapkitöltés esetén mind a 30 már kitöltött mezőt egyenként visszairatni, hanem egy ciklussal végigmehessek a $_POST elemein. Lehet úgy hivatkozni mondjuk az első elemére, hogy $_POST[0], vagy csak úgy, h $_POST['mezo1']?
-
cucka
addikt
válasz emitter #2256 üzenetére
Ha teljesen korrekt ellenőrzést akarsz az űrlapodra, amely mindenhol kijelzi a releváns hibaüzenetet, akkor az sok meló. Mindent ellenőrizni kell, esetleg azokat a műveleteket/ellenőrzéseket összevonhatod, amelyeket több mezőnél is használsz. (Tipikusan ilyen pl. az, hogy üres-e a mező. Csinálsz egy tömböt azokból a mezőnevekből, amelyeknek nem szabad üresnek lenni és foreach-el megnézed mindegyikre, hogy valóban nem üres-e a $_POST tömbben. Persze ez csak akkor segít, ha sok mezőre kell ugyanezt ellenőrizni..)
Viszont lenne egy másik kérdésem: ki lehet-e nyerni valahogyan a $_POST elemeinek a nevét?
Például array_keys() függvénnyel kapsz egy tömböt a $_POST-ban található kulcsokról. Vagy foreach ($_POST as $kulcs => $ertek) formában is végigiterálhatsz rajta.
Egyébként azt javaslom, hogy ne a $_POST elemein menj végig az ellenőrzésnél, hanem a programod tudja, hogy milyen elemeknek kéne ott szerepelniük. Egy php programnak bármikor bármit el lehet post-olni, ezért ne a post-olt adatok alapján ellenőrizd a post-olt adatokat. (Ez kicsit hülyén hangzik, de pontosan ezt írtad le)[ Szerkesztve ]
-
Boxer001
veterán
Sziasztok!
Érdeklődnék a téma iránt, esetleg nem tud valaki valamilyen weboldalt linkelni, vagy bármilyen segédanyagot, ahol olvashatnék? Abszolút teljesen kezdő érdeklődés van csak bennem, egyelőre azt szeretném eldönteni, hogy fekszik-e egyáltalán ez, érdemes-e belevágnom.
Előre is köszi![ Szerkesztve ]
-
L3zl13
nagyúr
-
Redpaladin
tag
Sziasztok!
Telepítéssel kapcsolatban van a problémám,s mindenféle módszert kipróbáltam már ezért fordulok hozzátok,hátha közületek valaki tudna nekem segíteni.
Telepítettem: Xampp -ot,s előtte leállítottam a UAC-t ahogy kérte a telepítő,de sajnos localhost nem jön be. A control panelben asszontja porthiba miatt nem indul el a apache szerver,s mindenféle portot állítottam,de eddig nagy semmi. Gondoltam,sebaj,ott van még a Wamp,de sajnos vele se jutottam előrébb,ugyanugy nem indul el a localhost...
Szerintetek mi a hiba? Vistával van a gond? Vagy vírusirtó tűzfala babrál vele?
Nagyon remélem tudd valaki segíteni,mivel munkámhoz kellene s nagyon megszívok a munkahelyemen.... -
r0by
addikt
válasz Redpaladin #2261 üzenetére
Amiket említettél, azokat nem használtam még, szóval nem tudok nyilatkozni, hogy miért nem indulna el.
Viszont az Appserv nekem nagyon bevált, ezért sem ismerem a többit
Ezt már nyúztam xp és vista alatt is, most pedig win7 alatt kínzom.
Eddig még sosem volt vele gondom (kopp-kopp-kopp) -
Balint133
aktív tag
Sziasztok, lehet off topic lesz, de php jellegű a probléma.
Adott egy websiteom, amin van egy WordPress nevezetű valami...
Ezen a wordpressen csináltam egy oldalt 'Videók' néven, ezen a mellékoldalon lenne egy táblázatféleség amiben a videók nevei (??helyes ez így??) lennének, egy 'Lejátszás Gombbal' mellettük. A táblázat felett lenne egy DivX webplayer, melynek egy olyan dinamikus kódja lenne, hogy az elérési URL-t a lejátszás gomb alatt levő változó értékét írná be.<object classid="clsid:67DABFBF-D0AB-41fa-9C46-CC0F21721616" width="500" height="340" codebase="http://go.divx.com/plugin/DivXBrowserPlugin.cab">
<param name="custommode" value="none" />
<param name="autoPlay" value="false" />
<param name="src" value="http://enoldalam.hu/videok/$valtozo" />
<embed type="video/divx" src="http://enoldalam.hu/videok/$valtozo" custommode="none" width="500" height="340" autoPlay="false" pluginspage="http://go.divx.com/plugin/download/">
</embed>
</object>Namár most, az lenne a kérdésem h a 'gyári' WP-be valamilyen módon ez beépíthető, vagy egyszerűbb ha lelopom a skint és csinálok egy videok.php-t ami ezt megvalósítja
(igen a fenti player hibás, mert only HTMLbe beágyazható, de így prog órán örülök h ezt letudtam vadászni a netről )
Köszönöm előre is
[ Szerkesztve ]
Két küklopsz négy szem közt!!
-
cellpeti
veterán
Sziasztok!
Most állnék neki PHP-nek,letöltöttem az AppServet,de ott mit kell elindítanom,hogy php állományt tudjak futtatni?
Tigris, tigris, csóvafény...
-
emitter
őstag
a max_file_size csak IE esetén működik? Valahol ezt olvastam, talán igaz, mert nekem FF nem jelez semmi, ha 100kB-nál nagyobbat akarok feltölteni..
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<input type="file" name="image" /> -
dodopek
addikt
Sziasztok!
A kérdésem csak nagy vonalakban tartozik a php fórumba.Merthogy abban íródott a coppermine foto galery,amivel kapcsolatban kérdeznék...
Nem tudjátok véletlenül,hogy hogyan lehet beállítani,hogy a coppermine captcha-t használjon regnél,illetve hozzászólásnál?Mert én nem találtam meg az admin beállításokban...
Köszi,és bocs,ha valakinek a lelkébe tiportam,mert ez nem épp ide való kérdés...
Dodo -
Redpaladin
tag
Megprobáltam,sajnos nem müködött. Bár az XP alatt egyből elindult a Apache szerver,csak a Vista alatt van valami gond.
Azon gondolkozom,hogy ha megváltoztatom a portot akkor müködne? Alapbeállítás szerinti port van: 80. S Xamp alatt hogy tudom átállítani más portot,mondjuk 81.re?
Más tippem nincs! -
Louloudaki
aktív tag
válasz Redpaladin #2269 üzenetére
esetleg ha van skype a gépen, akkor az lenyúlja a 80as portot a webservertől, ha a win indítása közben a skype előbb kerül sorra mint a server.
de lehet a tűzfal is a hibás. -
zeix
senior tag
válasz Redpaladin #2269 üzenetére
Nálam is ez a gond Vista64 bit. Nem indul el automatán.
Én AppServ-et használok.
Manual control server => Apache startés elindul a localhost...
[ Szerkesztve ]
-
zeix
senior tag
Amiért pedig ide jöttem...
Olyat szeretnék csinálni PHP-val, ha bejelentkezik valaki az oldalra, akkor rögtön lássam, hogy belépett és ő is lásson engem ugyanazon az oldalon.
Lehetne információkat küldeni egymásnak, adatbázis felé, stb. valós időben.Vagy ehhez már Flash+PHP kell?
Remélem érthető
Köszönöm.
-
zeix
senior tag
-
őstag
Így néz ki az oldal: [link]
Az volna a kérdésem, ezt hogy lehetne megoldani egyetlen form-mal (egyszerre több eredményt lehessen rögzíteni)?
$szamlalo = 1;
$parancs = mysql_query("SELECT * FROM `bl_merkozes` ORDER BY _jateknap Desc"); // Táblanév
while ( $adat = mysql_fetch_array($parancs) ) {
$datum1 = $adat[_jateknap];
if ($szamlalo != 1) {
if ($datum1 != $datum2) $sordobas = "<br>";
}
$blokk .= "<form name=\"form1\" method=\"post\" action=\"bl_eredmeny_h.php\"><tr><td valign=\"middle\">";
$blokk .= $sordobas;
$blokk .= "<font color=\"#FFFFCC\" size=\"2\">".$adat[_parositas]."<font></td><td valign=\"middle\">";
$blokk .= $sordobas;
$blokk .= "<input type=\"hidden\" name=\"_kod\" value=".$adat[_kod].">";
$blokk .= "<input type=\"text\" name=\"hgol\" size=\"5\" maxlength=\"2\" value=".$adat[_hazaigol].">";
$blokk .= "<font color=\"#FFFFCC\" size=\"2\"> - <font>";
$blokk .= "<input type=\"text\" name=\"vgol\"size=\"5\" maxlength=\"2\" value=".$adat[_vendeggol].">";
$blokk .= "</td><td valign=\"middle\"><font color=\"#FFFFCC\" size=\"2\">".$sordobas.$adat[_jateknap]."<font></td>";
$blokk .= "<td valign=\"middle\"><font color=\"#FFFFCC\" size=\"2\">".$sordobas."<input type=\"submit\" name=\"ok\" value=\"ok\"></font></td></tr></form>";
$sordobas = "";
$datum2 = $datum1;
$szamlalo = $szamlalo + 1;
}
mysql_close($kapcsolat);
print "<font color=\"#FFFFCC\" size=\"2\">".$blokk."</font>";
?>bl_eredmeny_h.php
$parancs = "UPDATE bl_merkozes SET _hazaigol = '" . $_POST["hgol"] . "' WHERE _kod = " . $_POST["_kod"];
Előre is köszönöm a segítséget!
“Mankind invented the atomic bomb, but no mouse would ever construct a mousetrap.” Albert Einstein
-
Drizzt
nagyúr
Feltettem a PHP Eclipse-t, s tetszik őszintén szólva, de egy dolog még hiányzik, ami hasznos lenne: Kéne bele olyan, ami a html részeken kiegészíti ctrl+sp-vel a javascrpit cuccokat is. Van ilyen tool? Ami Php, html, meg javascript ilyen támogatását egyszerre lehetővé teszi?
I am having fun staying poor.
-
Wizardmon
csendes tag
Heló mindenki!
Nem rég kezdtem el a php-t. Van hozzá egy könyvem: php24 óra alatt.
Most az űrlapoknál tartok de nagyon elakadtam.
[OFF]<html>
<head>
<title>9.2. program Egy egyszerû HTML ûrlap</title>
</head>
<body>
<form action="9.3.program.php" method="GET">
<input type="text" name="felhasznalo">
<br>
<textarea name="cim" rows="5" cols="40">
</textarea>
<br>
<input type="submit" value="rendben">
</form>
</body>
</html>Ahova mutat:
<html>
<head>
<title>9.3. program A 9.2. példa ûrlapjának
feldolgozása</title>
</head>
<body>
<?php
print "Üdvözlet <b>$felhasznalo</b><P>\n\n";
print "A címe:<P>\n\n<b>$cim</b>";
?>
</body>
</html>[/OFF]Elvileg ha beírok valamit a négyzetekbe, annak meg kéne jelennie a másik oldalon, de nem azt tesz. Kiírja hogy üdvözet, alája meg A címe, de amit az előző oldalon beírtam, azt nem. Mi lehet a probléma?
Légyszi segítsetek. -
Wizardmon
csendes tag
Ohh... Nekem a könyv valami $GLOBALS dologgal jön mindig, hogy ez így van.
Ezek szerint köze nincs hozzá?...
Hát bakter.. most nem tudom bízzak-e még ebben a könyvben.
Azt hiszem keresek valami más szakirodalmat php-hez[ Szerkesztve ]
-
fordfairlane
veterán
válasz Wizardmon #2283 üzenetére
A $GLOBALS egész más. A környezeti változók a $_SERVER-ben vannak. Régebben a te általad leírt globális formában is elérhetőek voltak, sok más adattal egyetemben, de erről fokozatosan átálltak arra, hogy a különféle adatokat típusuktól függően különféle asszociatív tömbben tették elérhetővé, $_GET, $_POST, $_SESSION, $_SERVER, stb, stb....
[ Szerkesztve ]
x gon' give it to ya
-
Drizzt
nagyúr
Sztringeken végig keresni szövegek előfordulásait lehet valahogy hatékonyan? Nem találtam semmi jó függvényt, úgyhogy kb. explode-nál maradtam. Másrészt van-e beépített függvény sztringek kettészedésére valamelyik pozíciónál, vagy törlésre pozíciótól?
I am having fun staying poor.
-
emitter
őstag
Adatbázisbeli keresés eredményeit szeretném felosztani, hogy oldalanként pl. 10 találatot jelenítsen meg.
Ezt érdemes úgy megoldani, hogy minden lapozásnál lefuttatom a keresést, de mindig csak az adott 10-es találat-blokkot jelenítem meg? Más ötletem egyelőre nincs.. -
emitter
őstag
válasz Tele von Zsinór #2289 üzenetére
köszi!
-
emitter
őstag
válasz Tele von Zsinór #2289 üzenetére
Most hogy nekiláttam, az a kérdésem, hogy az ilyen lapozást post-tal is meg lehet oldani, vagy csak get-tel? Az a baj, hogy az egész oldalon a keresés post-tal megy, így asszem nem lenne egyszerű megoldani, hogy a lapozási infókat az url-ben vigyem át..
Viszont post esetén csak javascripttel tudom megoldani, hogy a lapozómenüben egy linkre kattintva a submit-esemény bekövetkezzen.. akiknek nincs js-ük, azok haljanak meg? Szóval mit tanácsoltok?szerk: ha ötvözném a kettőt, és csak a lapozási infót küldeném get-tel, akkor is csak JS-sel tudnám megoldani, mert különdben elvesznek a keresési feltételek (kulcsszavak)..
[ Szerkesztve ]
-
emitter
őstag
válasz PazsitZ #2292 üzenetére
értem én, de az én oldalamon egy keresés eredményeként kapott találathalmazt kellene oldalakra bontani. Ha adok egy új oldallekérést get-tel, akkor valahogyan a keresési feltételeket is vissza kell újra juttatni a szervernek, hogy a lapozás után a következő x db találatot tudja lekérni az adatbázisból.. nemtom mennyire érthető..
És ehhez javascript kéne, hogy az egyszer már elpostolt adatokat újra vissza tudjam küldeni, nem? Vagy akkor én nem értem, hogy te mire gondolsz. -
fordfairlane
veterán
válasz emitter #2293 üzenetére
Pár száz karakternyi adatot simán bele lehet passzírozni urlbe.
<?
$page = (int)$_GET['page'];
$url = $_SERVER['SCRIPT_NAME'].'?page='.$page;
foreach($_POST as $key => $value) {
$url .= '&'.$key.'='.urlencode($value);
}
echo $url;
?>Ha nagyon sok adat van, akkor meg session-ben célszerű eltárolni.
x gon' give it to ya
-
PazsitZ
addikt
válasz emitter #2293 üzenetére
Én nem értettem meg teljesen a dolgot, sorry.
Szerintem ebben az esetben a keresési feltétel is mehetne get-be majd utána az oldalszám.
?search=valami&page=1
Minden esetben lefutna a kérés (lehetőleg valami szerint rendezve ugye) és ezután csak az x-ediktől y-ig iratod/kéred le az eredményt.- http://pazsitz.hu -
-
emitter
őstag
válasz emitter #2293 üzenetére
mondok egy példát:
keresem a 100Ft-nál drágább termékeket az adatbázisomból. Kapok 326 találatot. Alapból megjelenítem az 1-50-ig terjedő részt. Van egy linksorom, mint a te filmes oldaladon. Ha az '51-100' linkre kattintok, amelynek a href-je 'vmi.php?limit=50&page=50', akkor ez nem elég, hanem valahogy vissza kell küldenem azt is, hogy én a 100Ft feletti termékeket akarom. Ezt hogyan tehetem meg?szerk: a keresési információkat (pl. 100 Ft) post-tal küldöm
[ Szerkesztve ]
-
fordfairlane
veterán
válasz emitter #2297 üzenetére
Mivel ez nem triviális, és sok helyen volt szükségem erre, csináltam rá két osztályt, <url> és <pages>.
Így kell használni őket:
define(PERPAGE,20); // 20 elem egy oldalon
$f = (int)$_REQUEST['f']; // $f változóba kerül az aktuális oldal száma
/* Ebbe kerül bele az összes találatok száma, ebből tudjuk kiszámolni, hány oldal. Ide egy adatbázis lekérdezés jön általában. */
$sum = 200
/* Ha megadsz a konstruktornak egy számot, akkor max ennyi oldalszámot jelenít meg, hogy a lapozó ne legyen túl hosszú, ha esetleg többszáz oldal van. Alapból 20 az értéke */
$pages = new pages();
echo $pages->get($f,PERPAGE,$sum,$_GET);Az utolsó sornban a $_GET helyére $_REQUEST kerül a te esetedben, mivel hol GET, hol POST metódusban kapja az oldal a paramétereket.
[ Szerkesztve ]
x gon' give it to ya
-
fordfairlane
veterán
válasz fordfairlane #2298 üzenetére
url osztály:
/* class: url
* url kreáló osztály
*/
class url {
var $params;
function url($url = "") {
if(is_array($url)) {
$this->params = $url;
}
else {
$this->params = array();
}
}
function set($p1,$p2 = "") {
if(is_array($p1)) {
foreach($p1 as $key => $value) {
$this->params[$key] = $value;
}
}
elseif(is_string($p1)) {
$this->params[$p1] = $p2;
}
}
function remove($p1) {
if(is_string($p1)) {
unset($this->params[$p1]);
}
}
function get() {
foreach($this->params as $key => $value) {
if(is_array($value)) {
foreach($value as $inkey => $invalue) {
if($url_uj) $url_uj .= "&"; else $url_uj = "?";
$url_uj .= urlencode($key."[".$inkey."]")."=".urlencode($invalue);
}
}
else {
if($url_uj) $url_uj .= "&"; else $url_uj = "?";
$url_uj .= $key."=".urlencode($value);
}
}
return $url_uj;
}
}x gon' give it to ya
-
fordfairlane
veterán
válasz fordfairlane #2298 üzenetére
pages osztály:
/* class: pages
* oldalszámok osztály
* függőség: <url>
*/
class pages {
var $total;
var $params;
function pages($tot = 20) {
$this->total = $tot;
}
function get($first,$per,$max,$params="") {
if($per < $max) {
$this->params = $params;
$maxp = ceil($max/$per);
$actp = ceil($first/$per) + 1;
$fpage = $actp - floor(($this->total)/2);
if($fpage<1) $fpage = 1;
$topage = $fpage + $this->total;
if($topage>$maxp) $topage = $maxp;
if(($topage - $fpage) < $this->total) $fpage = $topage - $this->total;
if($fpage<1) $fpage = 1;
$str = '<table class="pages"><tr><td>';
// <<
$link = '<<';
if($fpage>1) {
$str .= $this->clink(0,$link);
}
else {
$str .= $link;
}
$str .= '</td>';
// <<
// <
$str .= '<td>';
$link = '<';
if($first>0) {
$f = $first - $per;
if($f < 0) $f = 0;
$str .= $this->clink($f,$link);
}
else {
$str .= $link;
}
$str .= '</td>';
// >
for($i=$fpage;$i<=$topage;$i++) {
$str .= '<td>';
if($i != $actp) {
$f = (($i-1)*$per);
$str .= $this->clink($f,$i);
}
else {
$str .= "<strong>".$i."</strong>";
}
$str .= '</td>';
}
// >
$link = '>';
$str .= '<td>';
if(($first + $per)<$max) {
$f = ($first + $per);
$str .= $this->clink($f,$link);
}
else {
$str .= $link;
}
$str .= '</td>';
// >
// >>
$link = '>>';
$str .= '<td>';
if($topage < $maxp) {
$f = (($maxp-1)*$per);
$str .= $this->clink($f,$link);
}
else {
$str .= $link;
}
$str .= '</td>';
// >>
$str .= '</tr></table>';
return $str;
}
}
function clink($first,$link) {
$str = '<a href="'.$_SERVER['SCRIPT_NAME'];
if(is_array($this->params)) {
$url = new url($this->params);
}
else {
$url = new url();
}
$url->set("f",$first);
$str .= $url->get();
$str .= '">'.$link.'</a>';
return $str;
}
}x gon' give it to ya