ugrás a tartalomhoz

Frissítés megtagadása/tiltása php-ben.

mpdt · 2007. Aug. 5. (V), 02.13
Sziasztok !

Készítettem az admin felületemre egy modul kezelőt . Az a következő képp néz ki :

Van bal és jobb oldal . A bal oldal az 1-es terület, a jobb pedig a 2-es terület . Itt egy select-el megoldottam ,hogy modulokat vegyen fel SQL-be. Utánna ha felvette akkor törölni is tudja meg átlehet helyezni az 1-ő területről a második-ra is . Vagy pedig fordítva .

Ez eddig szép és jó csak itt egy gond van . Hogy ha van mondjuk az első területen 4 modul :

== 1 MODUL ==
== 2 MODUL ==
== 3 MODUL ==
== 4 MODUL ==

Ezeket szeretném úgy megoldani ,hogy a sorrendje cserélhető legyen . Ezt úgy értem :

== 1 MODUL == >>> Mozgatás : Le
== 2 MODUL == >>> Mozgatás : Fel/Le
== 3 MODUL == >>> Mozgatás : Fel/Le
== 4 MODUL == >>> Mozgatás : Fel

Nos ennél a mozgatásnál akadtam el .. :S

Ezzel hívom le a "telepített/beillesztett" menüket :
( EZ A 1-Ő TERÜLET )
<?php
// MySQL BEÁLLÍTÁSOK BESZÚRÁSA //
 include("mysql_config.php");
// ADATBÁZIS LEKÉRÉSE //
$lekeres = mysql_query( "SELECT * FROM admin_plugin");
while ($adat = mysql_fetch_array( $lekeres ) )
{
$i=1;
if( ( $i % 3 )== 0) print " <td> ";
 // A rendszer védelme miatt csak a függvényeket teszem ide ...
 echo "modul név  = ".$adat["name"].", helyezkedési terület = ".$adat["terulet"]." Ki részére látható a modul = ".$adat["publika"]." Azonosító kód : ".$adat["code"]."";
}
( EZ A 2-IK TERÜLET )
<?php
// MySQL BEÁLLÍTÁSOK BESZÚRÁSA //
 include("mysql_config.php");
// ADATBÁZIS LEKÉRÉSE //
$lekeres = mysql_query( "SELECT * FROM admin_plugin2");
while ($adat = mysql_fetch_array( $lekeres ) )
{
$i=1;
if( ( $i % 3 )== 0) print " <td> ";
 // A rendszer védelme miatt csak a függvényeket teszem ide ...
 echo "modul név  = ".$adat["name"].", helyezkedési terület = ".$adat["terulet"]." Ki részére látható a modul = ".$adat["publika"]." Azonosító kód : ".$adat["code"]."";
}
Törölni így tud :
/* MODUL TÖRLÉSE */
	$torles_2 = $_REQUEST['torles_2'];
	if($torles_2)
	{
		// ADATOK LEKÉRDEZÉSE ...
		  $code = $_REQUEST['code'];
	        // CODE ALAPJÁN TELJES PLUGIN TÖRLÉSE ...
		  mysql_query("DELETE FROM admin_plugin2 WHERE code='$code'");
		// OLDAL FRISSÍTÉSE ...
		  print "<SCRIPT>location.href = \"menu.php\";</SCRIPT>";
	}
Áthelyezés más területre :
<?php /* MODUL ÁTHELYEZÉSE 2-ES TERÜLETRE */
	$terulet_2 = $_REQUEST['terulet_2'];
	if($terulet_2)
	{
	 $name = $_REQUEST['name'];
	 $terulet = $_REQUEST['terulet'];
         $publika = $_REQUEST['publika']; 
	 $code = $_REQUEST['code'];
	   // RÉGI TÁBLÁK TÖRLÉSE ...
	     $code = $_REQUEST['code'];
		  mysql_query("DELETE FROM admin_plugin WHERE code='$code'");
	   // ADATOK LEKÉRDEZÉSE ...
         $name = $_REQUEST['name'];
	 $terulet = $_REQUEST['terulet'];
         $publika = $_REQUEST['publika']; 
	   // ÚJ KÓD GENERÁLÁSA ...
        
           // BIZTONSÁGI OKOKBÓL KISZEDTEM EZT A RÉSZT //    

         $code = "a legenerált új kód ide kerül ...";
	   // ÚJ TÁBLÁK FELVÉTELE ...
	    mysql_query("INSERT INTO admin_plugin2(name,terulet,publika,code) VALUES ('$name', '$terulet', '$publika', '$code')");
		 mysql_close();
	   // OLDAL FRISSÍTÉSE ...
	     print "<SCRIPT>location.href = \"menu.php\";</SCRIPT>";

    }
Ha valaki tudna esetleg megoldást a problémámra akkor kérem segítsen .

Előrre is 10000 THX

- Modul kezelő grafikusan : katt
 
1

Rossz cím ..

mpdt · 2007. Aug. 5. (V), 02.19
Elnézést mindekitől a címet elfelejtettem módosítani :S
2

-

mpdt · 2007. Aug. 5. (V), 15.12
Tud nekem segíteni vki ? pls
3

sok az infó

Marcell · 2007. Aug. 5. (V), 15.42
Nem tudnád rövidebbre szorítani a kódot és konkrétan rámutatni a problémára? Sztem azért nem válaszol rá senki, mert túl bonyolult lenne megérteni a logikádat.
4

talán segít

breakline · 2007. Aug. 5. (V), 16.41
Szia

Én sem fogom végignézni a kódot, de azért talán ez segít:)
Szóval én dinamikus menüknél használtam ezt, ott is lehet sorrendet módosítani, az adatbázistábla, amit használok, tartalmaz egy SORSZAM mezőt, ami egy sima szám 1-től n-ig.

Ez a kód, ami lefelé viszi a menüpontot:

//az $result['SORSZAM'] a változtatni kívánt menü sorszáma, az n_sor az új sor
$n_sor = $result['SORSZAM']-1;
//biztonsági megfontolásokból van benne, ha az admin mégis meg akarná hekkelni
if ($n_sor<1) {
  break;
}

//-> lekérdezem azt a sorszámú menüt, ami egy szinten van a változtatni kívánttal, és a sorszáma az új //sorszám (SID az site Id, nem fontos)
$menu = $db -> sql_command("SELECT * FROM menupontok WHERE SORSZAM = :1 AND PARENT = :2 AND SID = :3");

$menu -> send($n_sor,$result['PARENT'],$site); //elküldöm a paramétereket

$result = @array_pop($menu -> get_result()); //lekérem az eredményt

$update_sor = $result['SORSZAM']+1; //-> itt cserélődnek ki a dolgok

//-> tényleges frissítés
$update = array("SORSZAM"=>$n_sor);

$db -> update_sql('menupontok',$update,"MID = '$id'");

$update = array("SORSZAM"=>$update_sor);

$db -> update_sql("menupontok",$update,"MID = ".$result['MID']);

A felfelé ugyanaz, csak fordítva, ami érdekesebb, az a menüpont törlése, ilyenkor ki akartam kerülni a sorszámok között levő töréseket (pl. 1,2,3,4,5 esetén, ha törlöd a 3.-at, akkor "lyuk" lenne):

$sorszam = $result['SORSZAM']; //-> törlendő menüpont sorszáma

$db -> delete_sql("menupontok","MID = ".$id); //-> kitörlöm a menüt

//-> updateelem a többi elemet azon a szinten, az adott menünél nagyobb sorszámú elemeknek eggyel kisebb //sorszámot adok:
$query = "UPDATE menupontok SET SORSZAM = SORSZAM-1 WHERE SID = :1 AND PARENT = :2 AND SORSZAM >:3";

$menu = $db -> sql_command($query);

$menu -> send($site,$result['PARENT'],$sorszam);

$result = $menu -> get_result();

üdv
BL
5

Nagyon szépen köszönöm !

mpdt · 2007. Aug. 5. (V), 18.07
Nagyonszépen köszönöm! Megpróbálom beépíteni :)

Üdv :

Bence
6

Hát ez nem jött össze ..

mpdt · 2007. Aug. 5. (V), 18.43
Hali mindenkinek .

- Sajnos nekem ez a megoldás nem jó .Vagy lehet ,hogy jó csak nekem nem végzi el a művelete . ( Hibát nem ír ) .

Itt a kód : http://www.mapdesign.extra.hu/teszt.txt

Nem tudom mi lehet a hiba :S lehet ,hogy én rontottem el valamit,sőt szerintem biztos.

----------------------------------------------------------------------------
Akkor leírom bövebben és egyszerűbbem :)

Tehát van egy menü kezelő . Ennek a kezelőnek két aktiválható területe van a bal és a jobb oldalon .

A bal és a jobb terület külön adatbázisba van .

Bal terület :
admin_plugin :
- name >>> A menü neve
- terulet >>> A menü helyezkedése 1 vagy 2.
- publika >>> Ki részére publikus ...
- id >>> Id sorszám
Jobb terület :
- name >>> A menü neve
- terulet >>> A menü helyezkedése 1 vagy 2.
- publika >>> Ki részére publikus ...
- id >>> Id sorszám

A modul kezelő 'regisztrálja' a kiválasztott menüt majd elhelyezi a kívánt területen. Ha regisztrálta akkor törölni és áthelyezni lehet a másik területre .

Ottan akadtam el, hogy nem tudom megcsinálni azt ,hogy a menüt lehessen mozgatni fel és le .

A törlési módszert egyszerű MySQL törléssel oldottam meg .
Az áthelyezéts egyszerű törlési módszerrel ,majd a másik adatábzisb beillesztéssel oldottam meg.

- Szerintem a fel és le mozgatást úgy meglehetne oldani ,hogy egszerű update és akkor + vagy -.

Pontosan itt akadtam el. Mert nem tudom ,hogy mit írjak az UPDATE-ba .

Üdv :
Bence
7

persze h nem megy:)

breakline · 2007. Aug. 5. (V), 20.46
Mivel az összes $db -> sql_command és hasonló függvény a saját adatbázis-leképező osztályomban vannak, ezek nem natív php függvények. Csak a módszert mutattam, hogy ezt át tudod ültetni, nyilván ez nálad így nem működik.
8

..

mpdt · 2007. Aug. 5. (V), 23.16
:)

Telleg :D

Akkor átültetem :)
9

..

mpdt · 2007. Aug. 5. (V), 23.16
Szia ,

Egy példát tudnál nekem mutatni ? nagyon megköszönném :)
10

miért van két tábla?

zila · 2007. Aug. 6. (H), 00.09
Van valami oka annak, hogy a két terület moduljait külön táblában tárolod? Ahogy elnézem a táblák szerkezete azonos... Célszerűbb volna ha egy táblában tárolnád mindkét terület moduljait.

A mozgatáshoz:
Kellene egy mező amiben tárolod a modul pozicióját. Mozgatáskor (és persze megjelenítsékor) ezt a pozició mezőt kell piszkálnod.
11

ID

mpdt · 2007. Aug. 6. (H), 01.25
A pozíció az természetesen megvan .

A piszkálással énis egyet értek . A piszkálással anyi a gondom ,hogy hogyan kezdjem el ? :S Ezért nyitottam ezt a témát ,hogy hogyan lehet mozgani a menüket ,mert sajna nem tudom :)

Az ID szám miatt van 2-ő tábla ..
12

gondolkodj

zila · 2007. Aug. 6. (H), 07.26
Kezdetnek fogj egy papírt és egy ceruzát, rajzold le a dobozokat, és írd beléjük a sorszámát és a nevét. Ezután szimuláld le, hogy feljebb ill. lejjebb mozgatsz egy dobozt... pl. a 3. dobozt feljebb szeretnéd rakni, mi történik? 2. lesz a sorszáma a régi 2. pedig 3. lesz. Mi történt? felcserélted a két doboz sorszámát. Na ezt kell megcsinálnod programból.

ID miatt? Nem értem emiatt miért kéne 2 tábla...
Gondold át mennyi előnyöd származik ebből. (semmi), mennyi hátrányod? (több is, pl. áthelyezés egy sima update helyett select-insert-delete művelet, a modulok lekérdezése 1 select helyett 2, felvitelkor/törléskor a kódodban feltételhez kötötten használod az egyik vagy másik táblát, stb.)
13

-

mpdt · 2007. Aug. 6. (H), 11.09
Szia,

Azt hiszem igazadvan . Nincs sok előnyőm . Akkor írok egy új programot ezt megtudja csinálni :)

Üdv :

Bence
14

subdomain

mpdt · 2007. Aug. 7. (K), 09.03
Sziasztok

Lenne egy új kérdésem. Van egy domain nevem és azon megy a 'szerverem' . XAMPP-ot használok. Nos az lenne a kérdésem, hogy hogyan lehet subdomain-okat felvenni ?

Gondolom úgy kell, hogy beírod könyvtár elésrését és megatsz vmien nevet . Ezt ,hogy kell pontosan megcsinálni?

Üdv :
Bence
15

Virtual host

janoszen · 2007. Aug. 7. (K), 09.22
Ad 1. a DNS rekordba föl kell venni, ad 2. Virtual hostot kell neki csinálni. Man httpd.conf :D
16

így ?

mpdt · 2007. Aug. 7. (K), 09.51
Így ?
<VirtualHost *:80>
ServerAdmin webmaster##kukac##oldal.valami.hu
DocumentRoot D:/World Wide Web/htdocs
ServerName oldal.valami.hu
ServerAlias www.oldal.valami.hu
</VirtualHost>
17

Attól függ hányas apache

janoszen · 2007. Aug. 7. (K), 09.59
Hát így. Ha apache2 akkor NameVirtualHost is kell. De ez nem elég, kell egy DNS bejegyzés is. A szóközös fájl- és könyvtárnevekről pedig szokjunk le.
18

ok

mpdt · 2007. Aug. 7. (K), 11.27
oksza :)
19

Elakadtam

mpdt · 2007. Aug. 9. (Cs), 00.42
Szevasztok !

Megint a menü kezelőnél vagyok elakadva. Ügye van egy adatbázis. Ajnálották nekem ,hogy csak 1-et használjak a kettő helyett . Ez idáig rendben meg minden megvan csak 1 kérdésem van.

Ha van két terület akkor azt ,hogyan lehet megkülömböztetni ,hogy felismerje a lekérdezés hogy ez a 2-es területre megy jó ezmeg az 1-esre stb.

Tanácstalan vagyok kérlek segítsetek :)

Üdv :
Bence

( Idő során lehet ,hogy rájövök a megoldásra de pls írjátok meg tiis ,hogy hogy raknátok össze )
20

sql alapok

zila · 2007. Aug. 9. (Cs), 12.05
sql alapoknak olvass utána, mert így nehezen fogsz boldogulni...

Az alábbi példában a region mező tartalmazza a terület azonosítóját, 1 a jobboldal, 2 a baloldal, a postition mező a modul pozíciója értelem szerűen...

-- jobb oldal
SELECT * FROM modules WHERE region = 1 ORDER BY position
-- bal oldal
SELECT * FROM modules WHERE region = 2 ORDER BY position