[ zrnoo @ 03.03.2006. 11:17 ] @
Pazi ovo ... zamislite da postoji php skript koji na pocetku prihvata sintaksu "page" koju saljem putem adrese sa prethodne web strane (www.mojsajt.com.detalj.php?page=3 ), i taj deo koda naravno ide na pocetku skripte ovako .... $page=$_GET['page']; i onda se nastavlja kod i dolazi do funkcije koja sledi

----------------
function guestbook_form(){
print '<form name="sign_guestbook_form" method="post" action="">
<br>
Author:
<input type=text size=40 name=author><br>
<br>
E-mail:
<input type=text size=40 name=mail><br>
<br>
Text:<br>
<textarea cols=60 rows=10 name=text></textarea><br>
<input type="hidden" name="write_guestbook" value="true">
<input name="sign_guestbook_form_submit" type="submit">
<input name="reset_guestbook_form" type="reset">
</form>';
}
----------------------

e sada kako ja da dodam tu jos jednu liniju koja treba da posalje ovu sintaksu sa pocetka koda "$page" ...znam da ide nesto ovako - ali konkretno ovaj primer ne moze jer sam ja vec u php kodu pa nemogu da koristim <?p....<input type = "hidden" value = "<?php echo $_POST['$page']; ?>" name = "page">

znaci sta bi trebalo da pise tamo u value= da bi mi on tu upisao $page sa pocetka koda koji sam prihvatio sa prethodne strane (url) ????
Znaci ceo ovaj kod i funkcija se nalazi u jednom php skriptu!

molim za pomoc...ja sam pocetnik !

poz
[ Jbyn4e @ 03.03.2006. 11:43 ] @
Koristi konkatenaciju stringova (ako se to bese tako kaze)....
mislim konkretno na:
$imeprezime = $ime . $prezime;
ili
$imeprezime = 'Ime ' . $ime . 'Prezime '.$prezime;

Primeni to na tvoj string
'<form name="sign_ .... itd itd
gde ces ga u jednom trenutku prekinuti, ubaciti $page i nastaviti strnig...
Primer:
Code:

print '<form name="'.$imeforme.'" action=....> bla truc</form>';
[ zrnoo @ 03.03.2006. 11:46 ] @
nisam siguran da sam te bas dobro razumeo. Pazi ja prihvatam "page" i to "page" hocu da stavim u value= ... mislim jel mozes nesto prakticnije da mi pokazes na ovom primeru ....ali mislim ceo red koda ... kada mi ovako stavais (ja sam pocetnik) ....> mislim nepomaze mi bas puno....

znaci sta bi ti u "value" upisao, ako znas da sam prihvatio "page" :
<input type = "hidden" value = " ???????" name = "page">

kako bi ti ovo moje preveo u stvarnost....

nadam se da me razumes ..poz

[Ovu poruku je menjao zrnoo dana 03.03.2006. u 12:49 GMT+1]
[ Jbyn4e @ 03.03.2006. 12:09 ] @
Kao sto ti napisaH na PP:

U stringu: (ono sto ide kod print)
<input type = "hidden" value = " ????" name = "page">
promenis u
<input type = "hidden" value = "' . $page . '" name = "page">
Posto je u funkciji, mozda ces morati da :
a) dodas global $page; kod definicije funkcije ili
b) upotrebis globalnu promenljivu $_GET, znaci bice
<input type = "hidden" value = "' . $_GET['page'] . '" name = "page">
[ zrnoo @ 03.03.2006. 12:20 ] @
Vazi, sad cu da probam , pa cu da ti javim kako je proslo :)

hvala puno i poz
[ zrnoo @ 03.03.2006. 13:43 ] @
Evo uradio sam sledece:
stavio sam u vrhu strane ($page=$_GET['page'] da prihvati na ulazu sintaksu "page",
pa

zatim u funkciji "guestbook_form" dodao deo koda ( <input type = "hidden" value = ".$page." name = "strana"> )
da posaljem sintaksu "$page". Probao sam i sa onim globam i get sto je "Jbyn4e" napisao ali nece !!!

pa zatim u funkciju za upis (sign_guestbook) dodao sledece redove da prihvatim "page":
global .............. $strana;
$strana = htmlspecialchars(addslashes(stripslashes($strana)));
$query = "INSERT INTO RTGuestbook (_author, _mail, _date, _text, _page) VALUES ('$author', '$mail', '$date', '$text', '$strana')";

Ali on mi izbacuje ono error iz zadnje funkcije , tj kaze da nece da upise u bazu....
OVO MI SE DESAVA SAMO KADA DODAM OVAJ DEO ZA "$Page" , bez njega noramlno radi!

inace ovo je skripta koju sam skinuo sa hotscripts.com pa pokusavam da je provalim !

AJDE MOLIM VAS NEKA NEKO MALO POMOGNE...i da KONKTRETAN ODGOVOR !!!!

pozdrav

Code:

<?php

include ("config.php");
  
$page=$_GET['page'];

if (!isset($start_guestbook))
    $start_guestbook = 0;

if($write_guestbook)
{
    if    ($author != "" && $mail != "" && $text != ""  && $guestsigned == "")
    {
        setcookie("guestsigned", "NazivSajta", time()+120 , "/", $SERVER_NAME);
        sign_guestbook();
    }
    else if($guestsigned != "")
        echo "Spam Protekcija: Nemoze te upisati vezano vise poruuka, morate napraviti razliku od dva minuta...";
    else
        echo "All fields are required!";
        echo '<br />';
}

function ch_password_guestbook($posted_password){

global $db_host, $db_user, $db_password, $db_name;

$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
    die ("Errore Connecting database.");

mysql_select_db($db_name, $db)
    or die ("Error selecting database");
    
$query = "DELETE FROM RTGuestbook_auth WHERE _password != ''";
mysql_query($query, $db);

$enc = md5($posted_password);
$query = "INSERT INTO RTGuestbook_auth (_password) VALUES ('$enc')";

mysql_query($query, $db);

}

function list_guestbook(){

global $db_host, $db_user, $db_password, $db_name;

$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
    die ("Errore Connecting database.");

mysql_select_db($db_name, $db)
    or die ("Error selecting database");
    
$query = "SELECT id,_author,_date,_mail,_text FROM RTGuestbook ORDER BY id DESC LIMIT 0,20";

$result = mysql_query($query, $db);

print '<div align=left> <form name="guestbook_list" method="post" action="admin.php">
        <select name="guestbook_to_del" size="1">';

// display the guestbook
while ($row = mysql_fetch_array($result)){
    print '<option value="';
    echo $row[id];
    print '">';
    echo stripslashes(substr($row[_text],0,100));
    print '</option>';
    }
    
print'</select> <input type="hidden" name="delete_guestbook" value="true">
      <input type="submit" value="delete"> 
      </form></div>';
}

function delete_guestbook($id_to_del){

global $db_host, $db_user, $db_password, $db_name;

$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
    die ("Errore Connecting database.");

mysql_select_db($db_name, $db)
    or die ("Error selecting database");

$query = "DELETE FROM RTGuestbook WHERE id = '$id_to_del'";

mysql_query($query, $db);

}

function read_guestbook(){

global $db_host, $db_user, $db_password, $db_name, $guestbook_template, $start_guestbook, $step_guestbook;

$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
    die ("Errore Connecting database.");
    
mysql_select_db($db_name, $db)
        or die ("Error selecting database");
        
$query = "SELECT id,_author,_date,_mail,_text FROM RTGuestbook ORDER BY id DESC LIMIT $start_guestbook, $step_guestbook";

$result = mysql_query($query, $db);
while ($row = mysql_fetch_array($result)){
$temp_array = explode("%%", $guestbook_template);
$number = 0;
while( $number < count($temp_array) )
    {    
    switch($temp_array[$number])
    {
    case "DATE":
    echo stripslashes($row[_date]);
    break;
    case "AUTHOR":
    echo stripslashes($row[_author]);    
    break;
    case "MAIL":
    echo stripslashes($row[_mail]);    
    break;
    case "TEXT":
    echo stripslashes($row[_text]);    
    break;
    default:
    print($temp_array[$number]);
    } 
    $number++;
    }
}

$query = "SELECT count(*) AS tot FROM RTGuestbook";

$result = mysql_query($query, $db);
$row = mysql_fetch_array($result);

$pages = intval(($row[tot]-1) / $step_guestbook)+1;
if ($pages > 1)
{
    echo "Page: ";
    for ($i=0; $i<$pages AND $i<20; $i++)
    { $start_page = $i * $step_guestbook;
    echo "<a href=$page_guestbook?start_guestbook=$start_page>" . ($i+1) . "</a> ";
    }
}

mysql_close($db);
}

function guestbook_form(){
print '<form name="sign_guestbook_form" method="post" action="">
<br>
<br>
<br>
Autor:
<input type=text size=40 name=author><br>
<br>
Email:
<input type=text size=40 name=mail><br>
<br>
Tekst komentara:<br>
<textarea cols=60 rows=10 name=text></textarea><br>
<input type="hidden" name="write_guestbook" value="true">
<input type = "hidden" value = ".$page." name = "strana">
<input name="sign_guestbook_form_submit" type="submit">
<input name="reset_guestbook_form" type="reset">
</form>';

}

function sign_guestbook(){

global $db_host, $db_user, $db_password, $db_name, $author, $mail, $text, $strana;

$author = htmlspecialchars(addslashes(stripslashes($author)));
$mail = htmlspecialchars(addslashes(stripslashes($mail)));
$text = htmlspecialchars(addslashes(stripslashes($text)));
$strana = htmlspecialchars(addslashes(stripslashes($strana)));
$date = date("d-m-y");


$db = mysql_connect($db_host, $db_user, $db_password);
if ($db == FALSE)
    die ("Errore Connecting database.");
    
mysql_select_db($db_name, $db)
        or die ("Error selecting database");

$query = "INSERT INTO RTGuestbook (_author, _mail, _date, _text, _page) VALUES ('$author', '$mail', '$date', '$text', '$strana')";

if (!mysql_query($query, $db))
    die ("Error inserting entry in db");

mysql_close($db);


}

?>


[Ovu poruku je menjao zrnoo dana 03.03.2006. u 14:45 GMT+1]
[ Jbyn4e @ 03.03.2006. 14:15 ] @
Koristis stariji skript, koji je bio bez _GET i _POST nacina prenosa forme, zato on sad nema promenljive. Trebas da prepravis sve promenljive koje se prenoose GET ili POST metodom.
Za prvu pomoc (ovo nije sigurno sa stanovnistva sigurnosti) mozes da dodas na pocetak strane:
Code:

// za php > 4.1 potrebno je ovo zbog register_globals = off)
if ($_POST) {
foreach (array_keys($_POST) as $var) {
$$var = $_POST["$var"];
        }
}

if ($_GET) {
foreach (array_keys($_GET) as $var) {
$$var = $_GET["$var"];
        }
}

[ zrnoo @ 03.03.2006. 14:31 ] @
pa cekaj sad...jel ti to mislis da ubacim na sam pocetak skripte posle onog includeo vaj deo koda....i da na mestima gde saljem i prihvatam "page" umetsno dosadanjeg page koristim $$var= ? je si li na to mislio?

tj...ako ja postavim ovo tvoje na pocetak.....sta onda treba da postavim u funkciji forme na mestu gde je sada $page (<input type = "hidden" value = ".$page." name = "strana">) i da li tu moram da aktiviram opciju global ...

???
[ Jbyn4e @ 03.03.2006. 15:01 ] @
Samo postavi na pocetak strane pa probaj. Ako radi radi, ako ne probaj da dodas global.
Ne koristis $$... to mu samo kaze da sve promenljive iz _POST i _GET niza prebaci u ekvivalentne. npr ako si imao <input name="page">...pa kad submit-ujes - salje se u $_POST['PAGE'] vrednost toga sto si upisao, a kod gore pravi jos dodatnu promenljivu $page i dodeljuje joe tu vrednost, tj. $page=$_post['page'], ili uopsteno
$promenljiva = $_POST['promenljiva'];

Inace, ako neces da ucis php - sto se uopste bakces sa tim? Imas gotovih free guestbook-ova na netu, sto ti moras da imas svoju bazu i svoj php skript?

Toliko od mene, pomoci vise nema, za sve ostalo gledaj
http://www.php.net/docs.php
[ Br@nkoR @ 03.03.2006. 16:37 ] @
Ovako praviš jednu grešku, probaj ovaj kod kako bi video grešku:
Code:

$test = 'bre';
print $test;
print "$test";
print '$test';
print ' - ' . $test . ' - ';

(Jbyn4e je lepo napisao gore)

Zatim možeš $page prosleđivati kao argument funkcije,
Code:

function guestbook_form($page) {
  echo $page;
}
guestbook_form($_GET['page']);



[Ovu poruku je menjao Br@nkoR dana 03.03.2006. u 17:51 GMT+1]
[ zrnoo @ 03.03.2006. 18:26 ] @
probao sam ovo sto mi je "Jbyn4e" napisao ali nefunkcionise .... ne znam sta sada da radim....
[ zrnoo @ 03.03.2006. 19:07 ] @
Ljudi starno mi nema pomoci....ja sam pokusao ovo sto ste mi vi napisali...ali neide....jel moze neko da prepravi onaj moj kod i da ga postavi ovde ili posalje na moj email...mislim nevredi , vec 4 dana pokusavam uzalud....osecam da mi uvek promakne neka sitnica...

ajde molim nekog ko ce da se solidarise samnom i da prepravi moju CELU skriptu koju sa postavio i prepravi je da radi !!!

unapred hvala svima ! i onima koji su mi pomagali da resim ovaj kosmar !!!
[ boccio @ 03.03.2006. 19:28 ] @
Mislim, ovo vise nema nikakvog smisla, ZAISTA. Dva puta sam procitao kompletnu temu (what a waste of time...) da bih bio potpuno siguran u ovo sto cu reci:

Sve je lepo objasnjeno, cak i sa primerima - problem je krajnje trivijalan i spada u najosnovnije osnove PHP-a i HTML-a.

@zrnoo: Najtoplije ti savetujem da sednes i procitas neki tutorijal, jer ako nakon ovako iscrpnog objasnjenja koje je Jbyn4e dao ne mozes da resis problem onda je stvarno preko potrebno da procitas prvo neki PHP tutorijal, posebno sekciju sa operacijama nad stringovima i register_globals().



[Ovu poruku je menjao boccio dana 03.03.2006. u 20:31 GMT+1]