- Mobilinternet EU-n kívül, eSIM adatcsomagok használata
- iPhone topik
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Honor 200 Pro - mobilportré
- Honor Magic7 Pro - kifinomult, költséges képalkotás
- Samsung Galaxy Watch (Tizen és Wear OS) ingyenes számlapok, kupon kódok
- Díjnyertes okosgyűrű érkezik júliusban
- Motorola Edge 40 neo - színre és formára
- Motorola Moto Tag - nyomom, követ
- Telekom mobilszolgáltatások
Új hozzászólás Aktív témák
-
meone
tag
válasz
Sk8erPeter #3482 üzenetére
Most szimplán annyi megy szépen de megint mikor be jön az üres form megint elvégződik az adatbázis művelet és be kerül egy üres sor.
-
meone
tag
válasz
Sk8erPeter #3479 üzenetére
Az első észrevételt ki javítottam.
A második észrevételre is módosítottam következetessé tettem a scriptet most már akkor $pix így használom.
A harmadik észrevételre:
Azt tudom, hogy vannak szebb megoldások, de mivel még kezdő vagyok valahol nekem is el kell kezdenem.Eddig el tudtam jutni:
$menteni=0;
if ( isset($pix) && !is_numeric($pix) )
{
$menteni++;
echo "Hibásan van ki töltve a 4.2-es kérdés, értéke:".$pix;
}
if ( isset($menyibe) && !is_numeric($menyibe) )
{
$menteni++;
echo "<br> Hibásan van ki töltve a 30-as kérdés, értéke:".$menyibe;
}
if ( isset($ftmenyi) && !is_numeric($ftmenyi) )
{
$menteni++;
echo "<br> Hibásan van ki töltve a 35-ös kérdés, értéke:".$ftmenyi;
}
if ( isset($menyirend) && !is_numeric($menyirend) )
{
$menteni++;
echo "<br> Hibásan van ki töltve a 61-es kérdés, értéke:".$menyirend;
}
dbcsat();
$sql = "insert (.....)
if ($menteni==0)
{
$eredmeny = mysql_query($sql) ;
} else {
echo "hiba van";
}Én így tudom meg oldani, de ez se jó.
Amit te mondasz azt nem tudom meg csinálni.
-
meone
tag
válasz
Sk8erPeter #3476 üzenetére
Értem akkor vissza állítom isset-re.
A break-re gondoltam.
Most jelenleg ott járok, hogy ha be tölt az oldal akkor is le fut az adatbázis kérés.
Azt, hogy lehet meg oldani, hogy elsőre mikor üres a form ne fusson le a az adatbázis írása?
Meg össze akarom babrálni úgy a két részt, hogy csak akkor fusson le ha a felette lévő részben már nincsen hiba egyébként írja ki a hibát és ugorja át az INSERT-es részt és folytassa a form kitöltésével.Íme a kód:
if ( !isset($_POST["pix"]) && !is_numeric($pix) )
{
echo "Hibásan van ki töltve a 4.2-es kérdés, értéke:".$pix;
}
if ( !isset($_POST["menyibe"]) && !is_numeric($menyibe) )
{
echo "<br> Hibásan van ki töltve a 30-as kérdés, értéke:".$menyibe;
exit;
}
if ( !isset($_POST["ftmenyi"]) && !is_numeric($ftmenyi) )
{
echo "<br> Hibásan van ki töltve a 35-ös kérdés, értéke:".$ftmenyi;
}
if ( !isset($_POST["menyirend"]) && !is_numeric($menyirend) )
{
echo "<br> Hibásan van ki töltve a 61-es kérdés, értéke:".$menyirend;
}
dbcsat();
$sql = "insert into mobilk (evf, szak, datum, k1, k2, k3, k41a, k42a, k43a, k44a, k5, k6, k7, k8, ................... k59, k60, k61) VALUES ('$evf ','$szak',NOW(),'$radio1',.......)";
$eredmeny = mysql_query($sql) or die("hiba");Ha jól emlékszem meg kéne adni egy külön változót az if-eknél és ha rossz az érték akkor növelje eggyel, és végül a mysql_query-nél pedig egy újabb if-el meg vizsgálni azt hogy ez a változó ez alap értéken van e, vagy a hibák miatt változott, és csak akkor tovább engedni ha nem változott.
Vagy hülyeség az okoskodásom?
-
meone
tag
válasz
Sk8erPeter #3462 üzenetére
Köszönöm, nézhettem volna a kódot ideig soha nem jöttem volna rá.
Köszönöm még egyszer.
-
8nemesis8
veterán
válasz
Sk8erPeter #3471 üzenetére
Megvan már megírtam és nagyon szépen működik állítja is.
Az volt a baj, hogy amikor belevettem a kolcsonzés táblát, ugye amikor "összekötöttem" őket akkor csak azokat írta ki, amiket már valaha kölcsönöztek ami nem volt jó, illetve amit fentebb írtam, hogy ha kölcsönzéshez veszem fel akkor nem lesz jó, mert ha egyszer visszahozták akkor 1re állítódik be az adott kölcsönzésnél a lejár érték, azonban ha kiveszik akkor nem az előző visszahozás íródik felül 0-ra hanem egy új, de a rendszer még mindig látja az előző 1est, így rossz értéket adva vissza.Adathordozóhoz tettem be, ami egyértelművé teszi az egészet így. Tehát az 1es sorozatszámú dvd-t veszik ki stb... így nem lehet kavarás
De lényeg,hogy tényleg szépen megy és csak azokat adja ki kölcsönözhetőnek amiből van bent.
Tehát ha egy film 2dvd-n is megvan, akkor ha egyik kölcsönözve van akkor automatikusan a másik sorozatszámú filmet még ki lehet venni,ha az sincs bent akkor pedig meg sem jelenik a listán. -
8nemesis8
veterán
válasz
Sk8erPeter #3461 üzenetére
Köszi szépen és neked is cucka.
Arra jöttem, rá, ha a kölcsönzés táblába teszem ezt a lejárt vagy sem jelzőt, akkor az nem lesz jó.
Ugye egy korábban visszahozott filmre 1et állítok be, hogy bent van de ha utána kivették akkor is jelzi, hogy bent van,mivel van egy 1es a lejár mezőben.
Így tehát ezt az adathordozóhoz teszem be, mivel minden egyes adathodozó egyedinek számít, így egy adott dvd-nek csak 1állapota lehet vagy bent van vagy kint.
Most már azt hiszem jó leszMeg tudom adni, hogy alapértelmezetten 1esek legyenek benne vagy csak 0-át lehet?
-
cucka
addikt
válasz
Sk8erPeter #3468 üzenetére
Itt tulajdonképpen akkor csak arra kell figyelni, hogy a MySQL-kapacitást ne lépd túl.
A korábban említett nagy rendszereknél a mysql kapacitás nem kérdés, ugyanis jellemzően saját szerveren üzemeltek. Átlag párezer forintos webhosting szolgáltatáshoz (mondjuk 1-2 giga tárhely, 100 mega mysql) értelemszerűen ez a megoldás nem igazán jó.Egyébként meglévő adatbázisnál hogyan lehet megnézni, még meddig terpeszkedhetsz?
Passz. Én írnék egy mailt a szolgáltatómnak ezügybenA több százezer kép tárolása adatbázisban mennyivel foglal ilyen módon több/kevesebb helyet?
Nagyjából ugyanannyit foglal, mint külön file-ként. Amire oda kell figyelni, hogy ha select-nél a bináris mezőt is kéred, akkor az nem a leggyorsabb, komoly adatforgalmat generál a szkripted és a mysql adatbázis között. Ezért készítettünk annak idején cache-t is hozzá, ami a filerendszerbe pakolta le a fileokat. Sőt, olyan is volt, hogy az adatbázis és a cache külön gépen futott. -
cucka
addikt
válasz
Sk8erPeter #3462 üzenetére
Ha a 0-t számnak tekinted, akkor a kódod nem jó, ugyanis az empty() a 0-ra és az üres tömbre is boolean true-val tér vissza. Jelen esetben empty helyett isset-et kéne használni.
(#3460) PazsitZ
Extract() függvény használata nagyon nem javasolt, ugyanolyan okokból, ami miatt a register_globals használata sem. Ha ilyen sok változóról van szó, akkor érdemes egy tömbben felsorolni azokat, majd ez alapján beállítani az összes változó értékét, például így:$elfogadott_nevek=array('nev1, 'nev2', 'nev3');
foreach ($elfogadott_nevek as $nev){
if (isset($_POST[$nev])){
$$nev=$_POST[$nev];
}
} -
cucka
addikt
válasz
Sk8erPeter #3452 üzenetére
Ne szerencsétlenkedjé' már..
$nap_hu=array('hétfő', 'kedd', ... 'vasárnap');
$nap_en=array('Monday', 'Tuesday', ... 'Sunday');
$datum=str_replace($nap_en, $nap_hu, date('Y-m-d l H:i')); -
cucka
addikt
válasz
Sk8erPeter #3445 üzenetére
És milyen célból? Nekem elsőre kicsit feleslegesen bonyolultnak tűnik, persze biztos valamilyen szempont nem jutott még eszembe.
Nagy php-s keretrendszer, magas szintű absztrakcióval. Röviden: a file feltöltés ugyanolyan űrlap elem, mint a szöveges, checkbox, legördülő, stb.. Az űrlap elemeinek lehet értéke, az értéket el lehet menteni adatbázisba, tehát a file feltöltéssel felvitt bináris adatot és a szöveges mezőbe beírt szöveget egyenrangúan kezelem.
Amúgy előnye például, hogy az adatbázisban található az összes adata a weboldalnak. Adatbázis automatikus mentése könnyen megoldható, az import/export is egyszerű, tehát ilyen előnyei vannak. Nem kell foglalkozni a filerendszer sajátosságaival, nem kell tudni, hogy melyik könyvtárban vannak a képek, nem kell odafigyelni, hogy különbözőek legyenek a filenevek, nem okoz gondot több százezer kép tárolása, ilyesmi. Természetesen figyelni kell a sebességre, ezért készült hozzá filerendszer alapú cache-elés is.
Ebben a topikban főleg apróbb, egyszerű programokról van szó, ennek a módszernek az előnyei pedig inkább nagy rendszerekben érvényesülnek.(#3446) 8nemesis8
Igen ilyesmire én is gondoltam, de hogyan állapítom meg, hogy visszahozták e!?
Például a visszahozás dátuma az adatbázisban alapértelmezésként NULL. Ha visszahozták, akkor beállítod az aktuális dátumot. MySQL-ben a null-ság ellenőrzését valahogy így oldod meg:
select * from tablanev where mezonev is null
select * from tablanev where mezonev is not null -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3456 üzenetére
ÓÓÓ basszus, észre se vettem, hogy meone, beletettél egy pontosvesszőt az if mögé, én meg azt másolgattam itt... Hát akkor nyilván minden esetben echo-zni fog.
Szedd ki a pontosvesszőt, és jó lesz.
Szóval akkor ez már az, amit eredetileg írni akartam:
if ( !empty($_POST["pix"]) && is_numeric($pix) )
{
echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
} -
meone
tag
válasz
Sk8erPeter #3456 üzenetére
Megcsinálom a változtatás, de semmi eredmény.
Ugyan úgy ki írja mind a két esetben.Rá jöttem már mi a hiba.
Ez a sor:echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
Azért írja ki mind a két esetben mert csak egy egyszerű "echo" van ki írva.
Meg lehet ezt úgy változtatni, hogy csak akkor írja ki ha tényleg van hiba?Vagy teljesen hülyeség az okoskodásom?
Amúgy itt a kód:
<?php
if (!empty($_POST["evf"]))
{
$evf=$_POST["evf"];
$szak=$_POST["szak"];
$radio1=$_POST["radio1"];
$mobil=$_POST["mobil"];
$radio2=$_POST["radio2"];
$freki=$_POST["freki"];
$pix=$_POST["pix"];
$terulet=$_POST["terulet"];
$radio3=$_POST["radio3"];
$radio4=$_POST["radio4"];
$radio5=$_POST["radio5"];
$radio6=$_POST["radio6"];
$radio7=$_POST["radio7"];
$radio8=$_POST["radio8"];
$radio9=$_POST["radio9"];
$radio10=$_POST["radio10"];
$gond=$_POST["gond"];
$radio11=$_POST["radio11"];
$radio12=$_POST["radio12"];
$radio13=$_POST["radio13"];
$radio14=$_POST["radio14"];
$radio15=$_POST["radio15"];
$radio16=$_POST["radio16"];
$radio17=$_POST["radio17"];
$radio18=$_POST["radio18"];
$tanacshird=$_POST["tanacshird"];
$radio19=$_POST["radio19"];
$radio20=$_POST["radio20"];
$radio21=$_POST["radio21"];
$radio22=$_POST["radio22"];
$napilatmiert=$_POST["napilatmiert"];
$radio23=$_POST["radio23"];
$hiradomiert=$_POST["hiradomiert"];
$radio24=$_POST["radio24"];
$mikene=$_POST["mikene"];
$menyibe=$_POST["menyibe"];
$radio25=$_POST["radio25"];
$javaslat=$_POST["javaslat"];
$radio26=$_POST["radio26"];
$radio27=$_POST["radio27"];
$ftmenyi=$_POST["ftmenyi"];
$radio28=$_POST["radio28"];
$radio29=$_POST["radio29"];
$radio30=$_POST["radio30"];
$radio31=$_POST["radio31"];
$multielony=$_POST["multielony"];
$multihatrany=$_POST["multihatrany"];
$radio32=$_POST["radio32"];
$fmiert=$_POST["fmiert"];
$radio33=$_POST["radio33"];
$radio34=$_POST["radio34"];
$radio35=$_POST["radio35"];
$radio36=$_POST["radio36"];
$radio37=$_POST["radio37"];
$radio38=$_POST["radio38"];
$radio39=$_POST["radio39"];
$radio40=$_POST["radio40"];
$radio41=$_POST["radio41"];
$radio42=$_POST["radio42"];
$radio43=$_POST["radio43"];
$radio44=$_POST["radio44"];
$radio45=$_POST["radio45"];
$radio46=$_POST["radio46"];
$radio47=$_POST["radio47"];
$radio48=$_POST["radio48"];
$radio49=$_POST["radio49"];
$menyirend=$_POST["menyirend"];
}
echo $radio1;
if ( !empty($_POST["pix"]) && is_numeric($pix) ) ;
{
echo "Hibásan van ki töltve a 4.2-es kérdés értéke:".$pix;
}
?>
<form method="POST" action="<?php print $_SERVER["PHP_SELF"];?>">
<table width="750" height="3489" border="1" align="center">
<tr>
<td colspan="5" height="36">TECHNOLÓGIA ÉS MÓDSZERTAN FEJLESZTÉSE MŰKÖDŐ HONLAPOK TARTALMI ELEMZÉSÉRE</td>
</tr>
<tr>
<td colspan="5" height="20"><p align="right"><em>(Nincs rossz válasz, nem kell megfelelni senkinek és semminek!)
Kérdőív(001. sz.)</em></p></td>
</tr>
<tr>
<td colspan="5" height="20"><p>Évfolyam: . <input name="evf" type="text" id="evf" value="<?php print $evf; ?>" size=95 maxlenght="100">
</p></td>
</tr>
<tr>
<td colspan="5" height="20"><p>Szak: . <input name="szak" type="text" id="szak" value="<?php print $szak; ?>" size=100 maxlenght="100">
</p></td>
</tr>
<tr>
<td colspan="5" height="10"><p>Dátum: <?php echo date("Y.m.d") ?> </p></td>
</tr>
<tr>
<td width="38">Sorsz.</td>
<td width="308">KÉRDÉS</td>
<td colspan="3">Válasz</td>
</tr>
<tr>
<td>1.</td><td>Van-e multimédiás mobil készüléke? </td>
<td width="107"><input name="radio1" type="radio"value="y" <?php echo $radio1 == 'y' ? 'checked="checked"' : ''; ?> >
Igen</td>
<td colspan="2"><input type="radio" name="radio1"value="n"
<?php echo $radio1 == 'n' ? 'checked="checked"' : ''; ?>>Nem</td>
</tr>
<tr>
<td width="38">2.</td><td ><p>Milyen típusú mobil-eszközt használ jelenleg?(Ha használ. Ha nem, húzza ki!)</p>
</td><td colspan="3"><input name="mobil" type="text" id="mobil" value="<?php print $mobil; ?>" size=50 maxlenght="100"></td>
</tr>
<tr>
<td>3.</td><td>Ismeri-e a készüléke technikai jellemzőit, adatait?</td>
<td><input type="radio" name="radio2"value="y"
<?php echo $radio2 == 'y' ? 'checked="checked"' : ''; ?>>
igen</td>
<td width="116"><input type="radio" name="radio2"value="n" <?php echo $radio2 == 'n' ? 'checked="checked"' : ''; ?>>
nem</td>
<td width="147"><input type="radio" name="radio2"value="res" <?php echo $radio2 == 'res' ? 'checked="checked"' : ''; ?>>
részben</td>
</tr>
<tr>
<td>4.1</td><td><em>Mi a működési frekvenciája? </em></td>
<td colspan="3"><input name="freki" type="text" id="freki" value="<?php print $freki; ?>" size="20" maxlenght="100" />
(ha nem tudja, húzzon vonalat!)</td>
</tr>
<tr>
<td>4.2</td>
<td><em>Mekkora és milyen felbontású a kijelzője?</em></td>
<td colspan="3"><input name="pix" type="text" id="pix" value="<?php print $pix; ?>" size="20" maxlenght="100" />
pixel</td>
</tr>
<tr>
<td>4.3</td><td><em>Hol alkalmas a mobilja internetezésre?</em></td><td colspan="3"><p>
<input name="terulet" type="text" id="terulet" value="<?php print $terulet; ?>" size="30" maxlenght="100" />
(pl.:régió)</p></td>
</tr>
<tr>
<td>4.4</td><td><em>Fogad-e streaming-filet?</em></td>
<td><input type="radio" name="radio3"value="y" <?php echo $radio3 == 'y' ? 'checked="checked"' : ''; ?>>
igen</td>
<td colspan="2"><input type="radio" name="radio3"value="n" <?php echo $radio3 == 'n' ? 'checked="checked"' : ''; ?>>
nem</td>
</tr>
<tr>
<td>5</td><td>Mire kell alkalmasnak lennie egy mobil készüléknek?</td><td><input type="radio" name="radio4"value="tel" <?php echo $radio4 == 'tel' ? 'checked="checked"' : ''; ?>>
telefonálásra</td><td><input type="radio" name="radio4"value="int" <?php echo $radio4 == 'int' ? 'checked="checked"' : ''; ?>>
internetezésre</td><td><input type="radio" name="radio4"value="mind2" <?php echo $radio4 == 'mind2' ? 'checked="checked"' : ''; ?>>
mindkettőre</td>
</tr>
<tr>
<td>6.</td>
<td>Az ön jelenlegi mobil készüléke alkalmas-e internetes csatlakozásra?</td>
<td><input type="radio" name="radio5"value="y" <?php echo $radio5 == 'y' ? 'checked="checked"' : ''; ?>>
igen</td>
<td colspan="2"><input type="radio" name="radio5"value="n" <?php echo $radio5 == 'n' ? 'checked="checked"' : ''; ?>>
nem</td>
</tr>
<tr>
<td>7.</td>
<td>Általában csak telefonálásra használja a mobilkészülékét?</td>
<td><input type="radio" name="radio6"value="y" <?php echo $radio6 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio6"value="n" <?php echo $radio6 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td>8.</td>
<td><strong>Meg tud-</strong>e nézni rövidebb terjedelmű videóanyagot a mobilja segítségével? </td>
<td><input type="radio" name="radio7"value="y" <?php echo $radio7 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio7"value="n" <?php echo $radio7 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td>9.</td>
<td>Meg <strong>szokott</strong>-e nézni ilyen anyagokat?</td>
<td><input type="radio" name="radio8"value="y" <?php echo $radio8 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio8"value="n" <?php echo $radio8 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td>10</td>
<td><strong>Már előfordult</strong> a barátaim készülékén, hogy igen.</td>
<td><input type="radio" name="radio9"value="y" <?php echo $radio9 == 'y' ? 'checked="checked"' : ''; ?> />
igem</td>
<td colspan="2"><input type="radio" name="radio9"value="n" <?php echo $radio9 == 'n' ? 'checked="checked"' : ''; ?> />
Nem fordult elő.</td>
</tr>
<tr>
<td>11.</td>
<td><p>Van-e akadálya annak, hogy egy mobil-eszköz-csomagot használjon tanuláshoz? </p></td>
<td><input type="radio" name="radio10"value="y" <?php echo $radio10 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio10"value="n" <?php echo $radio10 == 'n' ? 'checked="checked"' : ''; ?> />
nincs</td>
</tr>
<tr>
<td> </td>
<td>Ha igen, mi? </td>
<td colspan="3"><input name="gond" type="text" id="gond" value="<?php print $gond; ?>" size="50" maxlenght="100" /></td>
</tr>
<tr>
<td>12.</td>
<td>Ha van egyéb internet-hozzáférése, akkor is használja a mobilt internetezésre?</td>
<td><input type="radio" name="radio11"value="y" <?php echo $radio11 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio11"value="n" <?php echo $radio11 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio11"value="res" <?php echo $radio11 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td>13.</td>
<td><p>Naponta internetezik?</p></td>
<td><input type="radio" name="radio12"value="y" <?php echo $radio12 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio12"value="n" <?php echo $radio12 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td>14.</td>
<td>Ön szerint alkalmas-e a mobilkészülék hirdetésekre? </td>
<td><input type="radio" name="radio13"value="y" <?php echo $radio13 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio13"value="n" <?php echo $radio13 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio13"value="res" <?php echo $radio13 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td>15.</td>
<td>A nyomtatott hirdetési információt részesíti-e előnyben? </td>
<td><input type="radio" name="radio14"value="y" <?php echo $radio14 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio14"value="n" <?php echo $radio14 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio14"value="res" <?php echo $radio14 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td>16.</td>
<td>Az elektronikus hirdetést is megnézi? </td>
<td><input type="radio" name="radio15"value="y" <?php echo $radio15 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio15"value="n" <?php echo $radio15 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio15"value="res" <?php echo $radio15 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="26">17.</td>
<td>Célirányosan keres a hirdetések között? </td>
<td><input type="radio" name="radio16"value="y" <?php echo $radio16 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio16"value="n" <?php echo $radio16 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio16"value="res" <?php echo $radio16 == 'res' ? 'checked="checked"' : ''; ?> />
néha</td>
</tr>
<tr>
<td height="42">18.</td>
<td>A mobilon elérhető hirdetési és egyéb anyagok mellett használ-e nyomtatott újságokat is?</td>
<td><input type="radio" name="radio17"value="y" <?php echo $radio17 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio17"value="n" <?php echo $radio17 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio17"value="res" <?php echo $radio17 == 'res' ? 'checked="checked"' : ''; ?> />
vegyesen</td>
</tr>
<tr>
<td height="42">19.</td>
<td>Megbízhatónak tartja-e a számítógépen, interneten elérhető hirdetési információkat? </td>
<td><input type="radio" name="radio18"value="y" <?php echo $radio18 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio18"value="n" <?php echo $radio18 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio18"value="res" <?php echo $radio18 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="87">20.</td>
<td>Mit tanácsol a hirdetőknek, hogy gyorsabban és hatékonyabban elérjék a célcsoportjukat?</td>
<td colspan="3"><textarea name="tanacshird" cols="50" rows="5" id="tanacshird" maxlenght="100"><?php print $tanacshird; ?></textarea></td>
</tr>
<tr>
<td height="29">21.</td>
<td>Csak interneten hirdessenek?</td>
<td><input type="radio" name="radio19"value="y" <?php echo $radio19 == 'y' ? 'checked="checked"' : ''; ?> />
Igen</td>
<td><input type="radio" name="radio19"value="n" <?php echo $radio19 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio19"value="res" <?php echo $radio19 == 'res' ? 'checked="checked"' : ''; ?> />
vegyesen</td>
</tr>
<tr>
<td height="61">22.</td>
<td>Milyen a megbízhatósága ma a mobilon elérhető hirdetési információk megjelenésének? </td>
<td><input type="radio" name="radio20"value="y" <?php echo $radio20 == 'y' ? 'checked="checked"' : ''; ?> />
Kiváló</td>
<td><input type="radio" name="radio20"value="n" <?php echo $radio20 == 'n' ? 'checked="checked"' : ''; ?> />
közepes</td>
<td><input type="radio" name="radio20"value="res" <?php echo $radio20 == 'res' ? 'checked="checked"' : ''; ?> />
gyenge</td>
</tr>
<tr>
<td height="23">23.</td>
<td>Könnyűvé teszi a keresett anyagot az internet?</td>
<td><input type="radio" name="radio21"value="y" <?php echo $radio21 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><p>
<input type="radio" name="radio21"value="n" <?php echo $radio21 == 'n' ? 'checked="checked"' : ''; ?> />
Egyáltalán nem könnyű</p></td>
<td><input type="radio" name="radio21"value="res" <?php echo $radio21 == 'res' ? 'checked="checked"' : ''; ?> />
vegyesen</td>
</tr>
<tr>
<td height="42">24.</td>
<td>Olvasna-e rendszeresen napilapot mobil-képernyőn?</td>
<td><input type="radio" name="radio22"value="y" <?php echo $radio22 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio22"value="n" <?php echo $radio22 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="46">25.</td>
<td>miért?</td>
<td colspan="3"><textarea name="napilatmiert" cols="50" rows="5" id="napilatmiert" maxlenght="100"><?php print $napilatmiert; ?></textarea></td>
</tr>
<tr>
<td height="23">26.</td>
<td>Hosszú híradót is nézne mobilon?</td>
<td><input type="radio" name="radio23"value="y" <?php echo $radio23 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio23"value="n" <?php echo $radio23 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio23"value="res" <?php echo $radio23 == 'res' ? 'checked="checked"' : ''; ?> />
alkalomszerűen</td>
</tr>
<tr>
<td height="87">27.</td>
<td>miért?</td>
<td colspan="3"><textarea name="hiradomiert" cols="50" rows="5" id="hiradomiert" maxlenght="100"><?php print $hiradomiert; ?></textarea></td>
</tr>
<tr>
<td height="42">28.</td>
<td>Szereti-e ha reklámokkal is felkeresik információelérés közben?</td>
<td><input type="radio" name="radio24"value="y" <?php echo $radio24 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio24"value="n" <?php echo $radio24 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="50">29.</td>
<td>Ha anyagi korlátja nem volna, milyen készüléket vásárolna? (márka; típus)</td>
<td colspan="3"><textarea name="mikene" cols="50" rows="5" id="mikene" maxlenght="100"><?php print $mikene; ?></textarea></td>
</tr>
<tr>
<td height="61">30.</td>
<td>Hány forintot szánna arra, hogy egy többfunkciós <strong>mobiltelefont</strong> vásároljon, amin akár kereskedelmi megrendelést is feladhat?</td>
<td colspan="3"><input name="menyibe" type="text" id="menyibe" value="<?php print $menyibe; ?>" size="20" maxlenght="100" />
HUF</td>
</tr>
<tr>
<td height="23">31.</td>
<td><p>Szokott-e filmet nézni mobil-on? </p> </td>
<td><input type="radio" name="radio25"value="y" <?php echo $radio25 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio25"value="n" <?php echo $radio25 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio25"value="res" <?php echo $radio25 == 'res' ? 'checked="checked"' : ''; ?> />
Csak reklámfilmet </td>
</tr>
<tr>
<td height="37">32.</td>
<td><p>Ha már van sokfunkciós készüléke, mit javasolna, hogy olcsóbban jusson hozzá egyes hirdetési, kereskedelmi információhoz? </p></td>
<td colspan="3"><textarea name="javaslat" cols="50" rows="5" id="javaslat" maxlenght="100"><?php print $javaslat; ?></textarea></td>
</tr>
<tr>
<td height="23">33.</td>
<td>Egyetért-e azzal, hogy a diákok kaphassanak kedvezményes, esetleg ingyenes internetes tarifát? </td>
<td><input type="radio" name="radio26"value="y" <?php echo $radio26 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio26"value="n" <?php echo $radio26 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="23">34.</td>
<td>Ha diákoknak ingyenes volna ez a szolgáltatás, akkor milyen gyakran venné igénybe? </td>
<td><input type="radio" name="radio27"value="y" <?php echo $radio27 == 'y' ? 'checked="checked"' : ''; ?> />
Mindig.</td>
<td><input type="radio" name="radio27"value="n" <?php echo $radio27 == 'n' ? 'checked="checked"' : ''; ?> />
Nem venném igénybe.</td>
<td><input type="radio" name="radio27"value="res" <?php echo $radio27 == 'res' ? 'checked="checked"' : ''; ?> />
Alkalmanként</td>
</tr>
<tr>
<td height="42">35.</td>
<td>Hány forintot tudna rászánni, ha mégsem volna ingyenes?</td>
<td colspan="3"><input name="ftmenyi" type="text" id="ftmenyi" value="<?php print $ftmenyi; ?>" size="20" maxlenght="100" />
HUF</td>
</tr>
<tr>
<td height="23">36.</td>
<td>Egyetért-e azzal, hogy a telefonálást és a mobil-kereskedelmi információk elérését külön tarifacsomagként kezeljék és választani lehessen? </td>
<td><input type="radio" name="radio28"value="y" <?php echo $radio28 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio28"value="n" <?php echo $radio28 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="42">37.</td>
<td>Egyetért-e azzal, hogy a diákokat is elérhessék kereskedelmi cégek hirdetéseikkel?</td>
<td><input type="radio" name="radio29"value="y" <?php echo $radio29 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio29"value="n" <?php echo $radio29 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="61">38.</td>
<td>Egyetért-e azzal, hogy a diákok a hozzájuk eljuttatott hirdetések fejében olcsóbban jussanak hozzá az internethez? </td>
<td><input type="radio" name="radio30"value="y" <?php echo $radio30 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio30"value="n" <?php echo $radio30 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="23">39.</td>
<td>Zaklatásnak veszi-e, ha hirdetésekkel keresik fel önt? </td>
<td><input type="radio" name="radio31"value="y" <?php echo $radio31 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio31"value="n" <?php echo $radio31 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="53">40.</td>
<td>Általánosan milyen <strong><u>előnyeit</u></strong> emelné ki a multimédiás eszköz(ök)nek? </td>
<td colspan="3"><textarea name="multielony" cols="50" rows="5" id="multielony" maxlenght="100"><?php print $multielony; ?></textarea></td>
</tr>
<tr>
<td height="54">41.</td>
<td>Általánosan milyen <strong><u>hátrányait</u></strong> emelné ki a multimédiás eszköz(ök)nek?</td>
<td colspan="3"><textarea name="multihatrany" cols="50" rows="5" id="multihatrany" maxlenght="100"><?php print $multihatrany; ?></textarea></td>
</tr>
<tr>
<td height="61">42.</td>
<td>Fontos-e, az ön munkája, tanulása szempontjából, hogy helytől és időtől függetlenül is elérhessen bizonyos információkat?</td>
<td> <input type="radio" name="radio32"value="y" <?php echo $radio32 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio32"value="n" <?php echo $radio32 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio32"value="res" <?php echo $radio32 == 'res' ? 'checked="checked"' : ''; ?> />
Közömbös</td>
</tr>
<tr>
<td height="73">43.</td>
<td><p>Miért? </p></td>
<td colspan="3"><textarea name="fmiert" cols="50" rows="5" id="fmiert" maxlenght="100"><?php print $fmiert; ?></textarea></td>
</tr>
<tr>
<td height="42">44.</td>
<td>Mobil-készüléken is rendezi-e az internetes információkat? </td>
<td><input type="radio" name="radio33"value="y" <?php echo $radio33 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio33"value="n" <?php echo $radio33 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="42">45.</td>
<td>Csak hálózatos készüléken rendezem az információimat. </td>
<td><input type="radio" name="radio34"value="y" <?php echo $radio34 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio34"value="n" <?php echo $radio34 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="61">46.</td>
<td><p>Ön szerint nagyon rátelepszik az emberre, ha már a mobil készülékén is kereskedelmi internetezést folytat? </p></td>
<td><input type="radio" name="radio35"value="y" <?php echo $radio35 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td colspan="2"><input type="radio" name="radio35"value="n" <?php echo $radio35 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
</tr>
<tr>
<td height="42">47.</td>
<td>Figyeli-e (az interneten) a kedvenc honlapjain a napi változásokat? </td>
<td><input type="radio" name="radio36"value="y" <?php echo $radio36 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio36"value="n" <?php echo $radio36 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio36"value="res" <?php echo $radio36 == 'res' ? 'checked="checked"' : ''; ?> />
alkalomszerűen</td>
</tr>
<tr>
<td height="23">48.</td>
<td>A társasági oldalakat nézi?</td>
<td> <input type="radio" name="radio37"value="y" <?php echo $radio37 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio37"value="n" <?php echo $radio37 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio37"value="res" <?php echo $radio37 == 'res' ? 'checked="checked"' : ''; ?> />
(mást is) néha</td>
</tr>
<tr>
<td height="23">49.</td>
<td>Hírportált szokott-e nézni? </td>
<td><input type="radio" name="radio38"value="y" <?php echo $radio38 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio38"value="n" <?php echo $radio38 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio38"value="res" <?php echo $radio38 == 'res' ? 'checked="checked"' : ''; ?> />
alkalomszerűen</td>
</tr>
<tr>
<td height="26">50.</td>
<td>Felvett-e új szokásokat az internet elterjedése óta? </td>
<td><input type="radio" name="radio39"value="y" <?php echo $radio39 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio39"value="n" <?php echo $radio39 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio39"value="res" <?php echo $radio39 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="23">51.</td>
<td>Gyakrabban olvas-e híreket mióta internete van? </td>
<td><input type="radio" name="radio40"value="y" <?php echo $radio40 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio40"value="n" <?php echo $radio40 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio40"value="res" <?php echo $radio40 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="53">52.</td>
<td>Nagyon rátelepszik az internet a hétköznapjaira? </td>
<td><p>
<input type="radio" name="radio41"value="y" <?php echo $radio41 == 'y' ? 'checked="checked"' : ''; ?> />
Igen (Függő vagyok)</p> </td>
<td><input type="radio" name="radio41"value="n" <?php echo $radio41 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio41"value="res" <?php echo $radio41 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="48">53.</td>
<td>Okos dolog-e interneten hirdetni? </td>
<td><input type="radio" name="radio42"value="y" <?php echo $radio42 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio42"value="n" <?php echo $radio42 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio42"value="res" <?php echo $radio42 == 'res' ? 'checked="checked"' : ''; ?> />
nem mindig </td>
</tr>
<tr>
<td height="26">54.</td>
<td>Megbízható-e az internetes hirdetés? </td>
<td><input type="radio" name="radio43"value="y" <?php echo $radio43 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio43"value="n" <?php echo $radio43 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio43"value="res" <?php echo $radio43 == 'res' ? 'checked="checked"' : ''; ?> />
nem mindig </td>
</tr>
<tr>
<td height="45">55.</td>
<td><p>Mennyire képviseli az internetes felmérés a tényleges fogyasztói, vásárlói kört?</p> </td>
<td><input type="radio" name="radio44"value="y" <?php echo $radio44 == 'y' ? 'checked="checked"' : ''; ?> />
Hű képet ad róluk</td>
<td><input type="radio" name="radio44"value="n" <?php echo $radio44 == 'n' ? 'checked="checked"' : ''; ?> />
Nem képviseli </td>
<td><input type="radio" name="radio44"value="res" <?php echo $radio44 == 'res' ? 'checked="checked"' : ''; ?> />
Csak részben (kérdőívtől függ)</td>
</tr>
<tr>
<td height="64">56.</td>
<td>Mennyire tükrözi egy kereskedelmi cég tevékenységét az interneten jelenlévő oldala?</td>
<td><input type="radio" name="radio45"value="y" <?php echo $radio45 == 'y' ? 'checked="checked"' : ''; ?> />
Teljes mértékben</td>
<td><input type="radio" name="radio45"value="n" <?php echo $radio45 == 'n' ? 'checked="checked"' : ''; ?> />
Nem képviseli, a valóságban mással foglalkozik</td>
<td><input type="radio" name="radio45"value="res" <?php echo $radio45 == 'res' ? 'checked="checked"' : ''; ?> />
Vegyes; mindkét jelenlét fontos a számára</td>
</tr>
<tr>
<td height="83">57.</td>
<td>Mennyire bízik meg egy cég internetes hirdetésében?</td>
<td><p>
<input type="radio" name="radio46"value="y" <?php echo $radio46 == 'y' ? 'checked="checked"' : ''; ?> />
Megbízom</p></td>
<td><input type="radio" name="radio46"value="n" <?php echo $radio46 == 'n' ? 'checked="checked"' : ''; ?> />
Nem bízom meg (szeretek a kereskedő szemébe nézni) </td>
<td><input type="radio" name="radio46"value="res" <?php echo $radio46 == 'res' ? 'checked="checked"' : ''; ?> />
Még csak most alakul ki az internetet teljesen elfogadó korosztály, utána </td>
</tr>
<tr>
<td height="61">58.</td>
<td>Ha önnek cége van (volna) rábízná magát az internetre, hogy elérje a (célközönségét) a vásárlóit?</td>
<td><input type="radio" name="radio47"value="y" <?php echo $radio47 == 'y' ? 'checked="checked"' : ''; ?> />
igen</td>
<td><input type="radio" name="radio47"value="n" <?php echo $radio47 == 'n' ? 'checked="checked"' : ''; ?> />
nem</td>
<td><input type="radio" name="radio47"value="res" <?php echo $radio47 == 'res' ? 'checked="checked"' : ''; ?> />
részben</td>
</tr>
<tr>
<td height="87">59.</td>
<td>Milyen gyakran rendel az interneten keresztül? (bármit)</td>
<td><input type="radio" name="radio48"value="y" <?php echo $radio48 == 'y' ? 'checked="checked"' : ''; ?> />
Gyakran (hetente)</td>
<td><p>
<input type="radio" name="radio48"value="n" <?php echo $radio48 == 'n' ? 'checked="checked"' : ''; ?> />
Nem rendelek</p>
</td>
<td><p>
<input type="radio" name="radio48"value="res" <?php echo $radio48 == 'res' ? 'checked="checked"' : ''; ?> />
Néha (1-2 havonta)</p> </td>
</tr>
<tr>
<td height="87">60.</td>
<td>Milyen értékhatáron túl nem rendel semmit az internetről?</td>
<td><input type="radio" name="radio49"value="y" <?php echo $radio49 == 'y' ? 'checked="checked"' : ''; ?> />
Bármit megrendelek</td>
<td><input type="radio" name="radio49"value="n" <?php echo $radio49 == 'n' ? 'checked="checked"' : ''; ?> />
Semmit sem</td>
<td><input type="radio" name="radio49"value="res" <?php echo $radio49 == 'res' ? 'checked="checked"' : ''; ?> />
Csak jelképes értékeket rendelek. (Pizzafutár; vonatjegy; repülőjegy.) </td>
</tr>
<tr>
<td height="87">61.</td>
<td>Mi volt az eddigi legnagyobb érték, amit interneten rendelt meg? </td>
<td colspan="3"><input name="menyirend" type="text" id="menyirend" value="<?php print $menyirend; ?>" size="20" maxlenght="100" />
HUF </td>
</tr>
<tr>
<td height="40" colspan="2" align="right">
<input type=submit value="Mehet"></td>
<td colspan="3">
<input type=reset value="Mégse"></td>
</tr>
</table>
</form>Lehet valamit elnéztem a kódban?
-
8nemesis8
veterán
válasz
Sk8erPeter #3452 üzenetére
Szuper.
Illetve az vajon butaság lenne e, hogy valahogyan megcsinálnám, hogy automatikusan a visszahozás dátumába beállítsa, hogy vissza lett hozva!?
Ez inkább maradjon manuális ugye? Tehát mondjuk az admin ha visszahoztak egy filmet, akkor egy gombbal be tudja állítani, hogy vissza lett hozva. -
meone
tag
válasz
Sk8erPeter #3454 üzenetére
Csak ennyi hiányzott: "&&"
Akkor a CSS-t majd még ez után csinálom meg először legyen kész ez a script.Még akadt egy kis gond.
Meg csináltam ezt a változtatást, de most akkor is ki írja a szöveget ha nincsen benne érték. -
8nemesis8
veterán
válasz
Sk8erPeter #3445 üzenetére
Hát akkor ebbe az irányba kezdek el gondolkodni, mert ahogyan én csináltam dátumok alapján egymásba ágyazott selectekkel és vagy 5-6sorban úgy részben lett jó megoldás.
Egyébként lehet valami éppen aktuális, mai dátumot lekérni valahogyan phpvel?
Mert akkor kivétel időpontjához azt adnám meg. -
cucka
addikt
válasz
Sk8erPeter #3440 üzenetére
Hogyan tárolsz képet az adatbázisban?
Például a mysql-ben a különböző blob típusú mezők erre vannak.Valószínűleg azért ajánlják mindenhol a link tárolását az adatbázisban, mert csak azt lehet megcsinálni.
Nem. Azért ajánlják, mert sokkal egyszerűbb megcsinálni.ha valaki megcsinálná azt, hogy mondjuk egy jpeg képnek a szerkesztőben látható tartalmát tárolná el adatbázisban, majd úgy hívná elő, hogy abból jpeg-kép szülessen, akkor hááát igencsak ki lehetne nevetni
Én már megcsináltam párszor, kezdhetsz nevetni.Ott adatot tárolsz, nem konkrétan fájlokat, majd ezeket előhívogatod, ahol szükséged van rá.
Egy file tartalma is adat. -
cucka
addikt
válasz
Sk8erPeter #3438 üzenetére
De mondjuk ez biztonsági szempontból kicsit kevés ellenőrzésnek, nem? De más gépről hogyhogy működhet ugyanaz a Session ID?
Szerintem fogj egy komolyabb könyvet és olvasd el, hogy hogyan működik a php session kezelése.
Úgy működhet ugyanaz a session_id, hogy senki sem ellenőrzi, hogy a kliens gépnének nem-e változott az ip címe vagy a user_agent-je. Ha biztonságos rendszert szeretnél, akkor ezt a kettőt ellenőrizni kell.a feltörésnél igazából még az nem tiszta, hogy ha tételezzük fel megvan az md5-hash-ed, akkor abból miért nem lehet visszafejteni az eredeti jelszót, ha mindig ugyanazon az algoritmuson alapszik a hash legyártása.
Azért nem lehet visszafejteni, mert nem lehet visszafejteni. Ilyen a hash algoritmus, ez a lényege, hogy egy irányú. A pontos válaszok nagyon túlmutatnak ezen a topikon, ez a téma a doktori disszertációk és egyetemi kutatások szintje, teljes megértéséhez elég komoly algebrai ismeretek szükségesek. Amúgy ha érdekel a téma, kezdésnek nézd meg az rsa algoritmusát, a wikin például le van írva, hogy pontosan hogyan működik és miért nehéz visszafejteni. -
8nemesis8
veterán
válasz
Sk8erPeter #3440 üzenetére
Bocs, igazad van. Elég nagy butaságot írtam.
Másik téma:
Nekem most egy videotékát kell megcsinálnom. A következő a gondom.
Ugye ki lehet venni a filmeket és ezt egy kölcsönzés táblában eltárolom, hogy melyik hordozót vette ki, ami egy kulcs és hogy ki vette ki, ami tagsági szám, illetve még a kivitel és visszahozás időpontját tárolom el.
Kivitel kulcs,illetve a fentebb említett másik kettő kulcs külső.
Nah az a gondom, hogy csak azokat szeretném megjeleníteni a kölcsönzési listában,amik éppen bent vannak a tékában, ami kölcsönzés alatt van azokat ne mutassa. Ezt sajnos semmilyen lekérdezéssel nem tudtam megoldani, csak részben jó megoldással.
Valami ötletet tudnál/tudnátok erre adni? -
8nemesis8
veterán
válasz
Sk8erPeter #3425 üzenetére
Még én sem tudom, hogy az adatbázisba tároljam e a képet vagy csak a linket, de ahogyan olvasgatok utána inkább a link mentését ajánlják többen is.
Azonban én úgy gondolom nekem egyszerűbb lenne képet tárolni az adatbázisban. -
cucka
addikt
válasz
Sk8erPeter #3426 üzenetére
De ha itt md5-tel ismét "titkosítom" azt a karaktersorozatot, amit a felhasználó bevitt, és az eredményt összevetem az adatbázisban tárolt adatokkal, akkor ezt miért nem tudják ugyanezzel a módszerrel automatizáltan feltörni?
Már hogy képzeled az automatizáltan feltörést? Végigpróbálod az összes lehetséges jelszót?
A lényege a dolognak, hogy az md5 (és más hash algoritmusok is) egyirányúak. Ez azt jelenti, hogy nincs olyan algoritmus, ami polinomiális időben tudna egy adott hash-re ütközést találni. Tehát hiába látod a hash-t, a jelszót nem tudod belőle visszafejteni.Most ez kábé olyan, mintha nem is lenne titkosítva, mert a bevitelkor úgyis a titkosított
eredményt veti össze a már korábbban titkosítottal.
Nem. Először is a hash az nem titkosítás, hanem hash. Más a célja, másra jó. Hiába tudja az illető a hash-t, attól még nem tud belépni az oldaladra, mert ahhoz a jelszót kéne tudnia.Hogy érzékeld a különbséget a hash és a titkosítás között: gondolom te is találkoztál már netről letöltött zenével/programokkal, ahol a fileok mellett ott az svf file. Na az pont ugyanilyen hash algoritmussal készül, az svf-ben minden filehoz tartozik egy 32 biten ábrázolt szám. Miután letöltötted a fileokat, ezzel lehet ellenőrizni, hogy valóban helyesek-e az adatok. A hash algoritmusok egyik jellemzője, hogy nagyon "szórnak", tehát ha a bemeneti adatot kis mértékben megváltoztatod, az eredményül kapott hash teljesen más lesz. Ezért jó pl. ilyen ellenőrzésekre. (Igen, elvileg az md5 vagy az sha1 is tökéletesen megfelelő ilyen ellenőrzésekre, de ha nem kifejezetten fontos az egyirányúság, akkor jellemzően megéri valamilyen gyorsabb algoritmust használni)
-
fordfairlane
veterán
válasz
Sk8erPeter #3426 üzenetére
Remélem érthető, mire akarok kilyukadni
Mi a kérdés?
Hash-t tárolsz, azt veted össze loginnál, oké. Nincs további teendő ezzel szerintem.
-
ArchElf
addikt
válasz
Sk8erPeter #3426 üzenetére
A legegyszerűbb módja az, ha megszerzik az authentikációs csomagot. Ha ezt újra be tudják küldni a szervernek és az elfogadja, akkor meg is van a session hijack (pontosabban ez inkább reuse). Az igazi hijack az, amikor a bejelentkezés után a felhasználónak adsz pl egy Session ID-t ami alapján meg tudod mondani, hogy a már be van lépve. A ez a session id pl egy másik gépről is működik (vagy ugyanarról a gépről (kicsit később), az az igazi session hijack.
Ha pedig egy kívülálló már select-elni tudja az adatbázisod, az rég rossz.
AE
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3424 üzenetére
Ja, egyébként a "session lopás"-t hogy kell elképzelni? Hogy tudják megszerezni ilyen módon az adatokat?
Még egy: (#3420) fordfairlane:
"de nem érdemes csak emiatt elbonyolítani egy egyszerűbb rendszert."
Igazából a jelszavak md5-titkosítással történő bevitelével töltöttem kb. a legkevesebb időt. Volt legalább 2 perc, miután megnéztem valahol, hogyan kell, szóval ez tulajdonképpen nem igazán bonyolította el az amúgy igencsak egyszerűnek mondható rendszeremet.Még ami nem igazán tiszta számomra:
$nick = addslashes($_POST['user']);
$pass = md5($_POST['pass']);
$query = " SELECT DISTINCT * FROM users
WHERE (nick='".$nick."' AND jelszo='".$pass."'); ";
//stb.
Ez egy egyszerűbb módja a jelszó leellenőrzésének, amit bevittek a bejelentkező űrlap elküldésekor.
De ha itt md5-tel ismét "titkosítom" azt a karaktersorozatot, amit a felhasználó bevitt, és az eredményt összevetem az adatbázisban tárolt adatokkal, akkor ezt miért nem tudják ugyanezzel a módszerrel automatizáltan feltörni? Most ez kábé olyan, mintha nem is lenne titkosítva, mert a bevitelkor úgyis a titkosított eredményt veti össze a már korábbban titkosítottal.
Remélem érthető, mire akarok kilyukadni -
8nemesis8
veterán
válasz
Sk8erPeter #3396 üzenetére
Nekem is elég lesz az md5.
Nah szépen meg is csináltam faszán a levédéseket bejelentkezést és szétbontottam mit használhat user és admin.A következő lépés képek beszúrása a videotékába. Ha ehhez is van hasonlóan jó kis linked akkor szívesen fogadom. Illetve lehetséges, hogy egy kis cssre is lesz mellé időm, azt eddig weblabor-ról nézegettem.
-
fordfairlane
veterán
válasz
Sk8erPeter #3416 üzenetére
Most akkor kissé már össze vagyok zavarodva, akkor lényegében azt is mondhatnánk, hogy tök feleslegesek a titkosítások, mert úgyis mindent meg lehet kerülni.
A hash algoritmus egy titkosítási módszer. A lényege, hogy az eredeti adatfolyamot helyettesítjük egy lenyomattal, ezt hívják hash kódnak. Miért jó az, ha a hash kód van meg az eredeti adatfolyam helyett? Mert a hash kód ismerete, kiszivárgása sem jelent problémát, elvileg a kódból nem lehet egyszerű eszközökkel "kinyerni", visszafejteni az eredeti adatokat. A hash kódokat több helyütt is használják. Ami nem mindegy, hogy mire használjuk, mit akarunk vele meggátolni.
Gyakorlatilag miért nincs ebben a konkrét esetben jelentősége? Mert a hash kód a leírt rendszerből nem szivároghat ki. Abban az esetben juthat hozzá a hash kódhoz a támadó, ha az adatbázis tartalmát ki tudja elolvasni. Mikor tudja a támadó kiolvasni az adatbázis tartalmát, akár hash kód van benne, akár a plain text jelszavak? Hát elvileg csakis akkor, ha már van közvetlen hozzáférése hozzá. Ha pedig már közvetlenül hozzáfér az adatbázishoz, a jelszavakhoz, akkor valószínűleg egy egyszerűbb site-nál hozzáfér minden adathoz közvetlenül, akár írási joggal. Ebben az esetben a jelszavaknak meg már nincs jelentősége.
Persze egy olyan rendszernél, ahol a jelszavakat ismerve további járulékos károkat lehet okozni (ugyanazzal a név:jelszó párossal más helyre is be lehet lépni pl.), akkor érdemes inkább hash kódot tárolni, úgy egyébként is ez a korrekt megoldás, de nem érdemes csak emiatt elbonyolítani egy egyszerűbb rendszert.
-
ArchElf
addikt
válasz
Sk8erPeter #3416 üzenetére
Elsősorban a jelszavakat a jogosultsággal rendelkező felhasználóktól védik hasheléssel. Avagy a felhasználók érdekeinek védelme a rendszergazda kíváncsisága ellen.
Tegyük fel, hogy te vagy egy cég tulajdonosa, és alkalmazol egy rendszergazdát. Nem biztos, hogy szeretnéd, ha szabadidejében az ügyfeleid nevében vásárolgatna...
Ezután képzeld el mindezt egy bankkal. Így már érthető, ugye?
AE
-
cucka
addikt
válasz
Sk8erPeter #3416 üzenetére
Milyen gyorsabb módszerekre kell gondolni? Nem azért kérdezem, mert kódfeltörés lesz a hobbim, hanem érdekel, hogy mi ellen, hogyan szokás védekezni.
Kezdjük a kályhánál.
A hash algoritmusok lényege, hogy van nagyon sok fajta különféle bemeneti adatod és ezekhez kell hozzárendelni egy szűkebb halmazból egy elemet. Jelen esetben a nagyon sok fajta különféle bemeneti adat a lehetséges jelszavak halmaza (pl. n..m hosszúságú alfanumerikus stringek), a szükebb halmaz pedig a 128 bites számok halmaza (ezek a lehetséges md5 hash-ek). A hash algoritmus azt csinálja, hogy a bemeneti adatból egy hasht gyárt. Nyilván, az algoritmus több eltérő bemeneti adathoz is kiadhatja ugyanazt a hash kulcsot, ezt hívják ütközésnek. Akkor jó egy hash algoritmus, ha a hash kulcs alapján nem tudsz olyan bemeneti adatot mondani, aminél ütközés lép fel.A hash kulcs feltörésének legegyszerűbb módja a próbálgatás, aminek a műveletigénye O(2^n), azaz exponenciális. Ezt gyakorlatilag senki sem használja. Vannak más módszerek is, mint a "rainbow tables", ezekkel lényegesen gyorsabban lehet ütközést taláni, de ez a gyorsaság még mindig több órát vagy napot jelent. Ezen kívül ha jól emlékszem, az md5-höz sikerült találni polinomiális időben lefutó algoritmust, viszont ott a konstans szorzók brutálisan nagyok, tehát szintén lassú (meg kell keressem a forrást, jópár éve olvastam erről, tehát lehet, hogy rosszul emlékszem). Leginkább ezért ajánlják a nagyokosok, hogy md5 helyett sha1-el kódold a jelszavakat.
Az ütközések keresése elsősorban hitelesítésnél fontos (pl. hitelesített szoftver), ezeknél megérheti a befektetett időt az ütközések keresése. Ha valaki talál egy adatbázist több száz vagy ezer lekódolt jelszóval, akkor ott nem éri meg ezzel tökölni.
Az ütközés kikerülésének a legegyszerűbb módja a salt, aminek lényege, hogy kódolás előtt a kódolandó adathoz hozzá kell fűzni, így gyakorlatilag hiába talál bárki ütközést a hash értékhez, az eredményül kapott jelszó nem fog működni.Összefoglalva: a jelszavak visszakódolása egyrészt nagyon sok idő, másrészt a salt miatt egyáltalán nem biztos, hogy eredményes, tehát ha valaki hozzá is fér az adatbázisodhoz, jó eséllyel nem fogja ezt csinálni. Ezért fölösleges annyit pörögni a témán. Természetesen a hash algoritmusok nagyon fontosak, csak pont ebben a speciális esetben jelenthető ki, hogy nem túl érdekesek.
A jelszavakhoz való illetéktelen hozzáférést elsősorban phishing oldalakkal szokták csinálni, de mondjuk a session lopás is lehet eredményes.
-
cucka
addikt
válasz
Sk8erPeter #3411 üzenetére
A tárgyi tévedések mellett a cikkel a fő probléma a feltételezés, hogy ha egy támadó hozzáfér az adatbázisodhoz, akkor azt fogja csinálni, hogy visszakódolja az ott tárolt jelszavakat.
A valóság, hogy a jelszavakat nem md5 (vagy más) hash-ek visszafejtésével szerzik meg a rosszindulatú emberek, vannak erre gyorsabb módszerek is. A másik, hogy ha már hozzáfértek az adatbázisodhoz, akkor az a legkisebb problémád, hogy meglátják a kódolt jelszavakat.Igazából ez egy elméleti téma, gyakorlatilag meglehetősen haszontalan, tehát ha nem muszáj, akkor nem kell foglalkozni vele, az egyszerű md5 vagy sha1 bőven megfelelő erre a célra.
-
fordfairlane
veterán
válasz
Sk8erPeter #3411 üzenetére
Ha már itt tartunk, van esetleg valami hiteles cikk, amit tudnál a témával kapcsolatban ajánlani?
Melyik témával kapcsolatban? Az MD5-ről elég annyit tudni, hogy egyirányú kódolás, 32 karakteren lehet tárolni, a többit a beépített md5 függvény elintézi. Persze ha valakit érdekelnek a részletek, az megtalálja az algoritmust is, fent van a Wikipédián.
-
Odiepapa
csendes tag
válasz
Sk8erPeter #3400 üzenetére
-
fordfairlane
veterán
válasz
Sk8erPeter #3396 üzenetére
"Az MD5 ellenőrző számok az angol ábc betűiből (26) és számokból (10) állnak. Ez ugye 32 felvehető érték, 32 karakternél (32 karakteresek az MD5 ellenőrző számok). Tehát összesen 3632 [kb. 1,46 * 1048] lehetséges MD5 ellenőrző szám van."
Ezt a baromságot... az MD5 egy 128 bites hash, akkor lesznek benne "angol betűk", ha hexadecimális formában írja le valaki, de ugye akkor sem az angol abc betűi, hanem csak 0-9 és a-f-ig. Ilyen pocsék leírásokat nem kéne linkelni.
-
ArchElf
addikt
válasz
Sk8erPeter #3396 üzenetére
Mondjuk az a linkelt oldal eléggé sántít. Persze meg lehet (és félre lehet) érten belőle, mi a sózás, és miért van rás szükség. De a magyarázatok, levezetések, ejj mintha egy 14 éves hobbista írta volna.
AE
-
Odiepapa
csendes tag
válasz
Sk8erPeter #3396 üzenetére
Mutasd meg az oldalt es mi elkezdunk probalkozni
-
8nemesis8
veterán
válasz
Sk8erPeter #3394 üzenetére
Igen, ez csak egy teljesen alap kötelezőprogram lesz, de későbbiekben érdekelni fog komolyabb titkosítás is ha lesz időm, tényleg nem bonyolult a beléptetőrendszer létrehozása.
-
válasz
Sk8erPeter #3391 üzenetére
Az md5() helyett én inkább az sha1()-t ajánlanám.
-
8nemesis8
veterán
válasz
Sk8erPeter #3391 üzenetére
Köszi a gyors választ.
Igyekszem felfogni és megírni ez alapján.
Majd még biztosan jelentkezek -
8nemesis8
veterán
válasz
Sk8erPeter #3381 üzenetére
Igen, akkor néztem, hogy mi is az.
Nem tudom hogyan került oda
Köszi szépen, most nézem, hogy ír e már az adatbázisba, de minden szépen megy -
8nemesis8
veterán
válasz
Sk8erPeter #3379 üzenetére
Írtam picivel előtte, hogy jelszó nélkül is szarakodott.
De megvan a hiba, volt előtte egy hivásom kapcsolódásra paraméterek nélkül és elkerülte a figyelmemet, ezért sikítozott.
Köszi a kódot is, egyszerűbb, ahogyan én írtam, inkább ezt fogom használni!! -
8nemesis8
veterán
válasz
Sk8erPeter #3377 üzenetére
Igazad van, de attól még a hiba ugyanúgy fennáll
root felhasználót kellene lecserélnem esetleg?A poén az, hogy írtam egy kis lekérdezést, nem mysql, hanem a táblák lekérdezését végzi az adatbázisban:
if($eredmeny= @mysql_query("SHOW TABLES FROM videoteka")){
while($row = mysql_fetch_row($eredmeny)){
print("<br>" . $row[0]);Ez meg tökéletesen kiírja, hogy milyen tábláim vannak, de már azon belül nem tudok dolgozni.
-
Protezis
őstag
válasz
Sk8erPeter #3364 üzenetére
Az első redirect felesleges, megoldható nélküle a dolog. Húzd be a másik fájlt (require_once) és egy abban lévő függvénynek passzold át az ellenőrzést.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3326 üzenetére
Csak megerősítő kérdés a májsztróktól: az itt leírt kétszer átirányítós, session-ös megoldás véleményetek szerint jó megoldásnak tűnik? Működni működik, de kíváncsi vagyok, hogy oldaná meg egy profi. Vagy legalább hogy mi a véleménye.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3335 üzenetére
"Ami hátrány lehet, hogy a könyvet még a PHP5 megjelenése előtt adták ki. (2004. februárban, a PHP5 júliusban jött ki)"
Korrigálom ezt a hsz.-emet, nem hátrány, mivel a PHP5-ről van benne szó.Itt megtalálható az egész könyv online formában!
-
dany27
őstag
válasz
Sk8erPeter #3337 üzenetére
Azért írtam mert gondolom azt hogy megtetszik azt letudodd abból is szűrni ha csak beleolvasol! És így nem kell lebattyogni a könyvtárba
És ha akarod akkor megveszed! Én szerintem megfogom annak ellenére hogy van benne egy két hibás kód de azon gyorsan túl tudom magam tenni.(Mármint a példákban)
Nem soká kapod privibe csak még megy fel -
dany27
őstag
válasz
Sk8erPeter #3335 üzenetére
Azt hittem hogy ez itt nem kérdés hogy HTML megy-e!
CSS-t annyira nem vágom, de a HTML-ből elég jó szinten vagyok!PHP-s könyvet szeretnél kivenni ? Ha kell a PHP5 24 óra akkor dobj egy privit megdumáljuk
(Gépen megvan)
-
dany27
őstag
válasz
Sk8erPeter #3332 üzenetére
A PHP5 24 óra az megvan csak gépen scannelve és gépen nem szeretek olvasni! Meg elég homályos de elég jól magyaráz!
Igazából eddig a PHP.net-ről szedtem csak tudod ilyen webes nyelvet nem ismerek még egyet sem így nem tudom hogy mik a lehetőségek a nyelvben!
Mivel suliba is most kezdtük a PHP-t meg már régóta kacérkodtam vele így nekiállok magamtól mivel suliba nem haladunk színte semmit.
Haver meg én meg eldolgozgatunk a magunk gyorsabb tempojába azt a tanár már nem is szól érte ha nem azt csináljuk amit a többiek mert leszűri abból amit csinálunk h mi gyorsabban haladunk.Mivel ugye az alap programozási tudás adott pascal meg Basic után így nem nehéz haladni ha ismerjük a szintakszisát! Csak ugye ez webes dolog így ebben vannak olyan adottságok amik csak webes nyelvekre jellemzőek!
Ezért kellene egy olyan könyv ami jól tárgyalja a különböző funkciókat! Szóval nem azt kell el magyarázni hogy mi a for ciklus meg milyen a hátul tesztelős ciklus meg mi az a switch és társai ezeket tudom mivel van más nyelvben is csak max másképp egy kicsit!Jah és SQL-el sem vagyok haragban ebből is van egy kis ismeretem...
-
dany27
őstag
válasz
Sk8erPeter #3330 üzenetére
Háth igen arra biztos hogy figyelni kell hogy az ember nehogy régebbi verziójut vegyen....
De akkor a PHP Fekete könyv az kiesik.. Mert az szentem nem PHP5-s mivel az még valamikor 2002be jelent meg! A PHP felsőfokon az még jó lehet csak ott ugyebár az írja hogy konkrét problémákat old meg. Ez tárgyalja PHP különböző parancsait vagy csak konkrét poblémákat olda meg? Mert én még nem vagyok tisztába a PHP parancsai nagy részével csak rendelkezem egy kis programozói gyakorlattal más nyelvekből!Ezért gondoltam a PHP5 24 óra alattra mert abban amint láttam azért leírja h melyik parancs mire jó!
De ha a másikban is benne van és az jobb akkor azt veszem !
-
dany27
őstag
válasz
Sk8erPeter #3328 üzenetére
ohh ezer bocs már megint nem használtam a keresőt.....
Ezek szerint a az agyhullám az csak parasztvakitás!
Akkor marad a php 24 óra alatt!
Vagy más ajánlat?
Kössz! -
fordfairlane
veterán
válasz
Sk8erPeter #3317 üzenetére
Ez a része működik, átlátható, de F5-ös frissítésnél a legtöbb böngésző (Opera 9.64 pl. NEM) megkérdezi, ismét el szeretnénk-e küldeni a POST adatokat. És az elég gáz, ha még egyszer feltölti az adatbázist ugyanazokkal az adatokkal. Ezért is ajánlotta lezso6 a SESSION-ös trükköt. De az gond, hogy nem unsettelem sehol ezt a SESSION-be eltárolt értéket, pedig azt kéne, csak nem tudom, hol.
Nem biztos, hogy teljesen átlátom a dolgot, de ha jól értem, itt egy egyszerű képfeltöltésről van szó, járulékos adatokkal, és az bonyolítja meg a helyzetet, hogy előnézeti képet is akarsz a felhasználónak produkálni. Én ezt úgy szoktam megoldani, hogy feltöltésnél létrehozok egy átmeneti adatbázis rekordot, amit véglegesítek, ha minden jó, és a felhasználó is leokézza. Ha Mégsem-et nyom,akkor törlök mindent. Másik megoldás, hogy jóváhagyásig sessionben tárolod az adatokat. Ennek tkp. nincs sok köze ahhoz, hogy hogyan strukturálod a kódodat, ez technikai kérdés. POST után ha az adatokat feldogozod, csinálni kell egy átirányítást.
-
válasz
Sk8erPeter #3317 üzenetére
Jade NE csak a session változót állítsd be, hanem azt is, hogy irányítson IS át ugyanoda, mert ez utóbbi nélkül télleg nem lehet sehova se rakni az unset()-et.
Inkább leírom az egészet, nemtom eddig miért nem csináltam:session_start();
if($_SESSION['siker']) {
// tehát ez AKKOR fut le, ha már felvetted
// a cuccokat az adatbázisba, és az átirányítás
// miatt POSTmentes lett a lekérés, F5-re nem
// küld újra semmit.
// SIKER KIÍRÁSA
$_SESSION['siker'] = false;
// unset is lehetne, de tökmindegy... :)
} elseif( JÓK AZ ELKÜLDÖTT ADATOK ) {
// FELDOLGOZÁS
$_SESSION['siker'] = true;
header('Location', $_SESSION['PHP_SELF']);
// nem fut tovább ugyebár, hanem elölről kezdődik,
// de már NINCS POST...
} else {
// SIKERTELEN, HIBÁS, HIBAÜZENETEK, STB
} -
1ed
csendes tag
válasz
Sk8erPeter #3314 üzenetére
Szia!
Az első két fejezet szerintem elég jól leírja mi az MVC, illetve milyen egyéb fogalmak vannak amik egy kertrendszer esetén szóba jönnek. Vannak példák is, bár van olyan rész ami már symfony specifikus. [symfony-book]
Esetleg érdemes lehet elolvasni, de komoly MVC keretrendszer használatát (mint pl a symfony) csak akkor javaslom ha van egy biztos OOP-s PHP, adatbázis, programtervezési tudásod, illetve a project nagysága indokolttá teszi. -
fordfairlane
veterán
válasz
Sk8erPeter #3314 üzenetére
Nem tudom, érdemes-e az MVC elméleti részét boncolgatni első programnál. Mi a probléma a programoddal? Ha strukturálatalnul is működik jól, és kezelhetőek a hibák, módosítások, akkor fölösleges sokat agyalni magán a struktúrán. A struktúra szerkezete akkor kezd érdekessé válni, amikor enélkül már átláthatatlan az egész program.
-
válasz
Sk8erPeter #3312 üzenetére
OOP, MVC, és a jó dokumentáció a lelke mindennek.
Szvsz...
-
válasz
Sk8erPeter #3294 üzenetére
Bocs, elfelejtettem visszanézni a topikba.
Hirtelen most erre a dologra azt tudom mondani, hogy használd az ob_start() függvényt a kérdéses fáj elején, s így akkor küldhetsz headert, amikor csak akarsz, mert pufferbe írja az adatokat elküldés helyett, amit a szkript lefutása után ürít ki, ha ez megold valamit.
Mert amúgy nem értem mi nem megoldható ezen.
POST ürítésre a header('Location', $_SERVER['PHP_SELF']); cucc kell ugyebár. Amikor ezt meghívod, sessionbe is beraksz egy változót, hogy törölted a POST cuccokat, majd ezt a változót is törlöd, hogy később ne kavarjon be.
Ehh fáradt vagyok.
Illetve még annyit tudok ajánlani, hogy nézz utána az MVC-nek, ez biztos segítene a problémádon, csak idő kell hozzá...
-
válasz
Sk8erPeter #3291 üzenetére
Kéne pedig használni unset-et, mert amúgy látszólag mindig azt írja ki, hogy sikeres, pedig nem is volt az. Meg még annyi, hogy fentebb írtad, hogy még megkérdezi hogy elküdje-e mégegyszer a postot. Pedig azt nagyon nem kéne neki...
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3290 üzenetére
bocs, lejárt a mod.
Ja, de végül is akkor nem is használtam az unset() függvényt, de ebben az esetben, ha átirányítás történik, akkor kell egyáltalán?
Az oldal tetején ott van a start_session(). A próba alapján nem muszáj, vagy csak épp szerencsém volt, vagy hogy is van ez? -
válasz
Sk8erPeter #3288 üzenetére
szerk: közbe átírtam, mert mégse jó úgy...
Nem kell a session-be tenni, hanem csak annyit csinálsz, hogyha sikeresen felvetted az adatbázisba a postolt adatokat, akkor csinálsz egy $_SESSION['siker'] = true; trükköt, majd header('Location: ', $_SERVER[''PHP_SELF'');, amivel eltűnik a $_POST, s akkor a $_SESSION['siker'] miatt kiíratod, hogy sikerült, majd unset($_SESSION['siker']). -
válasz
Sk8erPeter #3285 üzenetére
Hát ez elég gány, akkor inkább a SESSION['post'] vagy valami másba adod meg, s aztán azt unsetteled, nem az egész sessiont. De minek kell ez? fentebb olvastam valami átirányítós dolgot, akkor amiatt kell? És konkrétan mit postolsz?
-
válasz
Sk8erPeter #3282 üzenetére
Ezt nem értem. Miért ne lenne ugyanaz az eredménye a két példának? o.O
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3266 üzenetére
Egyébként igazából ez a böngészőfrissítős dolog azért volt érdekes, mert akkor igazán szép megoldást nehéz találni arra, hogy űrlapokat egy fájlban írassunk dolgozzunk fel, hogy a felhasználó ne küldhesse el minden egyes frissítésnél a korábban megadott adatokat. (nem is lenne biztonságos, így könnyen ki lehetne akasztani az oldalt
)
Mivel ebben az esetben a $_POST változók értékeit át kell adni egy másik változónak, és akkor azt vizsgálni:$akarmi = $_POST['valami'];
if ( !empty($akarmi) )
{ //pl. adatbázisba való feltöltés (persze kritériumok teljesülése esetén)
}
else
{ //űrlap kiíratása
}Azt viszont ebben az esetben NEM lehet csinálni, hogy:
if ( isset($_POST['valami']) ) //vagy akár !empty($_POST['valami']) is lehetne
{ //pl. adatbázisba való feltöltés (persze kritériumok teljesülése esetén)
}
else
{ //űrlap kiíratása
}Mivel akkor a $_POST-nak nyilván minden egyes böngészőfrissítésnél mindig van értéke, se nem üres (empty), se nem beállítatlan (unset).
Vagy tudtok valami elegáns megoldást az _első_ példa helyett?
-
1ed
csendes tag
válasz
Sk8erPeter #3262 üzenetére
Helló!
POST után át kell irányítani egy másik oldalra.
form -> adatok feldolgozása (itt nincs semmilyen kimenet) -> eredmény kiírása -
válasz
Sk8erPeter #3223 üzenetére
Nem kötelező paraméter(ek) megadása:
function foo(bar=null)
{
// blah-blah
}A null helyére bármit írhatsz, az lesz az alapértelmezett értéke a paraméternek, ha nem adod meg.
Ha korlátlan számú paramétert akarsz megadni, akkor a func_get_args() függvény jöhet jól. Ez a a függvény visszaad egy tömböt, amiben a megadott paraméterek vannak. Az első paraméter 0-s indexű, a második 1-es, stb. A func_num_args() függvénnyel a megadott paraméterek számát tudod lekérni. Illetve van még a func_get_arg($index) függvény, amivel az ($index + 1)-dik paramétert tudod elérni.
-
maLakai
csendes tag
válasz
Sk8erPeter #3198 üzenetére
Másik fileban feldolgozás szerintem gyakoribb (amit ugye a felhasználó nem igazán lát).
Inkább akkor látni, hogy az action ugyanoda mutat, ha a kiinduló oldal kimondottan az üzenet írására/küldésére szolgál csak. De szerintem manapság már ezesetben sem a legkedveltebb.Szerk: Persze átfogó felmérést nem tettem... Végeredményében, ami kényelmes, ha máshogy megoldod az is ugyanolyan jó. ^_^
-
cucka
addikt
válasz
Sk8erPeter #3206 üzenetére
A $_SERVER['PHP_SELF'] használatával óvatos lennék. Tegyük fel, hogy mod_rewrite-ot használsz.
Például a valami.hu/cikkek/elso_cikk url-ből csinálsz olyat, hogy valami.hu/show.php?cikk_id=123 . Ekkor a PHP_SELF-ben nem a böngésző fejlécében látható url lesz, hanem az, amire a mod_rewrite lecserélte. Ez akkor gond, ha az adott url a mod_rewrite miatt nem hívható meg direktben.A html formok amúgy úgy működnek, hogy ha nem állítod be az action paramétert, akkor alapértelmezés szerint saját magára fog átirányítani, tehát jelen esetben az egészet meg lehet spórolni.
-
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3205 üzenetére
Hoppá, lejárt a limit, kissé gyorsan írtam, véletlenül szóközt raktam az alsóvonás helyett, sorry, nem tudom, hogy sikerült, tehát a formnál a helyes action:
action=\"'.$_SERVER['PHP_SELF'].'\"
-
meone
tag
válasz
Sk8erPeter #3200 üzenetére
Nagyon szépen köszönöm.
-
maLakai
csendes tag
válasz
Sk8erPeter #3196 üzenetére
Legegyszerűbb és legjobb, hogyha nem ugyanazon az oldalon dolgozod fel az adatokat.
Persze csinálhatsz pl olyat, hogy a küldesz tovább egy random azonosítót is, amiben pl dátum-idő és vmi random bennevan, ezt persze tárolod is adatbázisban, így ellenőrizve az adatbázisból, hogy az el lett-e már küldve, de ez esetben a böngésző még úgy fogja látni, hogy újra post-olsz adatokat és figyelmeztetni fog (a jobb fajta), szóval felhasználói szempontból nem a legszerencsésebb.
-
cucka
addikt
válasz
Sk8erPeter #3193 üzenetére
de ezek szerint a tömb értékadásakor mindig a legutolsó tömbelem UTÁN (és a lezáró /0 elé) rakja az adott elemet? (tehát számomra az volt az újdonság, hogy nem írja felül a 0. elemet)
A $tomb[]=ertek formában megadott tömb feltöltés úgy működik, hogy a legkissebb nemnegatív egész számot használja indexnek úgy, hogy ne írjon fölül semmit. (Tehát üres tömbnél 0,1,2,3.. indexeket fogja használni). A programomban amúgy üres tömböt töltök így fel, tehát nem merül fel a kérdés, hogy fölülír-e valamit.És mi a teendő abban az esetben, ha adott esetben túllépi a memóriaküszöböt? Valamint milyen esetben fordulhat ez elő?
A php a változóidnak foglal le memóriát. Ha túlléped a memóriaküszöböt, akkor ki fogja írni a php, hogy elfogyott a memória.
Ez esetben át kell alakítsd a programodat, hogy kevesebb memóriát használjon. Például nem tolod be egy tömbbe a teljes adatbázis tábla tartalmát, hanem mindig csak 1 sort kezelsz, ilyesmi. Igazából minden eset más, nem lehet általánosan megmondani, mi a helyes lépés ilyen esetben. Amúgy az én programomat is át lehet írni ilyenre, csak nem akartam fölöslegesen bonyolítani.Ha ilyen problémád van, akkor a script által lefoglalt memóriamennyiséget a memory_get_usage() függvénnyel tudod lekérdezni.
Mod: talán még annyit érdemes megjegyezni, hogy a php memóriakezelése messze nem olyan egyszerű, mint mondjuk c-ben, vannak furcsaságai.
-
cucka
addikt
válasz
Sk8erPeter #3189 üzenetére
Nem igazán értem, hol akadtál el. Valahogy így oldanám meg:
$tomb=array();
$elozonev=null;
$res=mysql_query("select * from tablanev order by nev asc");
while ($row=mysql_fetch_assoc($res)){
$tomb[]=$row;
}
for ($i=0;$i<count($tomb);$i++){
if ($i==0 || $tomb[$i]['nev']!=$tomb[$i-1]['nev']{
//nagy kep kiirasa
print '<img src="'.$tomb[$i]['nagy_kep_url'].'"" />';
} else {
//kis kep kiirasa
print '<img src="'.$tomb[$i]['kis_kep_url'].'"" />';
}
if (!isset($tomb[$i+1]) || $tomb[$i+1]['nev']!=$tomb[$i]['nev']){
print 'Kutya neve: '.$tomb[$i]['nev'];
}
}A program név szerint abc sorrendben kiír minden kutyához egy nagy képet, n darab kis képet és a végén a kutya nevét.
A lényeg: végigiterálunk a sorokon és azt figyeljük, hogy mikor érünk el egy új kutya adataihoz. Ha új kutyához érünk, akkor nagy képet írunk ki, különben kis képet. Ha a következő kép már egy új kutyához tartozik, akkor kiírjuk a kutya nevét.
Az adatok kutyanév szerint vannak rendezve, tehát olyan nem fog előfordulni, hogy egy korábban kiírt kutyához tartozó sorral találkozunk.
Azért rakom ki a mysql-ből érkező adatokat egy tömbbe, mert az iteráció során szükségem van az előző és a következő sorra is. Feltételezem, nincs több százezer sor a táblában, így nem fog gondot okozni a script futtatása. (A lehetséges probléma az lehet, hogy nem elég a php programnak engedélyezett memóriamennyiség, ami általában 16 mega.) -
Sk8erPeter
nagyúr
válasz
Sk8erPeter #3189 üzenetére
Az a rész már megvan, hogy egy tömbbe le tudtam kérni a kutyák neveit, és megtisztítani a duplikátumoktól, ez nem volt túl nehéz.
Ha egy külön while-ciklusba betenném, hogy pl. amíg ez a tömb első eleme megegyezik a "név" adatmezőben található névvel, amelyik adatsornál a táblából épp jár a "while ($result = mysql_fetch_assoc($query))", addig mutogassa az 50px-es képeket, az nem lenne jó?
Egyelőre érdekelne, hogy valami ilyesmi gondolatmenet nem lenne-e célravezető. -
ArchElf
addikt
válasz
Sk8erPeter #3187 üzenetére
Ez egy kicsit tagging kérdés...
Hogy először ne a technikai részével foglalkozzak: szerintem egyrészt célszerű előre feltölteni egy tag táblát, ami tartalmaz neveket (ebben az esetben kutyaneveket), a felhasználó a képfeltöltéskor megadhatja a nevet és rakhat hozzá tag-eket is.
A tag-ek hozzáadásánál használhat privát és pubikus tag-eket, a meglevő listát bővítheti is.Technikailag első blikkre így képzelném el:
A Tag tábla:
tag azon. | tag név | típus (publikus / vagy felhasználóvév)Kép tábla:
azonosító | megjelenítendő név | kép adatok...KT (kép/Tag) kereszttábla:
Kép azon | Tag azon.Megjelenítéskor:
Kép azonosító kinyerése, tag-azonosítók kikeresése és monjuk egySelect * From Kep Where kep_az IN
(Select kep_az From KT Where tag_az IN
(Select tag_az From KT Where kep_az = @kep_az))Esetleg még bele kell hegeszteni egy aggregációt, hogy az eredeti és a Tag-ek alapján megtalált kép között mennyi közös Tag van és csökkenő sorrendbe lehessen tenni.
AE
-
biker
nagyúr
válasz
Sk8erPeter #3184 üzenetére
submit nélkül az 1.0 user nem tud mit csinálni. az neki kész blokk. nem lehet elküldeni, és ennyi
Én valakinek tegnap telefonba magyaráztam, hogy oldalra is lehet ám görgetni, nem csak fel le, és tegye meg, akkor majd látja a kép maradékát.
és közben ne legyek túl ideges, igaz? -
Tele von Zsinór
őstag
válasz
Sk8erPeter #3143 üzenetére
MySQL esetében nem ajánlott a perzisztens kapcsolat, maradj a sima _connect()-nél.
Kapcsolatot bezárni szép, de ha úgyis a scripted végére tennéd, felesleges: a futás végén a php felszabadít minden erőforrást, így a kapcsolatot is. Használata ott ajánlott, ahol sok konkurrens felhasználó van: gyorsan összeszeded adatbázisból, ami kell, zárod a kapcsolatot, és csak utána foglalkozol a kiiratással. -
PazsitZ
addikt
válasz
Sk8erPeter #3141 üzenetére
Nem ismerem kifejezetten, de amire pl felhívja a figyelmet: "Ensure that you do not exceed the number of connections allowed by MySQL."
itt alul megtalálod az esetleges hátulütőit
pl.:
Esetleges bug (végtelen ciklus) esetén beakad a szál, hamar elfogy az összes kapcsolati szál.
Ha a script valamiért hosszabb időre lock-olja a táblát/sort akkor elérhetetlenné válik. -
PazsitZ
addikt
válasz
Sk8erPeter #3110 üzenetére
Esetleg próbáld ki ezt:
function chere($txt){
$mit = array("á","é","í","ó","ö","ü","ű","ú","Á","É","Í","Ó","Ö","Ü","Ű","Ú","ä","Ä" );
$mire = array("a","e","i","o","o","u","u","u","A","E","I","O","O","U","U","U","a","A" );
return(str_replace($mit,$mire,$txt)) ;
} -
PazsitZ
addikt
válasz
Sk8erPeter #3108 üzenetére
Most nézem csak, hogy mire is akarod használni.
Én direkt nem szenvedtem hasonló esetben az ékezetekkel, url-be amúgy sem illik ékezetet rakni.
Én így oldottam meg a dolgot:mb_ereg_replace("/[^a-z0-9]/i",'_',$filename)
Azaz a filenévben csak betűt és számot engedek, minden más alulvonás lesz a névben.
-
Tele von Zsinór
őstag
válasz
Sk8erPeter #3068 üzenetére
Nem böngészőfüggő, a php kód a szerveren fut
Nálam ilyen egy próbafuttatás:tibia@sziget:~$ php --run 'echo iconv("utf-8", "us-ascii//TRANSLIT", "Gyémánt") . "\n";'
Gye'ma'nta fontos különbség: iso-8859-1 vs. us-ascii. Előbbi esetén nálam is furaság lesz a végeredmény
A preg_replace()-s sor, amit bemásoltál eltávolítja a nekem nem kellő karaktereket (url komponenst állítok elő), azaz mindent, ami nem szám vagy betű. Utána jön az iconv, majd megint egy preg_replace, hogy az iconv által berakott felesleget eltávolítsa. Emiatt elnézésed kérem, korábban azt mondtam, elég az iconv az ékezetek eltávolításához, de kell mögé az a preg_replace is.
-
Tele von Zsinór
őstag
válasz
Sk8erPeter #3061 üzenetére
Miért olvas ki a fájlból esetlegesen rossz információt?
Nem arról van szó, hogy a böngésző szúrja el, bár erre is láttam már példát; sokkal valószínűbb az, hogy egy rosszindulató látogató hamisít bele. Ha csak a mime alapján ellenőriznél, akkor mondjuk fel tudna tölteni egy .php filet, ha azt mondja, image/jpeg. Innen általában egyszerű kisakkozni, hova lett mentve és voilá: saját php kódját futtatja a te szervereden.
Az ékezetes, egyéb karakterekre valami ilyesmit ajánlok:
static public function slugify($text)
{
// replace non letter or digits by -
$text = preg_replace('~[^\\pL\d]+~u', '-', $text);
// trim
$text = trim($text, '-');
// transliterate
$text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
// lowercase
$text = strtolower($text);
// remove unwanted characters
$text = preg_replace('~[^-\w]+~', '', $text);
if (empty($text))
{
return 'n-a';
}
return $text;
}Ha van iconv modulod, ez a legjobb megoldás: utf8-ból alakít sima ascii-vá úgy, hogy transliterál (van erre magyar kifejezés?
), azaz az á-ból a-t csinál, de a ä-ból is, ë -> e, ç -> c, satöbbi.
-
Tele von Zsinór
őstag
válasz
Sk8erPeter #3052 üzenetére
Úgy emlékszem, képfeltöltésről van szó, legalábbis korábban esett itt szó az átméretezéséről.
Ahogy írták már, a böngésző által küldött mime megbízhatatlan. Ha azt akarod ellenőrizni, kép-e, használd a getimagesize() függvényt, képnél értelmes eredményt ad vissza, minden másnál hibát. -
kymco
veterán
válasz
Sk8erPeter #3053 üzenetére
Köszi!
Át fogom nézni... -
válasz
Sk8erPeter #3052 üzenetére
Ahogy cucka is mondta, több szempontból se jó a módszer.
De amúgy a többféle MIME ellenőrzéséhez az ilyesmi jó, és átlátható:
$valid = array(
'image/jpeg',
'image/pjpeg',
'image/gif',
'image/png',
);
if(in_array($tipus, $valid)) {
// yada-yada-yada
} else {
// error
} -
cucka
addikt
válasz
Sk8erPeter #3052 üzenetére
Rossz a feltételed.
Egyrészt amit írtál, az a megadott string-eken logikai vagy műveletet végez, majd megnézi, hogy az eredmény egyenlő-e a típus változóval. Próbáld inkább így.
if ($tipus == 'application/octet-stream' || $tipus=='application/zip' || $tipus=='application')
Másrészt létezik párszáz mime típus, amiből neked csak 3-4 típus a megfelelő, tehát inkább azt ellenőrizd, hogy beletartozik-e abba a 3-4 típusba, mint hogy azt, hogy beletartozik-e a maradék párszázba.
Harmadrészt a mime típust a kliens küldi, tehát megbízhatatlan. Javaslom, inkább a file kiterjesztése alapján ellenőrizz. Ha valaki rossz kiterjesztésű file-t tölt fel, akkor így járt.
-
válasz
Sk8erPeter #3048 üzenetére
Ja hogy van erre szakosodott függvény? Há' akkor használd azt.
Hibakezelésnek meg használd azt, ami legjobban bevált.Vagy ha elegánsan akarod megoldani, akkor ezt: Kivételkezelés
-
cucka
addikt
válasz
Sk8erPeter #3043 üzenetére
Hibakezelésre az előttem leírt megoldás is jó, de kivételkezeléssel is megoldhatod, ami szerintem valamivel elegánsabb is
-
válasz
Sk8erPeter #3043 üzenetére
Hibakezelésre szerintem nem én ajánlottam a módszert, de egyszerűbb szkriptben megteszi ez is. Én amúgy ilyen sok kis
if (hiba) {
return hibakód;
}sorokat szoktam használni ellenőrzésre, amik függvényen vagy includolt szkripten belül használhatóak. A hibakezelés a függvényt hívó (vagy fájlt includoló) szkriptben történik.
Kiterjesztés visszarakásnál az a legcélszerűbb, hogy levágás előtt a substr() függvénnyel megjegyzed a kiterjesztést, oszt visszarakod amikor kell, így nem kell vele foglalkoznia a szkriptednek, fogalma se lesz róla, hogy milyen kiterjesztésű fájlokkal dolgozik.
-
válasz
Sk8erPeter #3041 üzenetére
bináris = nyers, vagyis alapjában véve ugyebár egy tempfájlba tölt fel, aminek a nevét $_FILES[{inputname}]['tmp_name'] változóból éred el, s abban van a bináris. Most nézve a file_put_contents()-em gyakorlatilag hülyeség, szóval mást használj helyette, a fájlnév a régebb megadott átnevező-algoritmus $file változójában van. Pölö lehet move_uploaded_file() azonnal átmenteni, vagy az imagesave()-vel menteni, ha már be van olvasva GD-be.
-
válasz
Sk8erPeter #3038 üzenetére
UTF8-at szerintem valahogy csak meg lehet oldani, de a mikéntjéről fogalmam sincs.
A fájltípust (MIME) a $_FILES tömbből is elő tudod varázsolni, én úgy szoktam. [L:http://www.php.net/manual/en/features.file-upload.post-method.php][/L]
-
válasz
Sk8erPeter #3037 üzenetére
1.)
Az 010101110101011010111010101011011110 alatt a képet értettem bináris formában. Tehát magát a képet, mint adat, feltöltés esetében ugyebár ez a $_FILES tömbben van.2.)
Igen, pontosan ezt csinálja. -
válasz
Sk8erPeter #2951 üzenetére
Valami ilyesmire lesz neked szükséged:
$image = '010101110101011010111010101011011110';
$file = 'kép.jpg';
$name = substr($file, 0, strrpos($file, '.')); // kiterjesztés levágása
$file = $name;
$i = 1;
while(file_exists($file)) {
$i++;
$file = $name . '_' . $i . '.jpg';
}
file_put_contents($file, $image);Most hirtelen hasból ennyire futotta, lehetne még rajta okosítani.
-
Balint133
aktív tag
válasz
Sk8erPeter #2951 üzenetére
Szia, nem tudom, h az a script pontosan h néz ki, de a
file_exists()
függvénnyel meg tudod nézni, hogy már létezik e.
klikk -
válasz
Sk8erPeter #2862 üzenetére
Nem, csak az volt, hogy ciklusba voltak ágyazva az include-ok, kábé így:
while(iteráció) {
include('ugyanaz a fájl.');
}Én hülyeségem.
HTML űrlap generálás miatt kellett, s nem ilyen volt hanem sok egymásba ágyazott ciklus, így állandóan a winyón kellett kaparnia 17 fájl után, amiből néhányat akár 70x is be kellett ágyazni. Írtam egy osztályt, ami gyorsítótárazva ágyaz be, azaz ha valamit beágyaz, akkor beírja egy változóba is a benne lévő php scriptet, majd ha mégegyszer be kéne ágyazni, akkor már a memóriából olvassa be a scriptet, s eval-lal újra lefuttatja. Persze a szkript lefutása után törlődnek a cuccok a memóriából, így ezzel "csak" 5x tempót értem el, ami még mindig 2x lassabb az egy fájlos módszernél, úgyhogy fogtam magam és becache-eltem egy fájlba az egész generált űrlapot (ami 200x gyorsabb), oszt kész, az úgyis ritkán változik
class Cached_Include {
private static $_cache;
public static function inc($inc, &$importVars)
{
$inc = dirname(__FILE__) . '/' . $inc;
if(!self::$_cache[$file]) {
self::$_cache[$inc] = '?>' . file_get_contents($inc) . '<?';
}
extract($importVars, EXTR_REFS | EXTR_SKIP);
eval(self::$_cache[$inc]);
}
public static function save()
{
file_put_contents('cache.txt', serialize(self::$_cache));
}
public static function load()
{
self::$_cache = unserialize(file_get_contents('cache.txt'));
}
}Sebességek amúgy:
sok fájl, no optimalizálás: 1200-1500ms
sok fájl, cachelt include: 180-200ms
egy fájl (minden ebben van): 80-100ms
cachelve az egész hóbelevanc: 1-10ms -
Tele von Zsinór
őstag
válasz
Sk8erPeter #2862 üzenetére
Helyesbítek: a fileműveletek lassúak. Ha 1-2-10 includeod van csak, ez nem fog feltűnni, ha sokkal több, akkor viszont már jelentős visszafogó tényező.
Például a symfony framework ez ellen úgy védekezik, hogy cacheli a teljes core rendszerét egyetlen masszív php fileba, így éles rendszerben csak az van includeolva. -
válasz
Sk8erPeter #2850 üzenetére
pü
-
válasz
Sk8erPeter #2848 üzenetére
Hát én valami PHP könyvet ajánlanék, lehetőleg PHP5öst, pl a Tanuljuk meg 24 óra alatt a PHP-t az kezdésnek jó, beavat mindenbe ami kell a problémád megoldásához. Ha esetleg tudsz angolul, akkor meg neten találsz rengeteg e-book-ot pdf-ben. Dummies sorozatot ajánlom még nagyon - a stílusa miatt.
Új hozzászólás Aktív témák
Hirdetés
- Kertészet, mezőgazdaság topik
- Renault, Dacia topik
- Gyúrósok ide!
- sziku69: Szólánc.
- Kormányok / autós szimulátorok topikja
- Bambu Lab 3D nyomtatók
- sziku69: Fűzzük össze a szavakat :)
- Luck Dragon: Asszociációs játék. :)
- Le Mans Ultimate
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- További aktív témák...
- Nitro AN515-56 15.6" FHD IPS i7-11370H RTX 3050 16GB 512GB NVMe magyar vbill gar
- HP Pavilion 15-ec2057ur 15.6" FHD IPS Ryzen 7 5800H RTX 3050 16GB 512GB magyarított vbill gar
- AKCIÓ!!! GAMER PC: Új i5-14400F +RTX 5070 +Új 16-32GB DDR4! GAR/SZÁMLA! 50 FÉLE HÁZ!
- Corsair RM750
- Apple watch Ultra 2 black edt 2027.11.07 Apple jótállás+ Apple Care +
- Csere-Beszámítás! Asus Tuf RX 9070 XT 16GB Videokrátya! Bemutató darab!
- Bomba ár! Lenovo X1 Yoga 3rd - i5-8GEN I 8GB I 256GB SSD I 14" FHD Touch I W11 I CAM I Garancia!
- AKCIÓ! AMD Ryzen 9 7950X 16 mag 32 szál processzor garanciával hibátlan működéssel
- HPE Apollo 4200 Gen9 2U rack szerver, 1x E5-2620v4, 64GB RAM, 24x3.5" 2U-ban! ÁFA-s számla, garancia
- Azonnali készpénzes GAMER / üzleti notebook felvásárlás személyesen / csomagküldéssel korrekt áron
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft
Város: Budapest
Cég: Liszt Ferenc Zeneművészeti Egyetem
Város: Budapest