Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 12 odgovora
  • 3.596 pregleda

Najnovija ↓

cenzurisanje pristiglih poruka 09.11.2005. u 15:47 · pre 255 meseci
izmenjeno 1 put, poslednji put noviKorisnik 09.11.2005. u 16:48
  1. noviKorisnik09.11.2005. u 16:48zapis iz teksta poruke
#1
Htela bih da napravim php stranu koja bi bila namenjena cenzurisanju pristiglih poruka pre njihovog objavljivanja na sajtu. Poruke koje su za cenzuru zelim npr da obrisem. Posavila sam <input> u petlju, ali je problem u tome sto on stalno brise poslednju poruku, a ne onu koju mu ja odredim. Ne znam gde gresim.

Hvala.

Code:
<form action='listamat.php' method='post' enctype='multipart/form-data' name='form1'> <?
include ('connect.php');

function check_mysql()
{
   if(mysql_errno() >>0)
  {
   die("<r> mysql error" . mysql_errno() . ": " . mysql_error());
   } 
}
if(!isset($id))
{
$id=0;
$ime="";
$poruka="";
$datum="";
}
}
if (isset($delete))
{
$query="delete from maturanti where id=$id";
$result=mysql_query($query);
check_mysql();
$ime="";
$poruka="";
$datum="";
    
}


$query=mysql_query("select * from maturanti order by id desc"); 
echo "<table>";

while ($row=mysql_fetch_array($query))
{
$ime="$row[1]";
$poruka="$row[2]";
$datum="$row[3]";
$id=$row[0];



echo " <tr class=\"unnamed1\"><td><strong>$row[3]&nbsp;&nbsp;&nbsp;$row[1]</strong>($row[0])<br>$row[2]<input type='hidden' name='id' value='$id'><input name='delete' type='Submit' value='obrisi'><br><br></td></tr>";

        
    }
echo "</table>";
?></form>
Re: cenzurisanje pristiglih poruka 09.11.2005. u 16:25 · pre 255 meseci #2
probaj umesto:

echo " <tr class=\"unnamed1\"><td><strong>$row[3]&nbsp;&nbsp;&nbsp;$row[1]</strong>($row[0])<br>$row[2]<input type='hidden' name='id' value='$id'><input name='delete' type='Submit' value='obrisi'><br><br></td></tr>";

da stavis:

echo "id = ".$id;
itd.


Mada mislim da je greska u:

<input type='hidden' name='id' value='$id'>

i da umesto $id treba da stavis $row[0]

Poz,
Sale
Potpis
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
Re: cenzurisanje pristiglih poruka 09.11.2005. u 16:41 · pre 255 meseci #3
ID ne treba da ti bude value nevidljivog inputa, već submit buttona. Hidden polje ti ne treba uopšte.

P.S. Koristi code tagove.
Re: cenzurisanje pristiglih poruka 09.11.2005. u 20:21 · pre 255 meseci #4
Hvala na brzom odgovoru, ali ne pomaze...bar ne za sada.

1.
Citat:
jablan: ID ne treba da ti bude value nevidljivog inputa, već submit buttona. Hidden polje ti ne treba uopšte.
>> U ovom slucaju ne radi brisanje uopste. Ako u submit buttom value stavis id onda je to natpis na dugmetu, ali ne resava problem

2.
Koristi code tagove.

>>Kako?

________________________

3. [quote]SmilieBG: probaj umesto:

echo " <tr class=\"unnamed1\"><td><strong>$row[3]&nbsp;&nbsp;&nbsp;$row[1]</strong>($row[0])<br>$row[2]<input type='hidden' name='id' value='$id'><input name='delete' type='Submit' value='obrisi'><br><br></td></tr>";

da stavis:

echo "id = ".$id;
itd.

>>nije mi bas jasno kako ovo da izvedem.

4. Mada mislim da je greska u:

<input type='hidden' name='id' value='$id'>

i da umesto $id treba da stavis $row[0]
>> Ne pomaze.


Pozdrav od Anite
Re: cenzurisanje pristiglih poruka 09.11.2005. u 20:45 · pre 255 meseci #5
@jablan - to ne moze, mora da ima hidden, da bi prenela _sta_ da brise, prema tome, ostavi to hidden polje.

A ono na sta sam mislio, jeste da umesto:

Code:

$ime="$row[1]";
$poruka="$row[2]";
$datum="$row[3]";
$id=$row[0];

echo " <tr class=\"unnamed1\"><td><strong>$row[3]&nbsp;&nbsp;&nbsp;$row[1]</strong>
($row[0])<br>$row[2]<input type='hidden' name='id' value='$id'><input name='delete' type='Submit' value='obrisi'><br><br></td></tr>";


stavis, bukvalno sledece samo:

Code:

echo "id = ".$row[0]."<br>";
echo "ime = ".$row[1]."<br>";
echo "poruka = ".$row[2]."<br>";
echo "datum = ".$row[3]."<br>";


na ovaj nacin, prvo proveris da dobijas podatke koji tebi trebaju! Ako u ovom slucaju vidis sve sto treba da vidis, onda radis sledece (umesto prvog koda, stavis sledece):

Code:

echo "
<tr class=\"unnamed1\">
       <td><strong>$row[3]&nbsp;&nbsp;&nbsp;$row[1]</strong>
       ($row[0])<br>$row[2]<input type='hidden' name='id' value=$row[0]>
       <input name='delete' type='Submit' value='obrisi'><br><br></td></tr>";


Primeti, da sam samo promenio $id u $row[0]

Ukoliko ne dobijes u prvom koraku zeljene rezultate, javi... posto je onda negde drugde greska ;)

Poz,
Sale
Potpis
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
Re: cenzurisanje pristiglih poruka 09.11.2005. u 21:44 · pre 255 meseci #6
Ne radi ni dalje. Ono sto si napisao pomaze za resavanje, jer vidis vrednosti, ali problem je na nekom drugom mestu. Problem je u tome da on iz baze iz nekog svog razloga brise poslednji red, mozda je razlog u tome sto se on tu zaustavlja. Mozda bi resenje bilo da se odgovarajuci ID trazi ponovo u bazi, i da se ponovo pozicionira neposredno pre brisanja. Pokusala sam to da izvedem, ali mi nesto ne ide.
Re: cenzurisanje pristiglih poruka 09.11.2005. u 23:44 · pre 255 meseci
izmenjeno 1 put, poslednji put SmilieBG 09.11.2005. u 23:49
  1. SmilieBG09.11.2005. u 23:49zapis iz teksta poruke
#9
eh, sta umor ucini od coveka :)

Malo sam prepravio, ali nemam trenutno nijedan php editor instaliran, pa je vrlo moguce da ima sintaksickih gresaka negde :(

Code:

<?

echo "<form action= $_SERVER['PHPSELF'] method='post' enctype='multipart/form-data'>";

include ('connect.php');

function check_mysql()
{
   if(mysql_errno() >>0)
   {
       die("<r> mysql error" . mysql_errno() . ": " . mysql_error());
   } 
}

if(!isset($GET['$id']))
{
    $id=0;
    $ime="";
    $poruka="";
    $datum="";
}

if ($GET['delete'] = 'da')
{
    $query="delete from maturanti where id=$GET['$id']";

        // savet!! obrisi kometar sledeceg reda, a $result i check_mysql stavi u komentar, pa jednom tako pokreni skriptu
        // echo $query;

    $result=mysql_query($query);
    check_mysql();

    echo "<a href = 'listamat.php'>Nazad</a>";
    exit;
}


$query=mysql_query("select * from maturanti order by id desc"); 
echo "<table>";

while ($row=mysql_fetch_array($query))
{

echo "
<tr class=\"unnamed1\">
    <td>
    <strong>$row[3];$row[1]</strong>($row[0])
    <br>$row[2]
    <input type='hidden' name='id' value='row[0]'>
    <input type='hidden' name='delete' value='da'>
    <input name='delete' type='Submit' value='obrisi'>
    <br><br>
    </td>
</tr>";
}

echo "</table></form>";

?>


Poz,
Sale
Potpis
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
Re: cenzurisanje pristiglih poruka 10.11.2005. u 00:32 · pre 255 meseci #10
Problem je bio što se sve nalazilo u jednom formularu, sa mnogo Submit dugmadi na kojima piše nešto o brisanju, i sa mnogo skrivenih inputa različitih vrednosti koji dele isto ime.

I - šta se dešava kada se prosledi formular? ... Prepozna se poslednji definisani hidden input i briše se ono što mu odgovara.

Da bi to funkcionisalo ovako kako stoji, treba umesto jednog formulara za sve da se napravi po jedan formular za svaku kombinaciju hiddena i submita. To nije teško, zar ne?
Code:
<form action='listamat.php' method='post'>
<input type='hidden' name='id' value='$id' />
<input name='delete' type='Submit' value='obrisi' />
</form>


Ono što je jablan predlagao radi - jedino što nije intuitivno gledati dugme s nekim brojem - "ako klikneš na broj, nestaće poruka" ;-)

Naravno, odradio bih to na sasvim treći način, koje omogućava da se izaberu poruke za brisanje i da se jednim klikom na submit odradi brisanje izabranih poruka. Onda treba samo jedno submit dugme, a umesto hiddena koriste se hiddeni s imenom id[].

Ovo je u petlji
Code:
<input type='checkbox' name='id' value='$id' />

A ovo u formularu van petlje
Code:
<input name='delete' type='Submit' value='obrisi' />


Proces brisanja...
Code:
if ($_SERVER ['REQUEST_METHOD'] == 'POST' && isset ($_POST ['delete']) && isset ($_POST ['id']))
{
    foreach ($_POST ['id'] as $id)
    {
        $query="delete from maturanti where id=$id";
        $result=mysql_query($query);
        check_mysql();
    }
}


... i još nešto... potrudi se da isključiš register_globals i prilagodi tome skripte - čuva od gomile bočnih efekata.
Potpis
BoxUp
interesantna logička igra
Monty Hall paradoks - interaktivni demo
Re: cenzurisanje pristiglih poruka 10.11.2005. u 09:39 · pre 255 meseci #11
Citat:
noviKorisnik: Ono što je jablan predlagao radi - jedino što nije intuitivno gledati dugme s nekim brojem - "ako klikneš na broj, nestaće poruka" ;-)

Užas... Skroz sam ispao iz fazona...

Da probam da se iskupim:
Code:

<form>
<input type="hidden" name="val">
<?php
if (isset($_REQUEST['val']))
  echo $_REQUEST['val']. " <br />\n";


for ($i = 0; $i < 10; $i++) {
  echo "text$i <input type=submit onclick=\"val.value=$i\" value=\"delete\"> <br/>\n";
}
?>
</form>
Re: cenzurisanje pristiglih poruka 10.11.2005. u 14:43 · pre 255 meseci #12
Da si napisao ovo:

Code:

<form>
<?php
if (isset($_REQUEST['delete']))
  echo $_REQUEST['delete']. " <br />\n";

for ($i = 0; $i < 10; $i++) {
  echo "text$i <input type=submit onclick=\"this.value=$i\" value=\"delete\"> <br/>\n";
}
?>
</form>


iskupio bi se. Ovako ništa.. :)
Potpis
~ k0nj!na ~
Re: cenzurisanje pristiglih poruka 10.11.2005. u 16:53 · pre 255 meseci #13
Havala na pomoci!!! Uspela sam. Najvise mi je pomogla poruka od noviKorisnik. Svaka cast.


Znala sam da je neka sitnica u pitanju, ali zaista mi pomoc puno znaci. Sada dosta stvari mogu da unapredim zahvaljujuci ovome.

I drugi deo sugestije od NK je jako koristan, mozda cu ga upotrebiti bas u tom obliku u kombinaciji sa jos jednim ili dva radio buttona za prikazivanje ili ne prikazivanje poruka.

Hvala svima jos jednom!!!

Pozdrav od Anite
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme