Salt la conținut

SUBIECTE NOI
« 1 / 5 »
RSS
Izolatie intre OSB si placa de be...

instalatie incalzire apartament 2...

HEV D Segment - intrebari/pareri ...

Hyperos consum excesiv baterie?
 Contractul pentru Salubrizare est...

Elicopterul care-l transporta pe ...

Sfaturi achizitionare apartament ...

Permis de conducere nou
 Packet Loss la Digi

Masurare parametri CATV prin Conn...

Youtube a inceput sa aiba lag!?

Internet Archive - adauga item la...
 Electrica Furnizare + Poșta ...

Probleme cu scurgerea de ulei pe ...

Blocuri cu apartamente de 5+ camere

Casa noua finisata, teava incalzi...
 

Problema "id"

- - - - -
  • Vă rugăm să vă autentificați pentru a răspunde
15 răspunsuri în acest subiect

#1
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
      Buna seara !

Am o comanda SQL care imi extrage din baza de date doar datele care au un intr-un camp o anumita valoare. Am folosit un while() si daca am 2, cu line break-ul pus mi se afiseaza pe amandoua. Acum... Pentru a modifica campul acela, am folosit urmatorul cod:

while(...){
//aici sunt echo-urile care extrag din bd acele date care au in camp valoarea respectiva
if(isset($_POST['optiune'])){
$eschiuel = mysql_query("UPDATE `users` SET acel_camp='Da' WHERE id=".$ha['id']." ");
if(!$eschiuel){
echo 'Eroare: mysql_error() ';
}else{
echo 'Anuntul a fost aprobat cu succes';
}
}else{
echo '<form method="POST" action="" >
<input type="submit" name="optiune" value="Aprobare" /> <br /> <br />
</form> ';
}

, unde $ha  este mysql_fetch_array($comandaSQL)




Acum...acel buton de Submit apare la fiecare data in parte... dar apasat, schimba cu "Da" la amandoua. Cum as putea face ca atunci cand dau click pe submitul respectivelor date, sa ii modifice doar la acele date campul....




Sper ca s-a inteles... Daca nu dau mai multe explicatii

Editat de Bogdan2901, 13 februarie 2010 - 21:07.


#2
neobluenet

neobluenet

    Member

  • Grup: Members
  • Mesaje: 489
  • Înscris: 13.08.2004

 Bogdan2901, on 13th February 2010, 21:05, said:

while(...){
	//aici sunt echo-urile care extrag din bd acele date care au in camp valoarea respectiva
	if(isset($_POST['optiune'])){
		$eschiuel = mysql_query("UPDATE `users` SET acel_camp='Da' WHERE id=".$ha['id']." ");
		if(!$eschiuel){
			echo 'Eroare: mysql_error() ';
		}
		else{
			echo 'Anuntul a fost aprobat cu succes';
		}
   }
   else{
	   echo '<form method="POST" action="" >
	   <input type="submit" name="optiune" value="Aprobare" /> <br /> <br />
		</form> ';

   }//asta lipseste in codul tau

}
Mai iti trebuie un hidden input in care sa pui id-ul inregistrarii din baza de date, ca daca dai submit (vezi ca ii trebuie si action la formular) el o sa trimita doar optiune. Pe langa faptul ca trebuie sa modifice, trebuie sa ii spui is ce sa modifice.
Data viitoare scrie codul mai "frumos", ca sa il poata citi lumea mai usor.

#3
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Mesaje: 12.747
  • Înscris: 24.03.2006

 neobluenet, on 14th February 2010, 10:48, said:

Mai iti trebuie un hidden input in care sa pui id-ul inregistrarii din baza de date, ca daca dai submit (vezi ca ii trebuie si action la formular) el o sa trimita doar optiune. Pe langa faptul ca trebuie sa modifice, trebuie sa ii spui is ce sa modifice.
Data viitoare scrie codul mai "frumos", ca sa il poata citi lumea mai usor.
Solutia ta nu este tocmai corecta.

Sunt 2 solutii mari si late.

1. adauga form pentru fiecare articol cu input hidden.
2. creeaza butoanele submit de tip imagine si la campul "value" pune valoarea id-ului.

#4
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
Salut !  Intradevar merge, aproba doar cate unul... dar dupa ce am apasat odata dispar toate butoanele de submit :( . La hidden am folosit:

<input type="hidden" name="aprobare" value="'.$ha['id'].'" />
Iar la update:

$iid = $_POST['aprobare'];
$eschiuel = mysql_query("UPDATE `users` SET Aprobat='Da' WHERE id='$iid' ");


#5
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008

 DarkAngelBv, on 14th February 2010, 12:17, said:

Solutia ta nu este tocmai corecta.

Sunt 2 solutii mari si late.

1. adauga form pentru fiecare articol cu input hidden.
2. creeaza butoanele submit de tip imagine si la campul "value" pune valoarea id-ului.

1.  Pai eu le iau cu un while din baza de date... Deci echo $ha['Camp1']; e scris odata, dar apare de cate ori se gaseste in baza de date, cu valorile respetive :)


2.  De ce chiar imagine ?

#6
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Mesaje: 12.747
  • Înscris: 24.03.2006
Imagine deoarece la submit-ul de tip imagine proprietatea "value" este ascunsa ochiului.

in loc sa ai

<form1>
<hidden1><submit1>
</form1>
<form2>
<hidden2><submit2>
</form2>
<form3>
<hidden3><submit3>
</form3>

vei avea ceva de genul
<form>
<submit1>
<submit2>
<submit3>
<submit4>
....
</form>

deci mult mai ok din punct de vedere al codului.

#7
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
Bun...dar cum pot pune un buton la fiecare articol ?   Si dupa ce accept unul, sa apara in continuare celelalte butoane, iar daca le apas etc :D

Editat de Bogdan2901, 14 februarie 2010 - 15:48.


#8
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Mesaje: 12.747
  • Înscris: 24.03.2006
Ca sa ai interactivitate trebuie sa folosesti ajax.
Sau poti folosi solutia mai "din topor", adica sa faci submit catre aceiasi pagina in care sa verifici $_POST.

#9
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
Hm... Pana la urma am rezolvat-o in urmatorul mod:

- am mai creat un fisier in care am pus codul PHP pentru UPDATE;
- ID-ul anuntului este pus intr-un hidden input;
- in al doilea fisier verific daca s-a apasat inaitne butonul, astfel incat daca s-a incercat sa se intre direct pe pagina, nu il va lasa;
- am pus un http-equiv="refresh" , care duce inapoi spre pagina de admin daca totul a decurs perfect. (Cei care intra direct pe pagina pot astepta dupa refresh si o luan de zile....)

Rezultatul: A mers !!! :D

Multumesc tuturor !

#10
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Mesaje: 27.268
  • Înscris: 10.08.2006
Sa vezi ce merge pentru oricine care stie ce face, sa-ti ocoloeasca "protectia".

Usor usor incepi sa ma convingi ca ai talent la a face lucrurile gresit.

De ce nu faci un checkbox pentru fiecare rand cu numele "accept[<id>]", un singur buton de submit in formular, si in procesare iterezi peste $_POST['accept'] ?

Editat de OriginalCopy, 15 februarie 2010 - 15:47.


#11
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
Hm... as putea incerca. Daca zici ca nu e bine cum am facut eu.

#12
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Mesaje: 27.268
  • Înscris: 10.08.2006
Si mai bine ar fi sa te intrebi "de ce nu e bine?", "unde e gaura de securitate/functionalitate?". Nu e "meseria" mea sa-ti bag pe gat informatii. E treaba ta sa te intrebi, eventual sa intrebi pe forum.

#13
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008
Bun atunci... cat de curand o sa modific algoritmul codului. Unde e gaura de securitate la versiunea actuala ?

#14
OriginalCopy

OriginalCopy

    I'm harmful, fear me please! :))

  • Grup: Senior Members
  • Mesaje: 27.268
  • Înscris: 10.08.2006
Nu e neaparat de securitate (depinde cum folosesti html redirect, poate escala intr-una de securitate), e de functionalitate. Nu poti garanta ca userul care intra pe site-ul tau face asta cu un browser. Poate sa intre cu un program mai mult sau mai putin propriu, sau sa dezactiveze "html refresh" in browserul sau, si atunci nu va fi redirectionat. Va vedea codul HTML, ceea ce e de ajuns. Explicatii gasesti in "resurse pt studiu individual", punctele II. 1. 1, II. 1. 2, II. 1. 3.

Editat de OriginalCopy, 15 februarie 2010 - 17:53.


#15
DarkAngelBv

DarkAngelBv

    === Proud owner of === ++++ Audi & Opel ++++

  • Grup: Senior Members
  • Mesaje: 12.747
  • Înscris: 24.03.2006
Din cate am inteles eu, el doreste acest script pentru administrare. Presupunand ca de administrarea sitului se ocupa el sau cineva de incredere, nu o putem numi gaura de securitate. Cel mult neglijenta.

#16
Danbog_1920

Danbog_1920

    Active Member

  • Grup: Banned
  • Mesaje: 1.910
  • Înscris: 24.10.2008

 OriginalCopy, on 15th February 2010, 17:52, said:

Nu e neaparat de securitate (depinde cum folosesti html redirect, poate escala intr-una de securitate), e de functionalitate. Nu poti garanta ca userul care intra pe site-ul tau face asta cu un browser. Poate sa intre cu un program mai mult sau mai putin propriu, sau sa dezactiveze "html refresh" in browserul sau, si atunci nu va fi redirectionat. Va vedea codul HTML, ceea ce e de ajuns. Explicatii gasesti in "resurse pt studiu individual", punctele II. 1. 1, II. 1. 2, II. 1. 3.

1.  O sa fie sistem de autentificare pe aceea pagina, cu un singur cont creat... fara posibilitatea de a se creea unul nou

2.  NU are cum sa ajunga pe pagina aceea ca utilizator capabil sa aprobe un articol. Ii va da : 1. eroarea pe prima pagina ca nu e logat,  2.  eroarea pe a doua pagina ca butonul submit nu a fost apasat (adica a intrat direct pe pagina). Redirectul e pus intre if, nu in afara lui sau intre else

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

Utilizatori activi: 1

0 membri, 1 vizitatori, 0 utilizatori anonimi

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate