514
PHP HELP
-
#154
Sziasztok! Van egy problémám:
az oldalamnak (http://englishfootball.srv.hu) új design-t készítek. Úgyanilyen 3 hasábos felosztás. A két szélső, azaz a bal.php és a jobb.php incluedolva vannak. Most is igy akarom, csak az a baj, h nem tudom hogyan kell beállítani, hogy mindháromnak külön betűszínei legyenek. Úgy értem a linkek színe legyen mindenhol különböző, vagy legalább 2-n. Azért, mert a leendő bal.php-m sötétkék színű, ezen a fehér linkek mutatnak jól, viszont a másik két hasáb olyan világosak, hogy a fehér nem látszik rajtuk. Segítsetek légyszíves! -
izb #153 Szeretnék készíteni php-ban hírlevélküldőt!!
Tudtok adni valami oldalleírást erről?? -
#152
Tárgytalan. Sikerült megcsinálnom :) -
#151
Eddig jutottam:
<?php
$ossz = mysql_connect("localhost", "akarmi", "akarmi") or die(mysql_error());
mysql_select_db("bea", $ossz) or die(mysql_error());
?>
<html>
<head>
<title></title>
</head>
<body>
<?
$quer=mysql_query("SELECT sid,name,domain FROM server order by sid");?>
<form method=post action="">
<select name="lista" onChange="submit()">
<option value="0">---válassz servert/domaint!---</option>
<?
while ($myrow=mysql_fetch_array($quer)) {
$val = $myrow["name"]." / ".$myrow["domain"]." |".$myrow["sid"];
$sel = ($lista == $val) ? "selected" : "";
printf ("<OPTION VALUE=\"%s\" %s>%s</OPTION>\n", $val, $sel, $val);
}
echo "</select>";
$sid = substr($lista,strpos($lista, "|")+1,$hossz=strlen($lista)-(strpos($lista, "|")+1));
settype($sid2,integer);
$quer1=mysql_query("SELECT aid,nev FROM app WHERE sid=$sid order by nev");
?>
<select name="lista1" onChange="submit()">
<option value="0">---válassz alkalmazást!---</option>
<?
while ($myrow1=mysql_fetch_array($quer1)) {
$val1 = $myrow1["nev"]." |".$myrow1["aid"];
$sel1 = ($lista1 == $val1) ? "selected" : "";
printf ("<OPTION VALUE=\"%s\" %s>%s</OPTION>\n", $val1, $sel1, $val1);
}
echo "</select>";
$aid = substr($lista1,strpos($lista1, "|")+1,strlen($lista1)-(strpos($lista1, "|")+1));
settype($aid2,integer);
$quer2=mysql_query("SELECT cpid,nev FROM cp WHERE aid=$aid order by nev");
?>
<select name="lista2" onChange="submit()">
<option value="0">---válassz cp-t!---</option>
<?
while ($myrow2=mysql_fetch_array($quer2)) {
$cpid = $myrow2["cpid"];
$val2 = $myrow2["nev"];
$sel2 = ($lista2 == $val2) ? "selected" : "";
printf ("<OPTION VALUE=\"%s\" %s>%s</OPTION>\n", $val2, $sel2, $val2);
}
echo "</select>";
?>
<table>
<tr>
<td><p><strong>DS neve: </strong>
</td>
<td><input type="text" name="ds_name" size=40 maxlength=40></td>
</tr>
<tr>
<td><p><strong>JNDI neve: </strong></td>
<td><input type="text" name="ds_jndiname" size=40 maxlength=80></td>
</tr>
</table>
</form>
</body>
</html>
A listák szépen változnak. Viszont, hova és mit kell tenni, hogy a beírt adatokat fel is tudjam tölteni a 4. táblába?
$ds_add = "insert into ds values ('', '$_POST[lista2]', '$_POST[ds_name]', '$_POST[ds_jndiname]')"; -
#150
Na, pár óra és kiderül :)
Ha nem boldogulok, akkor majd zaklatlak ;) -
JimHUN #149 Én úgy szoktam, hogy a <select> legelső <option>-jének value paramétere 0, a többi meg a listába felhozott elemek adatbázisbeli id-je.
Tehát pl:
<select name="lista1" onChange="submit()">
<option value="0">---válasszon!---</option>
<option value="1">m1 első</option>
<option value="23">m1 második</option>
<option value="34">m1 harmadik</option>
</select>
Természetesen itt csak a 0. elem statikus, a többit a SELECT utáni fetch_array ciklusban töltöm fel.
Aztán az onChange hatására ugyanezt az oldalt hívom meg, de már lesz egy lista1 változóm. Pl. ha a 2. valós elemet választottuk ki (m1 második), akkor $lista1 = 23. Ez alapján felépítem a következő dropdownlist feltöltéséhez a selectet:
"SELECT m2_id, m2_m1_id, m2_nev FROM tabla2 WHERE m2_m1_id=$lista1"
Szándékosan nem írtam *-ot. Jobb ha nem szoksz hozzá. :-)
Na tehát megvannak a 2-es dropdownlist elemek. Ezt ugyancsak az ő fetch_array ciklusában dolgozom fel (kiíratom az <option> tag-eket). A harmadiknál hasonló a helyzet.
Én onChange="submit()"-ot használok nem onchange=\"reload(this.form)\"-ot.
Bocs, hogy nem írok kódot. Az legyen a te feladatod. :-)
Remélem tudtam segíteni! Első ránézésre elég érthetetlen. :-) -
skristof #148 köszi a segítségeket ;) -
#147
Kicsit előreszaladtam és egy másik script hiáját írtam (közben az is megoldódott) :)
Újabb dilemma:
Van 3 dropdown lista, amik egymásra vannak hatással:
1. lista meghatározza, hogy a második listából mit választhatok. A 2. lista meghatározza, hogy a 3. listából mit választhatok.
Ti hogyan programoznátok le?
A 3 tábla szerkezete nagyjából:
tabla1:
m1_id
m1_nev
tabla2:
m2_id
m2_m1_id
m2_nev
tabla3:
m3_id
m3_m2_id
m3_nev -
#146
A baj az, hogy nem jó... Az első listából kiválasztok valamit, akkor ugyan újratölti a formot, de a második dropdown lista még mindíg az összes adatot tartalmazza :( -
JimHUN #145 Szerintem elég a user_id-t session változóként elmenteni.
A jelszót pláne nem menteném el, mivel a kódból is látszik, hogy nincs titkosítva.
Az entered változó meg felesleges, mivel ha létezik a user_id, az azt jelenti, hogy be van jelentkezve:
if (isset($HTTP_SESSION_VARS["user_id"])
{
echo "belépett...";
}
A logout.php-ben meg majd csak ezzel a $HTTP_SESSION_VARS["user_id"]-vel kell törődnöd.
Az admin.php-ben ezt a sort
$result = mysql_query ("select * from users where (users_id='$user_id')");
mindenképp cseréld ilyenre
$result = mysql_query ("select * from users where (users_id='".$HTTP_SESSION_VARS["user_id"]."')");
Így az URL paraméterezéssel nem mennek semmire, mivel az nem session változó.
Valszeg PAStheLoD is erre utalt. Jó a $_SESSION is, de én már szívtam amiatt, hogy régi verziójú volt a PHP, és ezt a tömböt még nem kezelte. :-) Azóta csak $HTTP_SESSION_VARS-t használok. -
#144
Így első ránézésre jónak tűnik.. -
#143
Adatbázis feltöltését szeretném megcsinálni.
A form első eleme egy dropdown lista, ami egy másik már feltöltött tábla név mezőiből áll.
A többi beviteli mező szokványos text mező.
A feltöltött táblából át akarom adni az egyik mezőt az új táblának is.
Eddig jutottam:
<?php
$ossz = mysql_connect("localhost", "root", "akarmi") or die(mysql_error());
mysql_select_db("bea", $ossz) or die(mysql_error());
$quer2=mysql_query("SELECT DISTINCT sid,name,domain,console FROM server order by sid");
echo "<form method=post action='app_add.php'>";
echo "<table>";
echo "<tr>";
echo "<td><p><strong>Válassz servert/domaint: </strong>";
echo "</td>";
echo "<td>";
echo "<select name='cat' onchange=\"reload(this.form)\"><option value=''>Select one</option>";
while($noti = mysql_fetch_array($quer2)) {
if($noti['sid']==@$cat){echo "<option selected value='$noti[sid]'>$noti[name] - $noti[domain]</option>"."<BR>";}
else{echo "<option value='$noti[sid]'>$noti[name] - $noti[domain]</option>";}
}
echo "</select>";
echo "</td>";
?>
<tr>
<td><p><strong>Alkalmazás neve: </strong>
</td>
<td><input type="text" name="app_name" size=40 maxlength=40></td>
</tr>
<tr>
<td><p><strong>Alkalmazás URL-je: </strong></td>
<td><input type="text" name="app_url" size=40 maxlength=100></td>
</tr>
<tr>
<td><p><strong>Alkalmazás útvonala: </strong></td>
<td><input type="text" name="app_loc" size=40 maxlength=100></td>
</tr>
<tr>
<td><p><strong>Alaklamzás rövid leírása: </strong></td>
<td><textarea name="app_desc" rows=8 cols=40 wrap=virtual></textarea></td>
</tr>
</table>
<p><input type="submit" name="submit" value="Mehet!"></p>
<?php
echo "</form>";
?>
Ez kiindulásnak jó lesz?
-
#142
ajánlott a $_SESSION superglobal tömb használata , egyrészt biztonsági okokból, másrészt meg egyszerűbb, mint mindig session_register()-ezni .. így csak az oldal legelején egy session_start() -ra lesz szükséged...
a kód jó, csak mondjuk én mániákusan kirakom az idézőjeleket , meg a query-ben nem használom a helyettesítést, hanem inkább összefűzöm a stringet , de így is jó ahogy te csináltad :] -
#141
teszt bocsi hogy itt tesztelek csak kíváncsi vaok vmire:D -
skristof #140 tényleg, azt kihagytam, h szűrjem ha nem ad meg semmitsem :)
köszi
igen, énis a direkt paraméterezéssel vagyok bajban
esetleg valami forráskódrészletet nem tudnál mutatni? -
#139
Elvileg jónak tűnik, bár én - szintén csak elvileg - tudnék pár módszert a megkerülésére. Gondold át, milyen változóértékek vannak, ha nem létező (vagy üres) usernevet adok meg, vagy megkerülöm a login oldalt és direkt paraméterként próbálom átverni az admin oldalas script agyát (dettó nem létező usernévvel).
-
#138
Ezt a kérdést már feltettem a HTML-es fórumnál, felteszem itt is, hogy lehet, hogy amit küdenek az e-mail-omra kűdjék.
Mint pl. itt -
skristof #137 haliho!
egy több-felhasználót kezelő weboldalt szeretnék alkotni! :) Namármost, ugy gondoltam el, hogy lenne 4 felhasználói szint:
0-kitiltott
1-regisztrált
2-vip
3-admin
Ugy gondoltam, hogy session-ökkel oldaom meg a beléptetést. ími a login.php:
<?
//megkapjuk a nevet és a jelszót
$user = ($HTTP_POST_VARS["user"]);
$pass = ($HTTP_POST_VARS["pass"]);
//adatbázisbol is kiszedjük
include('connect.php');
$result = mysql_query ("select * from users where (users_name='$user')");
$row = mysql_fetch_array($result);
//leellenőrizzük
if ($pass == $row[users_pass] and $row[users_level] > 0){
//beléptetjük
session_register( entered );
session_register( user_id );
session_register( user_pass );
$entered = "1";
$user_id = $row[users_id];
$user_pass = $row[users_pass];
}
?>
És ez pedig az admin.php, amiben megprobálom megkerülni, hogy illetéktelenek is bejussanak:
<?
session_start();
include ('connect.php');
$result = mysql_query ("select * from users where (users_id='$user_id')");
$row = mysql_fetch_array($result);
//ha admin, akkor betöltjük az oldalt...
if ($row[users_level] == 3 and $entered == "1" and $user_pass == $row[users_pass]){
?>
<p align="center"><font face="Tahoma" size="3" color="red">ADMINISZTRÁCIÓ</font></p>
<?
}
else {
?>
<p align="center">
<b><font color="red" size="2" face="Tahoma">Jelenleg nincs jogosultságod megtekinteni ezt a részt!!!</font>
<br><font size="2" face="Tahoma">Lépj be!</font></b>
</p>
<?
}
?>
A kódok alapján szerintetek mennyire biztonságos a cucc? vagy totál rossz a hozzáálás? Építő jellegű véleményeket, ötleteket előre is köszi
-
#136
adduser.bat tartalma:
cd c:\program files\teamspeak2_rc2\
sqlite server.dbs <adduser.sql
Ha manualiasn inditom a batch file-t, szepen lefut. Bekerul az adatbazisba a user.
-
#135
Udv emberek!
Segitseg kellene. Adott az alabbi script:
$ido=date("dmYHisz");
$fileba="insert into ts2_clients (i_client_server_id, b_client_privilege_serveradmin, s_client_name, s_client_password, dt_client_created) VALUES (1,0,'$username','$ts_password',$ido);";
$all=fopen("C:\\Program Files\\Teamspeak2_RC2\\adduser.sql","w");
flock($all, LOCK_EX);
fwrite($all, $fileba);
flock($all, LOCK_UN);
fclose($all);
$cmdline="adduser.bat";
exec($cmdline);
A problemam az, hogy nem fut le az exec() fuggvenyben megadott batch file. Van valakinek otlete? -
skristof #134 jólvan hülye vagyok
elnézést! :D
DevPHP + PHPTriad kombó most jóak! -
skristof #133 UP
szoval külön telepítsem az Apache-ot vagy mennie kéne ennek?
teljes seetupot nyomtan, nem csak az ide-t -
skristof #132 hello
talán a hogy néz ki az asztalod topikban láttam nálad a DevPHP-t, hogy azt használod
szóval olyan kérdésem lenne, hogy miért nem hajlando futtatni most a php filejaimat? vagy szervert nem tesz ez fel a gépre??!?! -
skristof #131 up
valaki help plz
egy sütik kezeléséről szóló tutor kéne magyarul...
vmi jo ;) -
#130
inkább úgy mondd, hogy mit kap cserébe, aki elvállalja.
mert ingyen max. barátoknak, de akkoriscsak valami egyszerűt... -
#129
azt szertném kérdezni hogy valaki tudna-e nekünk csinálni egy php-s honlapot.Nfl online ligát kezdünk.Már van honlap és van aki csinálja.De hogy jobb legyen és részletesebb azért kellen haogy ha valaki tudja és ráér megcsinálná nekünk.aki tud segíteni az jelezze már itt a fórumon.Köszi
Sziasztok -
#128
Kössz PetruZ!
Remelem ezek utan vhogy majd csak +oldom.
-
skristof #127 valaki?
sütikezelős tutor? esetleg könyv, -
#126
Ez nem php probléma, hanem adatkezelési. A megoldás végülis nem olyan bonyolult: ne az adattáblát szélesítsd, hanem csinálj két táblát. Az egyikben vannak a gépek adatai, egy géphez csak egy rekord tartozhat. A másik táblába kerülnek az űrlap adatok, a kettőt valamilyen egyedi azonosítóval kapcsolod össze (pl. a gép azonosítójával, vagy egy belső id-vel). Az űrlapok táblába meg annyi rekordot veszel fel, amennyi bejegyzés a géphez tartozik, ez elméletileg akárhány sort jelent, vagyis nem vagy a táblaszélességhez kötve. Az egyes bejegyzéseket, meg dátumokkal szűrheted, rendezheted, satöbbi. Egyszerűen ha új javítási lap készül egy géphez, akkor csak ide beszúrsz egy sort a gép azonosítójával és a dátummal, aztán hajrá. Így egy bejegyzéshez elég egy mező.
-
#125
Sziasztok!
Már megint van 1 gondom
Készitenem kellett egy szgép nyilvántarto progit.Ez meg is van minden OK. Tartozik hozzá egy karbantartási naplo rész is. Itt egy sima 6 soros urlap van, ahova lehet majd irkálni a karbantartás idejet, jelleget. Aért hatsoros, mivel én ennyi változot (mezot) foglaltam le ezeknek.
De most kitalálták, hogy ne csak 6 változo legyen, hanem szukség esetén lehessen boviteni ezt. Mivel nem egyformák a gépek, ezért nem is egyszerre, egyformán fognak elromlani. (de elromlani biztos elromlanak).Vmelyik géphet lehet hogy pl 10-szer kell megcsinálni, akkor ugyebár tiz soros urlap kellene.
Nah azt hogy lehetne megcsinálni, hogy figyelje a program, hogy az urlapban mennyi sor van kitoltve és ha szukséges ennek megfeleloen ujjabb mezot készit az adatbázisban ,ahova a megadott uj adatokat el lehet menteni.Mert ugyebár feleleges lenne elore lefoglalni 500 mezot ,amkor lehet hogy 2 évig nem is kell adatokat bevinni a táblába.
Hát remélem érthető volt.Bizom benne hogy VALAKI tud nekem segiteni ebbe.
Elore is kosz
-
skristof #124 hello
tudnátok adni vmi normális magyar leírást a cookie-k kezeléséről?
előre is köszi -
#123
Hali!
Az lenne a kérdésem, hogy használja vki az 5-os php-t?
És hogy mik kulonbsegek a 4.x.x és az 5-os kozott.Vagy esetleg tud vki vmi leirast az 5rol?
Elore is kossz, ha tud vki segiteni -
#122
A Probléma ott van hogy ha én mondjuk saját képet szeretnék nem ami nekik be van állítva... vagy ha mondjuk Flashes oldalr akarom behívni az állapot jelzést
-
#121
köszönöm -
blackgamer #120 nem nagyon értem a problámát
ha előjön a offline kép akkor tudod, hogy offline
ezt az infót akár saját oldaladon is felhasználhatod -
#119
phpvel "majdnem" mindent lehet :)
egy sockettel lekérdezed, majd az eredménytől függően, lehet kimenetet generálni.
legutóbb pl. egy komplett proxy checker + database rendszert írtam, szintén socketes alapon. Felcsatlakozik, az előre megadott proxycímre, lehívja a showmyip.com-ot, ellenőrzi, hogy a megadott IP cím, és a showmyip által adott IP cím megegyezik-e, ill. hogy látszik-e a saját IP cím a HTTP kérés/respond-ban (transparent proxy-e), ha eddig anonymoust, akkor egy másik oldalon lévő proxy osztályozó scripttel leellenőrzi, hogy mennyire megbízható.
Kicsit bonyolultan hangzik, pedig egyszerű mint az 1x1 :D -
#118
jó példa erre pl. az ICQ online jelzőkéje
ha be vagy jelentkezve, a központi szerver tud róla (ilykor gondolom egy kis flaget átír magánál, hogy online, bár ez többezer user esetén problémás.)
Sokkal egyszerűbb, hogy ha lekérdezés történik, akkor ellenőrzi (pl. pinggel), hogy elérhető-e a kliens.
AA-nál nem tudom hogy megy, ha csatlakozáskor kommunikál a kliens, vagy a szerver egy központi trackerrel (valószínű), akkor onnan veszi, hogy ki online/offline -
#117
vagy ha lehetne olyan scriptet írni hogy ha a végeredmény az offline.gif akkor ez történjen vagy ha online .gif akkor az. de hogyan lehet egy Gif re hivatkozni ???
Hogyan lehet egy script végeredményére hivatkozni ? -
#116
http://aaotracker.4players.de/trackericon.php -
#115
Próbáltam de nem talált semmit csak leírásokat hogy ki mennyire védi a cuccát ellene
Maga a progi nincs meg
Konkrétan az army Trackerét szeretném valahogy megnézni hogy honnan szedi a php az offline online jelzsét mert végeredményre csak egy gif képet ad meg de nekem az kéne hogy honnan veszi azt hogy melyik gif képet hozza elő
