Skoči na vsebino

IPB



Slika

Vse o PHPju


Odgovorov v temi: 1931

#1 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 24 julij 2005 - 17:05

Tukaj lahko vprašate karkoli o PHPju, vendar določene stvari niso dovoljene:

1. Spraševanje o forumih (phpBB, Invision, ...)!
2. Spraševanje o portalih (phpNuke, Mambo, ...)!
3. Spraševanje kje lahko dobite razne skripte (za to obstaja http://www.hotscripts.com ! ).
4. Verjetno sem še kaj pozabil :P

#2 anzet

anzet

    Govorec

  • Members
  • 2 276 objav
  • Kraj:Somewhere in cyber world!
  • Interesi:Kako razumeti racunalnik...!

Objavljeno 24 julij 2005 - 22:08

Medtem ko sem se ucil/se se ucim PHP, sem veliko slisal o pogonu Zend.
Ali ves/veste, kaj vec o tem?

#3 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 25 julij 2005 - 07:08

Recimo, da vem zakaj se gre :oops:

Zend je v bistvu jedro PHPja, hkrati pa tudi družba, ki se ukvarja z razvijanjem aplikacij za programiranje v PHPju (Zend Optimizer, Encoder, Studio, ...).

Samo ti je verjetnože znano, saj predstavlja back-end za vse funkcije v PHPju - ki niso implementirane z extensioni. Tu pa se pojavi prava moč Zend Enginea - recimo, ko naletiš na primer, ko s PHPjem ne moreš napisati takšne funkcije/razreda, ki bi ti omogočal to kar hočeš. V tem primeru lahko v C/C++ programskem jeziku napišeš svoj extension, nato pa ga zgradiš poleg PHPja.

Lahko ti povem, da sam v enem letu odkar sem začel s PHPjem še nisem prišel niti blizu stvarem, ki bi zahtevale pisanje takšnih extensionov.

#4 tensinhan

tensinhan

    Raziskovalec

  • Members
  • 87 objav

Objavljeno 26 julij 2005 - 10:51

publikum, preusmeru si me sem, ampak mi ni cist jasno zakaj???
se enkrat opisan problem:

imam tole kodo:

<body>
<form action="foo1.php" method="post" name="slike">
<input name="slika1" type="image" value="slika1" src="kara_as.gif" align="middle">
<input name="slika2" type="image" value="slika2" src="kara_dama.gif" align="middle">
</form>
<?
if ($_POST['slika1']) $foo = '1';
elseif ($_POST['slika2']) $foo = '2';
echo $foo;
?>

ki bi mogla delat brez tezav (saj je cisto preprosta) - ob kliku na sliko se ti izpise katera slika je...
ampak problem je, ker ne dela v internet explorerju (v firefoxu dela)
in sicer ima ie tole tezavo:

the src attribute og the INPUT tag is not supported (IE)

kako se to tezavo resi, glede na to, da je input image precej osnoven obrazec (se mi zdi) in da brez src-ja (source) ne gre....

#5 sverde1

sverde1

    Iznajdljivec

  • Members
  • 868 objav
  • Kraj:root

Objavljeno 26 julij 2005 - 11:36

mah IE *s*u*x* men tud dela vse v FF pol grem pa v IE pogledat je pa vse narobe :x

#6 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 26 julij 2005 - 11:41

Huh, tole je pa kar težka naloga - input image je namreč dokaj nestandarden element HTMLja...

Vendar se za vse najde rešitev...

Najprej sem z method="get" pogledal, katere parametre v bistvu poda forma, in sem ugotovil, da za vsako sliko dobiš podana parametra za lokacijo klika (koordinati x in y). Ta parametra imata ime element.x in element.y , vendar je problem, ker tudi $_POST['element.x'] ne deluje, ker v bistvu PHP spremeni piko v podčrtaj, se pravi da na koncu dobiš takole:

<?php

if ($_POST['slika1_x']) $foo = 1;

elseif ($_POST['slika2_x']) $foo = 2;

echo $foo;

?>


#7 JerneJ_0X

JerneJ_0X

    Govorec

  • Members
  • 2 531 objav
  • Kraj:N/A

Objavljeno 28 julij 2005 - 11:36

Zanima me kakšna bi bila kdo za izpis KOLIKO JE TRENUTNO OBISKOVALCEV na stran, uporabim lahko samo PHP torej brez BAZE. ;)


Hvala za vaše odgovore :bow:

#8 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 28 julij 2005 - 16:22

<?php

// branje.php



session_start();



// Odpremo datoteko za branje in pisanje

$handle = fopen('stevec.dat', 'r');



// Preberemo iz datoteke vsebino

$content = fread($handle, filesize('stevec.dat'));



// Razdelimo vrstice

$vrstice = explode("n", $content);



// Pripravimo spremenljivko za index arraya

$i = 0;



// Foreach zanka

foreach($vrstice as $vrstica)

{

	// Razdelimo vrstico na čas in SID

	list($cas, $sid) = explode(" ", $vrstica);

	

	// Preverimo če je uporabnik aktiven zadnjih 10 minut

	if($cas < (time() - 60))

	{

		$valids[$i] = $cas . " " . $sid;

	}

}



// Zapremo datoteko

fclose($handle);

$handle = NULL;



// Odpremo datoteko za pisanje

$handle = fopen('stevec.dat', 'w');



// Foreach zanka

foreach($valids as $valid)

{

	fwrite($handle, $valid);

}



// Zapremo datoteko

fclose($handle);



// Končno še izpišemo podatke :)

echo "Aktivnih je " . count($valids) . " uporabnikov!";

?>

<?php

// vpis.php



session_start();



// Odpremo datoteko za branje

$handle = fopen('stevec.dat', 'r');



// Preberemo datoteko

$content = fread($handle, filesize('stevec.dat'));



// Razdelimo datoteko na vrstice

$vrstice = explode("n", $content);



// Razdelimo vrstice na dva arraya

$i = 0;

foreach($vrstice as $vrstica)

{

	list($casi[$i], $sids[$i]) = explode(" ", $vrstica);

	

	// Preverimo če obstaja naš SID

	if($sids[$i] == session_id())

	{

		$casi[$i] = time();

		$updated = true;

	}

	else

	{

		$updated = false;

	}

}

if($updated === true)

{

	// Odpremo datoteko za pisanje

	$handle = fopen('stevec.dat', 'a');

	

	// Shranimo v datoteko čas...

	fwrite($handle, time() . " " . session_id());

	

	// Zapremo datoteko

	fclose($handle);

}

?>

Nisem ziher da deluje, ker nisems testiral - moralo bi pa ;)

#9 exorcist

exorcist

    Poročevalec

  • Members
  • 546 objav
  • Spol:Moški
  • Kraj:Celje

Objavljeno 28 julij 2005 - 21:28

Zanima me kakšna bi bila kdo za izpis KOLIKO JE TRENUTNO OBISKOVALCEV na stran, uporabim lahko samo PHP torej brez BAZE. :)


Hvala za vaše odgovore :bow:


Tale števec ima IP - špero, kar poemni, da ti ob osvežitvi brskalnika ali vnovičnem obisku istega gosta v določenem časovnem intervalu, ne bo štel kot nov obisk.

http://www.novaknet.....php?pid=31#p31

Spremeni variablo

$Zeitsperre = 86400; //
86400 s = 24 h (to pomeni, da bo obisk obiskovalca z istim ip-jem štel komaj čez 24 ur)

zraven še ustvari 2 prazni tekstovni datoteki z imenom count.txt" in
ip.txt in ji chmodaj na 777

#10 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 28 julij 2005 - 21:29

exorcist: Ne išče števca temveč skripto, ki prikaže koliko je trenutno obiskovalcev na strani...

#11 exorcist

exorcist

    Poročevalec

  • Members
  • 546 objav
  • Spol:Moški
  • Kraj:Celje

Objavljeno 28 julij 2005 - 21:32

exorcist: Ne išče števca temveč skripto, ki prikaže koliko je trenutno obiskovalcev na strani...


Ups, sorry, se popravljam:

http://www.novaknet.....php?pid=25#p25

#12 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 28 julij 2005 - 21:36

Ni kaj, lepa skripta, vendar ima eno napako... Primer ko gre 10 uporabnikov iz nekega podjetja, ki ima samo eno javno IP številko na isto stran (recimo s tvojo skripto). V tem primeru bi kazalo samo enega uporabnika...

Če pa uporabljaš sessione pa se šteje vsak uporabnik posebej, ker PHP vsakemu uporabniku (čeprav z istim IP naslovom) določi drugačno sejo...

#13 exorcist

exorcist

    Poročevalec

  • Members
  • 546 objav
  • Spol:Moški
  • Kraj:Celje

Objavljeno 28 julij 2005 - 21:42

Hm, hvala za info. Zanimivo. :ok:

#14 exorcist

exorcist

    Poročevalec

  • Members
  • 546 objav
  • Spol:Moški
  • Kraj:Celje

Objavljeno 31 julij 2005 - 08:31

Čuj, Publikum, kako pa je s števci obiskov? Ali pride tam do podobnega problema, da ljudi z istim IP-jem ne šteje, če se npr. Ip-ji shranjujejo v plaintext? Ali se da to preprečiti s piškotki?

hvala

#15 l33frenk

l33frenk

    nOObie

  • Members
  • 8 objav

Objavljeno 06 avgust 2005 - 07:42

Je to vprašanje dovoljeno? Oz. bolje rečeno smiselno... Kako začeti z PHP?!

#16 sverde1

sverde1

    Iznajdljivec

  • Members
  • 868 objav
  • Kraj:root

Objavljeno 06 avgust 2005 - 09:23

Ja sigurno da je dovoljeno :mrgreen:. Najprej si lahko osnove prebereš tukaj, potem pa lahko (če si bolj tip ki rad kaj tršega prime v roke) zaviješ v knjižnico in kakšno knjigo o PHP prebereš, če pa imaš raje digitalno obliko pa obstaja PHP Dokumentacija,... Seveda moraš poleg PHP znati še html . To je kar se tiče teorije. Potem je pa najbolje, da začneš z preprostimi primeri, kako skupaj izpisati nize, računske operacije, uporaba IF stavka,...

Upam da se boš pridno učil :ok:

#17 cweto

cweto

    Iznajdljivec

  • Members
  • 780 objav
  • Spol:Moški
  • Kraj:Laibach

Objavljeno 08 avgust 2005 - 01:29

@publikum
Mene pa zanima, če mogoče veš kako bi napisal skripto, ki bi iz neke mape prebrala vse kar je notri in mi naredila povezavo do teh stvari.

Tako kot je tu prikazano npr. Objavljena slika

Samo jaz bi rad ta klasični style malo preoblikoval in bolj grafično izpopolnil in še kaj dodal! Zato bi potreboval to kodo, ki bi mi izpisala vse kar bo v tej mapi in avtomatsko naredila povezave!

lp,
cweto

#18 publikum

publikum

    Velemojster

  • Members
  • 5 974 objav
  • Kraj:Deep in code...
  • Interesi:Linux, PHP, C++, C#, .NET, ...

Objavljeno 08 avgust 2005 - 06:46

Za Windows je nekako takole:

<?php

error_reporting(0);

// Najprej dobimo mapo iz katere beremo in preverimo, če je res mapa

if(isset($_GET['mapa']))

{

	if(!is_dir($_GET['mapa']))

	{

		echo "To ni mapa!";

		exit;

	}

	else

	{

		// Poizkušamo odpreti mapo

		$handle = opendir("./" . $_GET['mapa'] . "/");

		if(!$handle)

		{

			echo "Ne morem odpreti mape!";

			exit;

		}

		else

		{

			$_GET['mapa'] = trim($_GET['mapa'], '/');

			// Nastavimo dve spremenljivki, ki jih bomo potrebovali....:

			$datoteke = array();

			$direktoriji = array();

			

			// Preberemo vse vnose iz mape

			while(($entry = readdir($handle)) !== false)

			{

				// Sortiramo na podlagi ali je vnos mapa ali datoteka

				if(($handle1 = fopen("./" . $_GET['mapa'] . "/" . $entry, 'r')) !== false)

				{

					$i = count($datoteke) + 1;

					$datoteke[$i] = $entry;

					fclose($handle1);

				}

				else

				{

					if($entry != ".")

					{

					$i = count($direktoriji) + 1;

					$direktoriji[$i] = $entry;

					}

				}			

			}

		

			// Sortiramo po abecedi

			sort($direktoriji);

			sort($datoteke);

			

			// Izpišemo direktorije

			foreach($direktoriji as $dir)

			{

				if($dir == "..")

				{

					$tmp_array = explode("/", $_GET['mapa']);

					$tmp_array[count($tmp_array) - 1] = "";

					$mapa = implode("/", $tmp_array);

					if(empty($mapa))

					{

						$mapa = ".";

					}

					echo "<a href="?mapa=$mapa">" . $dir . "</a><br>";

				}

				else

				{

					echo "<a href="?mapa={$_GET['mapa']}/$dir">" . $dir . "</a><br>";

				}

			}

			

			// Izpišemo datoteke

			foreach($datoteke as $file)

			{

				echo "<a href="{$_GET['mapa']}/$file">" . $file . "</a><br>";

			}

		

		}

	}

}

?>

Za Linux bo pa treba še poštudirati, ker imata tako Windows kot Linux vsak svoje finte....

#19 cweto

cweto

    Iznajdljivec

  • Members
  • 780 objav
  • Spol:Moški
  • Kraj:Laibach

Objavljeno 08 avgust 2005 - 10:46

publikum, Imam Windows in koda ne deluje :nene: Veš mogoče kaj bi bilo lahko še narobe? Ko to kodo shranim pod index.php in grem v brovser napišem povezavo do mape in mi vrže samo beli ekran, kot da ni nič notri :cool:

Probal sem tudi tako

<html>
<body>
<?

koda

?>
</body>
</html>

Vendar brez uspeha :zvizg:

#20 Pimqek

Pimqek

    Velemojster

  • Members
  • 6 937 objav
  • Kraj:Mala Zimica

Objavljeno 08 avgust 2005 - 11:27

cweto, to kar si videl je file-browsing, ki ga moraš omogočiti na serverju, torej na Apacheju. In tam je tudi template glede tega...



Dodaj odgovor



  


1 član(ov) bere to temo

0 članov, 1 gostov, 0 anonimnih uporabnikov