Vse o PHPju
abruzii™
20 mar 2009
lulika123, poglej malo višje po temi oz. na podstraneh te teme, pa boš hitro ugotovil, koliko oz. kateri so strokovnjaki na področju PHP-ja!
Pošlji jim ZS in se dogovorite.
Pošlji jim ZS in se dogovorite.
xfirestorm
23 mar 2009
A ma kdo mogoče to tabelo kjer so te zamenjave za URL znakce? Kot recimo %20 je za space(presledek) itd.
Ehz...nevermind.
http://www.blooberry...urlencoding.htm
Ehz...nevermind.
http://www.blooberry...urlencoding.htm
gggggg123
30 mar 2009
Tole naj bi bil nek installer rad bi da se izpiše text če je baza dodana, se da brez preverjanja s query?
Tole bo za izpis uporabnika rad bi da pri vsaki funkciji napišem kaj naj vrne te vrednosti vrednost $nick , $id .. da funkcija vrne in jo sam izpišem kjer mi paše. A bi lahko za to uporabil oop?
Bi se dalo v nekem direktoriju kjer je veliko fajlov vedno naštimat da includa header.php brez da v te fajle karkoli vpisujem.
$sql = "CREATE DATABASE IF NOT EXISTS $database"; mysql_query ($sql);
Tole bo za izpis uporabnika rad bi da pri vsaki funkciji napišem kaj naj vrne te vrednosti vrednost $nick , $id .. da funkcija vrne in jo sam izpišem kjer mi paše. A bi lahko za to uporabil oop?
function username ($select, $id) {
global $conn;
$sql = "SELECT $select FROM user WHERE id=$id";
$result = mysql_query ($sql);
$result = mysql_fetch_assoc ($result);
//extract ($result);
return extract ($result);
}
username ("username", 2);
echo $username;Bi se dalo v nekem direktoriju kjer je veliko fajlov vedno naštimat da includa header.php brez da v te fajle karkoli vpisujem.
Nejc
19 jun 2009
Info:
Pršu PHP 5.2.10 cela verzija, kjer je popravleno prej 100 bugov... tko da vsi ki mate serverje, upgrade
več na --> php.net
Pršu PHP 5.2.10 cela verzija, kjer je popravleno prej 100 bugov... tko da vsi ki mate serverje, upgrade
Murder Inc.
21 jun 2009
Pozdrav,
sem še čisto zelen v php-ju in bi rabu majhno pomoč. Izpisal sem si kratko kodo za Contact form. Bi lahko nekdo pogledal, kaj je narobe z kodo:
1. ko testiram na strežniku, mi v body izpiše samo FROM in MESSAGE?!
2. Ter oba izpisa sta v isti vrstici čeprav sem jih v kodi ločil!?
3. spodaj php koda, malo nižje pa še html
<?php
$to = "YourMail@yahoo.com";
$subject = $_POST["title"];
$name = $_POST["name"];
$message = $_POST["message"];
$messagesent = "From: $name Message: $message";
$from = $_POST["email"];
$headers = "From: $from";
$body = <<<EOD
<br><hr><br>
<br>Email: $name </br>
<br>Name: $name </br>
<br>Phone: $phone </br>
<br>Subject: $subject </br>
<br>Comments: $message </br>
EOD;
mail($to,$subject,$messagesent,$headers);
echo "Your message has been sent, thank you.";
?>
<style type="text/css">
<!--
form {
width: 400px;
}
-->
</style>
<form name="form" action="contact.php" method="post">
<p>
Name<br />
<input type="text" name="name"><br />
Email: <br />
<input type="text" name="email"><br />
Phone:<br />
<input type="text" name="phone"><br />
Title: <br />
<input type="text" name="title"><br/>
Comments:<br/>
<textarea cols="40" rows="5" name="message"></textarea><br/>
</p>
<label>
<input name="Reset" type="reset" value="Počisti" />
</label>
<input type="submit" value="Pošlji" /><br/>
</form>
sem še čisto zelen v php-ju in bi rabu majhno pomoč. Izpisal sem si kratko kodo za Contact form. Bi lahko nekdo pogledal, kaj je narobe z kodo:
1. ko testiram na strežniku, mi v body izpiše samo FROM in MESSAGE?!
2. Ter oba izpisa sta v isti vrstici čeprav sem jih v kodi ločil!?
3. spodaj php koda, malo nižje pa še html
<?php
$to = "YourMail@yahoo.com";
$subject = $_POST["title"];
$name = $_POST["name"];
$message = $_POST["message"];
$messagesent = "From: $name Message: $message";
$from = $_POST["email"];
$headers = "From: $from";
$body = <<<EOD
<br><hr><br>
<br>Email: $name </br>
<br>Name: $name </br>
<br>Phone: $phone </br>
<br>Subject: $subject </br>
<br>Comments: $message </br>
EOD;
mail($to,$subject,$messagesent,$headers);
echo "Your message has been sent, thank you.";
?>
<style type="text/css">
<!--
form {
width: 400px;
}
-->
</style>
<form name="form" action="contact.php" method="post">
<p>
Name<br />
<input type="text" name="name"><br />
Email: <br />
<input type="text" name="email"><br />
Phone:<br />
<input type="text" name="phone"><br />
Title: <br />
<input type="text" name="title"><br/>
Comments:<br/>
<textarea cols="40" rows="5" name="message"></textarea><br/>
</p>
<label>
<input name="Reset" type="reset" value="Počisti" />
</label>
<input type="submit" value="Pošlji" /><br/>
</form>
zaxy
21 jun 2009
Če grem na hitro po tvojih vprašanjih:
1. V bodyju ne vem, kje bi ti lahko izpisalo FROM in MESSAGE, ker spremenljivke $body sploh ne uporabljaš, pa tudi v $body nikjer ne piše ne "from" ne "message".
2. Če si imel v mislih $messagesent, naj ti povem, da tam nisi ločil ničesar. Če želiš novo vrstico, moraš dodat znak za novo vrstico - \n oz. <br />, če pošiljaš v HTML.
3. Malo sem spremenil tvojo kodo.
<?php
//preverimo, če so podatki iz forme poslani
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$to = "YourMail@yahoo.com";
$subject = $_POST["title"];
$name = $_POST["name"];
$message = $_POST["message"];
$from = $_POST["email"];
$headers = "From: $from\r\n";
$body = "
<br><hr><br>
<br>Email: $name </br>
<br>Name: $name </br>
<br>Phone: $phone </br>
<br>Subject: $subject </br>
<br>Comments: $message </br>
";
if(mail($to, $subject, $body, $headers))
echo "Your message has been sent, thank you.";
else
echo "Not sent!";
}
?>
Kar sem spremenil, je označeno z rdečo. Predlagam, da si malo prebereš uradno dokumentacijo, kako se funkcija mail() sploh uporablja. Namreč headerji so ločeni na koncu z znakom za novo vrstico (\r\n) itn. Poleg tega predlagam tudi, da si malo pogledaš še HTML, saj element </br> ne obstaja.
Še nasvet - email sporočila se privzeto ne obravnavajo kot html. Če boš želel pošiljati v html, boš moral dodati nekaj headerjev, kar pa si lahko pogledaš v uradni dokumentaciji. Če želiš pa samo dodati nove vrstice pa uporabi znak \n.
1. V bodyju ne vem, kje bi ti lahko izpisalo FROM in MESSAGE, ker spremenljivke $body sploh ne uporabljaš, pa tudi v $body nikjer ne piše ne "from" ne "message".
2. Če si imel v mislih $messagesent, naj ti povem, da tam nisi ločil ničesar. Če želiš novo vrstico, moraš dodat znak za novo vrstico - \n oz. <br />, če pošiljaš v HTML.
3. Malo sem spremenil tvojo kodo.
<?php
//preverimo, če so podatki iz forme poslani
if($_SERVER['REQUEST_METHOD'] == "POST")
{
$to = "YourMail@yahoo.com";
$subject = $_POST["title"];
$name = $_POST["name"];
$message = $_POST["message"];
$from = $_POST["email"];
$headers = "From: $from\r\n";
$body = "
<br><hr><br>
<br>Email: $name </br>
<br>Name: $name </br>
<br>Phone: $phone </br>
<br>Subject: $subject </br>
<br>Comments: $message </br>
";
if(mail($to, $subject, $body, $headers))
echo "Your message has been sent, thank you.";
else
echo "Not sent!";
}
?>
Kar sem spremenil, je označeno z rdečo. Predlagam, da si malo prebereš uradno dokumentacijo, kako se funkcija mail() sploh uporablja. Namreč headerji so ločeni na koncu z znakom za novo vrstico (\r\n) itn. Poleg tega predlagam tudi, da si malo pogledaš še HTML, saj element </br> ne obstaja.
Še nasvet - email sporočila se privzeto ne obravnavajo kot html. Če boš želel pošiljati v html, boš moral dodati nekaj headerjev, kar pa si lahko pogledaš v uradni dokumentaciji. Če želiš pa samo dodati nove vrstice pa uporabi znak \n.
GoGy82
21 jun 2009
THANKS ZAXY
Poleg Zaxy-jevih komentarjev bi dodal še to, da bi bilo dobro malce prečistiti sprejeto vsebino preko metode POST. Kaj hitro se lahko zgodi, da tvojo kontaktno skripto uporabijo za pošiljanje spama s tvojega naslova, kar lahko privede do velike obremenitve strežnika in posledično tega, da te ponudnik gostovanja odklopi.
Nejc
21 jun 2009
GoGy82 se strinjam... al pa vsaj $to zamenja z nekim define pa vedno on dobi, pa čeprav "svinjarijo"...
drugače pa, a je tole popembno da si popravil?:
$headers = "From: $from\r\n";
Mislim saj ni nič narobe, ampak ne bi bilo treba (?)
drugače pa, a je tole popembno da si popravil?:
$headers = "From: $from\r\n";
Mislim saj ni nič narobe, ampak ne bi bilo treba (?)
zaxy
21 jun 2009
No, v varnost se mi zaenkrat ni zdelo smiselno spravljat, ker je potrebno najprej razčistit osnove. Če nekdo ne pozna niti veljavnih HTML elementov, mu težko kaj poveš o email injection ipd.
@Nejc, hehe
stvar principa..
@Nejc, hehe
alen1
06 jan 2010
Pozdravljeni! Imam eno težavico.
Imam stran, ki je v angleščini in slovenščini in vsaka stran je v svoji datoteki (domov.php, kontakt.php, galerija.php...) vseh datotek skupaj z angleščino je okrog 45. Kako bi lahko dal te datoteke v dve mapi eng in slo in vse klical iz stani domov.php oz. na angleški je home.php. index.php pa je intro datoteka. Se da kako rešit to? Hvala.
Imam stran, ki je v angleščini in slovenščini in vsaka stran je v svoji datoteki (domov.php, kontakt.php, galerija.php...) vseh datotek skupaj z angleščino je okrog 45. Kako bi lahko dal te datoteke v dve mapi eng in slo in vse klical iz stani domov.php oz. na angleški je home.php. index.php pa je intro datoteka. Se da kako rešit to? Hvala.
zaxy
06 jan 2010
Pač dodaš eno spremenljivko, ki ti pove kateri jezik uporabljaš.
Seveda ustvariš 2 mapi ->"si" in "en".
$lang = (isset($_GET['lang'])) ? $_GET['lang'] : 'si'; include($lang . '/41-datoteka.php');
Seveda ustvariš 2 mapi ->"si" in "en".
alen1
06 jan 2010
Ja in kako potem komplet strukturiram, da mi vleče vn? Recimo da bi bilo potem v eni datoteki oz. dveh domov.php in home.php (ne vem kako se točno naredi) povezane te datoteke. Da bi bil prikaz v naslivni vrstici npr.: domena/domov.php?nekoime=1 ali kako točno že pride. Ne obvladam ravno php-ja zato je pa tako
xfirestorm
07 jan 2010
Erm...prvo kot prvo, večjezičnost se ne dela na tak način da imaš za vsak jezik svojo kopijo strani.
Narediš stran, recimo v angleščini, namesto vsakega teksta daš pa spremenljivko. Recimo da imaš to na index.php:
Potem daš pa v index.php na vrhu zraven še:
To kar pa v drugem postu sprašuješ pa je ravno tole:
P.S: če maš dosti teksta, predlagam kar array. Lep primer maš recimo na PhpBB, potegni si ga dol in se tam malo razglej kako je rešeno, mislim da ni pretežak za razumet.
Narediš stran, recimo v angleščini, namesto vsakega teksta daš pa spremenljivko. Recimo da imaš to na index.php:
Hi! Welcome to mah 1337 page!Narediš takole:
<?php $hi; $welcome; ?>Potem ustvariš za vsak jezik svojo datoteko, kjer te spremenljivke nastaviš, recimo za ang:
<?php $hi = "Hi!"; $welcome = "Welcome to mah 1337 page!"; ?>In slovenščino:
<?php $hi = "Pozdravljeni!"; $welcome = "Dobrodošli na moji 1337 strani!"; ?>
Potem daš pa v index.php na vrhu zraven še:
$lang = (isset($_GET['lang'])) ? $_GET['lang'] : 'si'; include($lang . '/prevod-index.php');Ali kakorkoli že pač poimenuješ to tvojo datoteko z prevodi.
To kar pa v drugem postu sprašuješ pa je ravno tole:
$nekoime = (isset($_GET['nekoime'])) ? $_GET['nekoime']:''
switch ($nekoime)
{
default:
include('index.php.php');
break;
case "1":
include('nekastran.php');
break;
}P.S: če maš dosti teksta, predlagam kar array. Lep primer maš recimo na PhpBB, potegni si ga dol in se tam malo razglej kako je rešeno, mislim da ni pretežak za razumet.
wexot
07 jan 2010
Lep pozdrav
Zaj vas bo pa en rookie prosil za pomoč.
Zakaj mi ko zazenem, to stran napise
No... saj vem zakaj mi to izpise, zaradi $N=$_GET["vpis"] in $presteto=$_GET["igra"]. Samo nevem kako naj naredim drugace. Aja gumb more biti tam ko je.
Ok in se en problem. Naredil bi rad, da v trenutku ko bi se tabela izrisala, bi zacelo steti cas ( min : sec ). Pripravlen imam tudi ze textbox za vpis obarvanih polj in gumb pa preverjanje.
Vrednost obarvanih polj bi moral skriti v <input type='hidden' /> ( nevem kako ), in prav tako tudi cas "stetja".
Ok razumem, gumb za nastavljanje stranic ( poslje podatek / stevilo ) v form, in ce prav razumem forme, potem metoda action="blabla.php" nalozi blabla.php v trenutku ko je gumb pritisnjen.
Torej se meni tisto refresha 2x
-1. ko vpisem stevilo celic ---> refresh
-2. ko podam resitev obarvanih celic ---> refresh
In potem se mi vsota pobarvanih celic spremeni.
Tako da nimam vec idej kako naj to izvedem.
Za lazje razumevanje prilagam link z sliko, kako naj bi vse to izgledalo.
http://uss.feri.uni-...a12/naloga5.gif
Prosim za pomoc.
Sebastjan
Zaj vas bo pa en rookie prosil za pomoč.
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<style>
td.izbrana { background-color:#00CC00; }
</style>
</head>
<body>
<form action="naloga2.php" name="form" method="get">
<?PHP
$N=$_GET["vpis"];
$presteto=$_GET["igra"];
$stevec=0;
$bo=0;
$igra=0;
echo "<table border='1px' cellspacing='0px'>";
for($i=1;$i<=$N;$i++)
{
echo "<tr>";
for($j=1;$j<=$N;$j++)
{
$bo=rand(1,5);
$stevec++;
if($bo==5)
{
echo "<td class='izbrana'>$stevec</td>";
$igra++;
}
else
{
echo "<td>$stevec</td>";
}
}
echo "</tr>";
}
echo "</table>";
?>
<br/>
<input type="text" value="Vpisi stranico tabele" name="vpis" />
<input type="submit" value="Osvezi" name="gumb" />
<p>Koliko celic je obarvanih</p>
<input type="text" name="igra" />
<input type="submit" value="Preveri" name="btn_igra" />
</form>
</body>Zakaj mi ko zazenem, to stran napise
Notice: Undefined index: vpis in S:\homes\naloga2.php on line 15
Notice: Undefined index: igra in S:\homes\naloga2.php on line 16
No... saj vem zakaj mi to izpise, zaradi $N=$_GET["vpis"] in $presteto=$_GET["igra"]. Samo nevem kako naj naredim drugace. Aja gumb more biti tam ko je.
Ok in se en problem. Naredil bi rad, da v trenutku ko bi se tabela izrisala, bi zacelo steti cas ( min : sec ). Pripravlen imam tudi ze textbox za vpis obarvanih polj in gumb pa preverjanje.
Vrednost obarvanih polj bi moral skriti v <input type='hidden' /> ( nevem kako ), in prav tako tudi cas "stetja".
Ok razumem, gumb za nastavljanje stranic ( poslje podatek / stevilo ) v form, in ce prav razumem forme, potem metoda action="blabla.php" nalozi blabla.php v trenutku ko je gumb pritisnjen.
Torej se meni tisto refresha 2x
-1. ko vpisem stevilo celic ---> refresh
-2. ko podam resitev obarvanih celic ---> refresh
In potem se mi vsota pobarvanih celic spremeni.
Tako da nimam vec idej kako naj to izvedem.
Za lazje razumevanje prilagam link z sliko, kako naj bi vse to izgledalo.
http://uss.feri.uni-...a12/naloga5.gif
Prosim za pomoc.
Sebastjan
TechFreak:)
07 jan 2010
$presteto=(isset($_GET["igra"]) ? $_GET["igra"] : "";
In to potrebuješ pri vsakem $_GET.
Lahko pa nastaviš, da ti ne izpisuje noticev:
error_reporting(E_ALL ^ E_NOTICE);To moraš napisati na vrhu datoteke, takoj za <?php.
wexot
07 jan 2010
hvala webphp
Tisti zgornji izraz ko si mi napisal, mi sicer nekaj nagaja.
Spodni pa dela =P
Se mogoce kaksen namig, za moj drugi problem?
Tisti zgornji izraz ko si mi napisal, mi sicer nekaj nagaja.
Spodni pa dela =P
Se mogoce kaksen namig, za moj drugi problem?
mlavta1
07 jan 2010
Za drugi problem boš gotovo moral uporabiti javascript ali ajax.
wexot
07 jan 2010
Za drugi problem boš gotovo moral uporabiti javascript ali ajax.
Emm... tam ko so navodila od te vaje pise, da js ali ajax nista potrebna. Samo php
Kak lahko znotraj php-ja priredis vrednost <input>
Probal sem z echo "<input type='hidden' value='$nekepac' />", samo mi javi error
TechFreak:)
07 jan 2010
$presteto=(isset($_GET["igra"])) ? $_GET["igra"] : "";En oklepaj manjka.
Preizkusi:
echo "<input type='hidden' value='".$nekepac."' />";


