Afisare link utilizand "$_POST"

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

Ditzy
PHPRomania Supporter
Mesaje: 19
Membru din: Mar Ian 31, 2012 9:04 pm
Localitate: sky
Contact:

Afisare link utilizand "$_POST"

Mesajde Ditzy » Mar Ian 22, 2013 4:32 pm

Salutare..

De ceva vreme, am o nelamurire legata de variabilele $_POST si $_GET !

Daca utilizam metoda method="get" intr-un formular, ne apar informatiile adaugate, in casuta de url
Exemplu: site.tld/formular.php?ceva=ceva etc..

Daca utilizam metoda method="post" intr-un formular, nu mai apar informatiile!
Exemplu: site.tld/formular.php


Nelamurirea mea este urmatoarea:

Cum as putea folosi variabila $_POST , in asa fel incat sa imi arate informatiile adaugate in formular..

Ma intereseaza ca atunci cand cineva introduce niste informatii in formular, sa i se ofere si link-ul catre o pagina care afiseaza acele informatii..
Prin metoda GET merge, insa folosind POST, nu stiu cum sa ofer acele informatii..

Ideea este urmatoarea:

Cineva adauga ceva intr-un formular..
Apasa pe butonul de trimitere, iar acestuia ii sunt oferite informatiile adaugate in formular, pe o alta pagina php!
Acesta trimite link-ul paginii respective altor persoane, care la randul lor vor trimite link-ul paginii respective altor persoane..

Ma poate lamuri cineva in legatura cu aceasta problema?
Va multumesc anticipat!
Claudiu



KingKonng
Junior Member
Mesaje: 42
Membru din: Mar Aug 09, 2011 2:34 pm

Re: Afisare link utilizand "$_POST"

Mesajde KingKonng » Mar Ian 22, 2013 4:36 pm

Cod: Selectaţi tot

<form method="post" action="afisare_date_formular.php">
<input type="text" name="text_input">
<input type="submit" name="click" value="Click">
</form>


si afisare_date_formular.php

Cod: Selectaţi tot

if(isset($_POST['click'])) {
     echo $_POST['text_input'];
}


cred ca asta vrei...

Ditzy
PHPRomania Supporter
Mesaje: 19
Membru din: Mar Ian 31, 2012 9:04 pm
Localitate: sky
Contact:

Re: Afisare link utilizand "$_POST"

Mesajde Ditzy » Mar Ian 22, 2013 4:41 pm

Da King! In mare parte, cam asa ceva!

Insa ma intereseaza sa si pot trimite link-ul acelei pagini, altei persoane!

In situatia de mai sus, nu am cum sa trimit..


Tin sa precizez ca mai multe persoane vor folosi acel formular, deci va trebuii atribuit cate un ID fiecarei pagini..
Asta nu stiu eu sa fac :)

Eu iti multumesc pentru implicare!

double-bit
PHPRomania Supporter
Mesaje: 18
Membru din: Vin Iun 29, 2012 3:22 pm

Re: Afisare link utilizand "$_POST"

Mesajde double-bit » Mar Ian 22, 2013 5:05 pm

Datele trimise prin POST nu sunt vizibile in URL si sunt de "unica folosinta". Dupa refresh se pierd (unele browsere cer utilizatorului sa le retrimita). Ce vrei tu este ceva de genul formularelor de cautare de pe forumuri. Trimiti datele prin POST si primesti un id unic prin GET. Pentru treaba asta, ai nevoie de o baza de date, unde sa pastrezi datele POST si id-ul GET. Cand cineva intra pe o pagina cu id-ul, in loc sa preiei datele POST din $_POST, le preiei din baza de date.

Ditzy
PHPRomania Supporter
Mesaje: 19
Membru din: Mar Ian 31, 2012 9:04 pm
Localitate: sky
Contact:

Re: Afisare link utilizand "$_POST"

Mesajde Ditzy » Mar Ian 22, 2013 5:16 pm

double-bit scrie:Datele trimise prin POST nu sunt vizibile in URL si sunt de "unica folosinta". Dupa refresh se pierd (unele browsere cer utilizatorului sa le retrimita). Ce vrei tu este ceva de genul formularelor de cautare de pe forumuri. Trimiti datele prin POST si primesti un id unic prin GET. Pentru treaba asta, ai nevoie de o baza de date, unde sa pastrezi datele POST si id-ul GET. Cand cineva intra pe o pagina cu id-ul, in loc sa preiei datele POST din $_POST, le preiei din baza de date.


Am inteles.. Speram sa nu folosesc o baza de date, insa ma simt nevoit sa fac asta!
Credeam ca exista vreo solutie..
Va multumesc tuturor..

O zi buna

ViezuREX
Senior Member
Mesaje: 502
Membru din: Joi Dec 13, 2012 1:35 pm

Re: Afisare link utilizand "$_POST"

Mesajde ViezuREX » Mie Ian 23, 2013 8:02 am

Mai exista o solutie care iti da exact ceea ce vrei tu,

Cod: Selectaţi tot

if ( isset($_POST) && is_array($_POST) && count($_POST) > 0 )
{
    $link = "destinatie.php?";
    foreach ( array_keys($_POST) as $var)
    {
        $link .= $var . "=" . $_POST[$var];
    }
    $link = substr($link,0,strlen($link)-1);
    header("Location: $link");
}
else
{
     .... codul pentru FORM
}

Practic asa faci un POST din FORM, acesta este descompus in elemente si se creeaza un link pe care il serveste. E adevarat ca header("Location: $link"); apeleaza link-ul prin GET insa acesta contine variabilele trimise initial prin $_POST

Avatar utilizator
vectorialpx
Senior Member
Mesaje: 4832
Membru din: Mar Mar 01, 2005 9:48 am
Localitate: Bucuresti
Contact:

Re: Afisare link utilizand "$_POST"

Mesajde vectorialpx » Mie Ian 23, 2013 12:13 pm

Ditzy scrie:Salutare..

De ceva vreme, am o nelamurire legata de variabilele $_POST si $_GET !

Daca utilizam metoda method="get" intr-un formular, ne apar informatiile adaugate, in casuta de url
Exemplu: site.tld/formular.php?ceva=ceva etc..

Daca utilizam metoda method="post" intr-un formular, nu mai apar informatiile!
Exemplu: site.tld/formular.php


Nelamurirea mea este urmatoarea:

Cum as putea folosi variabila $_POST , in asa fel incat sa imi arate informatiile adaugate in formular..

Ma intereseaza ca atunci cand cineva introduce niste informatii in formular, sa i se ofere si link-ul catre o pagina care afiseaza acele informatii..
Prin metoda GET merge, insa folosind POST, nu stiu cum sa ofer acele informatii..

Ideea este urmatoarea:

Cineva adauga ceva intr-un formular..
Apasa pe butonul de trimitere, iar acestuia ii sunt oferite informatiile adaugate in formular, pe o alta pagina php!
Acesta trimite link-ul paginii respective altor persoane, care la randul lor vor trimite link-ul paginii respective altor persoane..

Ma poate lamuri cineva in legatura cu aceasta problema?
Va multumesc anticipat!
Claudiu

Iit trebuie o baza de date, cu un tabel, care retine textele si un identificator, pe principiul articolelelor.
Un exemplu de tabel:

Cod: Selectaţi tot

articole
--------
id
key
titile
content
stamp
ip
iduser

La insert, faci adaugarea in baza de date a acelui articol,
- o cheie unica, de exemplu uniqid() sau md5(SALT . microtime(true))
- un titlu (sper ca ai unul, asa ar fi frumos)
- contentul
- data curenta
- IP-ul celui care a adaugat (pentru tine, statistic)
- un id de user, in caz ca ai o metoda de autentificare

link-ul va arata astfel:
www.site.com/?articol=asd798asdjio
unde asd798asdjio este cheia unica.

Faci o interogare si, iei continutul.

Atentie la XSS si MySql injection.

Ditzy
PHPRomania Supporter
Mesaje: 19
Membru din: Mar Ian 31, 2012 9:04 pm
Localitate: sky
Contact:

Re: Afisare link utilizand "$_POST"

Mesajde Ditzy » Mie Ian 23, 2013 6:57 pm

Va multumesc tuturor pentru raspuns..

Voi aplica metoda cu baza de date..

Cu stima, Claudiu


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 120 vizitatori