Pokaż wyniki 1 do 5 z 5

Temat: edycja wpisów mysql

  1. #1
    Avatar ble34
    ble34 jest offline jestem bugiem
    Zarejestrowany
    Oct 2006
    Skąd
    krzesło
    Postów
    681

    Domyślnie edycja wpisów mysql

    rozwiązanie jest pewnie banalne ale ja niemoge sobie ztym poradzić wiec prosze o pomoc chodzi o wyedytowanie wpisu w bazie skrypt pobiera dane określone w zmiennei $_GET[it]wyswietla je wpolu tekstowym zeby mozna było je sobie zmienicno i zaczyna się problembo gdy dokonam edycji i nacisbne guzik to ic sie niedzieje oto kod
    Kod php:
    <?
     $link
    =mysql_connect("127.0.0.1","root","zero.kupa")
    or die(
    "niemoge się połaczyć");
    mysql_select_db("ble");?>
    <html>
    <head>
      <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
      <meta name="Description" content="[ Opis dokumentu ]" />
      <meta name="Author" content="[ Autor dokumentu ]" />
      <meta name="Generator" content="EdHTML" />
      <title>[ Tytul dokumentu ]</title>
    </head>
    <body>
    <body linlk=navy></body>
    <center><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
      <td bgcolor="black" align="center">
    <!-- dodawanie treści -->
    <BODY BACKGROUND="pod.jpg"></BODY>
    <p><form action="admin1.php?id=ok" method="post">
    <input type="text" name="nik" value="<? echo $_POST['nik'];?>"><br>
    <textarea cols="40" rows="5" name="tresc" value="<? echo $_POST['tresc']; ?>"></textarea>
    <input type="submit" value="go">
    <?
    $_GET
    ['id']=strip_tags($_GET['id']);
    $_POST['nik']=strip_tags($_POST['nik']);    //zapobieganie xxs
    $_POST['tresc']=strip_tags($_POST['tresc']);  //---''--''----
    if (isset($_POST['nik']) && ($_POST['tresc']))
    {
    mysql_query("INSERT INTO wpisy VALUES(\"$_POST[nik]\",\"$_POST[tresc]\",NULL,".date(d.m.y).",NULL)");
    }
    ?>
    <tr><td align="center"><font color=navy><b>liczba wpisów</b></font>
    <br>
    <? //zwraca liczbe wpisów
    $result mysql_query('SELECT * FROM wpisy');
    $num_rows mysql_num_rows($result);
    echo(
    $num_rows);
     
    ?>
    </td></form></p>
    <tr><td align="center" height="20%">
    <a href=admin1.php?id=a><img src="buton.jpg" alt="edycja"></a>
    <a href=admin1.php><img src="buton.jpg" alt="wstecz"></a>
    <a href="admin1.php?id=wp"><img src="buton.jpg" alt="wpisy"></a>
    </td></td></table>
    <!--::::::::::::::::::::::::::::edycja wpisów:::::::::::::::::::::::::::::::::::::::::::-->
         <?
    if ($_GET['id']=="wp")
    {
        
    ?><center><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
        <td bgcolor="" align="center"><div style="height: 150px; overflow: auto">
    <? //:::::::::::::::::::::::::::::::::::::::::eyśiwtlenie wpisów::::::::::::::::::::::::::
              
    $qr=mysql_query("SELECT id,tytul,data_dodania,id FROM wpisy ORDER BY  data_dodania DESC LIMIT 10 ");
          while(
    $row=mysql_fetch_array($qr)){
            echo(
    "<b>"."<a href=admin1.php?id=wp&it=".$row['id'].">".$row['tytul']."</a>"."<p>".$row['data_dodania']."</p>"."</b>");
             }}
    ?> </div></td></table>
     <!--::::::::::::::::::::::::::::::::::::::::::::teraz czas na edycje wpisów:::::::::::::::::::::::::::::::::::::::::::-->
     <?
     
    if (($_GET['id']=="wp") && ($_GET['it'].=$row[id]) && (is_numeric($_GET['it'])))
     {
        
    ?><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
        <td bgcolor="black" align="center">
     <p><form action="admin1.php?id=wp&it=<? $row['id'];?>" method="post">
        <textarea cols="15" rows="1" name="tyt" value="<? echo $_POST['tyt']; ?>">
         <? //::::::::::::wyświetlenie tytułka::::::::::::::::::::::::::::::::::
             
    $g=("SELECT id,id,tytul,id  FROM wpisy WHERE id='$_GET[it]'");
               
    $r=mysql_query($g);
                  while(
    $tw=mysql_fetch_array($r))
                     echo(
    $tw['tytul']);
                        
    ?></textarea><br>
        <textarea cols="40" rows="5" name="tre" value="<? echo $_POST['tre']; ?>">
         <? //:::::::::::::::::::::::wyświetlenie tresci:::::::::::::::::::::::::
             
    $gr=("SELECT id,id,tresc,id  FROM wpisy WHERE id='$_GET[it]'");
               
    $re=mysql_query($gr);
                  while(
    $tow=mysql_fetch_array($re))
                     echo(
    $tow['tresc']);
                        
    ?></textarea>
          <input type="submit" value="go">
           <? }
      
    //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::teraz wysłanie tej kupki do bazy(logiczny orzech);:::::::::::::::::::::::::::
       
    if (($_GET['id']=="wp") && ($_POST['tyt']!=false) && ($_POST['tre']!=fales) && (is_numeric($_GET['it']!=false)))
       {
          
    mysql_query("UPDATE wpisy SET tytul='$_POST[tyt]' ,tresc='$_POST[tre]' WHERE id='$_GET[it]'");
            }
           
    ?>
    prosze o wskazówki z góry dzięki
    Ostatnio edytowane przez ble34 : 04-26-2007 - 01:36

  2. #2
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Kod:
    ... && ($_POST['tre']!=fales) && ...
    fales czy false ?!

    Poza tym po czym ten kod ma rozpoznac czy dodac czy edytowac post? Jakos nie widze zadnego znacznika/zmiennej w tej kwestii...

    Czy zpaytanie w postaci:
    Kod:
    SELECT id,id,tresc,id  FROM wpisy WHERE id='$_GET[it]
    ma jakikolwiek sens? id,id,cos inne,id ?!

    Na koniec - nie wydaje mi sie aby strip_tags() zapobiegalo w jakikolwiek sposob XSS... sprawdzalem dokumentacje i twierdza ze tak... ale mam dziwne wrazenie ze da sie to obejsc... co dziwne - ta sama dokumentacja PHP zaleca inne rozwiazanie
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  3. #3
    Avatar ble34
    ble34 jest offline jestem bugiem
    Zarejestrowany
    Oct 2006
    Skąd
    krzesło
    Postów
    681

    Domyślnie ddd

    SELECT id,id,tresc,id FROM wpisy WHERE id='$_GET[it]
    $_GET['it];
    to numer id wpisu w baziedanych czyli $row['id]; jeśli nacisniesz link <a href=admin1.php?id=wp&it=$row['id']
    to zostanie wyswietlony news zo id podanym w zmiennei $_GET['it'] w polu tekstowym formularza
    skryptdziała poprawnie do momentu
    edycji
    warunek zostaje spełniony kiedy w polu <textarea> jest ustawiona zmeinna $_POST (moze powinienam wstawić isset zamiast !=false )
    ale to pozniei ztym sobie poradze
    ale to itak mnie nieurzadza bo nawet gdy poprawie ten warunek
    to zpaytanie zostaje wykonane odrazju a ja niezdąze go wyedytować
    no i wtym cały zgryz
    niewiem jak zrobic zeby zapytanie wykonywało się dpopiero po naciśnieciu guziczka
    myśle o wstawce javascript
    da się chyba zrobić tkie coś noi narazie to wszytko co przychodzi mi do głowy
    a co do strip tagsów
    to dlamnie moga byc niemam pojecia wjaki sposób mozna to ominąc one oczyszczają zmienne zze znaczników i zostawiają czysty tekst
    Ostatnio edytowane przez ble34 : 04-26-2007 - 18:43

  4. #4
    Zarejestrowany
    Jun 2006
    Skąd
    rand(.eu)
    Postów
    8,748

    Domyślnie

    Nic dziwnego ze nie dziala - po prostu robi wyswietlenie i zaraz po tym zapis - nie ma warunku, ktory odroznialby polecenie wyswietl od zapisz zmiany...

    Stary prosty trik...

    Kod:
    <input type=submit name="action" value="Zapisz">
    ... pozniej sprawdzasz $_POST['action'] i jesli jest ustaiwone i ma wartosc 'Zapisz' to wtedy masz zapis...

    Wiec jesli ustawione i ma odpowiednia wartosc to zapisz zmiany po czym wyswietl strone z wpisami a jak nie ma ustawionego action to wyswietl wpis do edycji... i po klopocie
    ctrl-alt-del.cc - soft reset site for IT admins and other staff :-)

  5. #5
    Avatar ble34
    ble34 jest offline jestem bugiem
    Zarejestrowany
    Oct 2006
    Skąd
    krzesło
    Postów
    681

    Domyślnie

    działa naprawiłem tqm czy ty to rozumiesz
    uratowanie
    wersja działająca nie końcowa
    Kod php:
    <?
     $link
    =mysql_connect("127.0.0.1","root","**********")
    or die(
    "niemoge się połaczyć");
    mysql_select_db("ble");?>
    <html>
    <head>
      <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-2" />
      <meta name="Description" content="[ Opis dokumentu ]" />
      <meta name="Author" content="[ Autor dokumentu ]" />
      <meta name="Generator" content="EdHTML" />
      <title>[ Tytul dokumentu ]</title>
    </head>
    <body>
    <body linlk=navy></body>
    <center><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
      <td bgcolor="black" align="center">
    <!-- dodawanie treści -->
    <BODY BACKGROUND="pod.jpg"></BODY>
    <p><form action="admin1.php?id=ok" method="post">
    <input type="text" name="nik" value="<? echo $_POST['nik'];?>"><br>
    <textarea cols="40" rows="5" name="tresc" value="<? echo $_POST['tresc']; ?>"></textarea>
    <input type="submit" value="go">
    <?
    $_GET
    ['id']=strip_tags($_GET['id']);
    $_POST['nik']=strip_tags($_POST['nik']);    //zapobieganie xxs
    $_POST['tresc']=strip_tags($_POST['tresc']);  //---''--''----
    if (isset($_POST['nik']) && ($_POST['tresc']))
    {
    mysql_query("INSERT INTO wpisy VALUES(\"$_POST[nik]\",\"$_POST[tresc]\",NULL,".date(d.m.y).",NULL)");
    }
    ?>
    <tr><td align="center"><font color=navy><b>liczba wpisów</b></font>
    <br>
    <? //zwraca liczbe wpisów
    $result mysql_query('SELECT * FROM wpisy');
    $num_rows mysql_num_rows($result);
    echo(
    $num_rows);
     
    ?>
    </td></form></p>
    <tr><td align="center" height="20%">
    <a href=admin1.php?id=a><img src="buton.jpg" alt="edycja"></a>
    <a href=admin1.php><img src="buton.jpg" alt="wstecz"></a>
    <a href="admin1.php?id=wp"><img src="buton.jpg" alt="wpisy"></a>
    </td></td></table>
    <!--::::::::::::::::::::::::::::edycja wpisów:::::::::::::::::::::::::::::::::::::::::::-->
         <?
    if ($_GET['id']=="wp")
    {
        
    ?><center><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
        <td bgcolor="white" align="center"><div style="height: 150px; overflow: auto">
    <? //:::::::::::::::::::::::::::::::::::::::::eyśiwtlenie wpisów::::::::::::::::::::::::::
              
    $qr=mysql_query("SELECT id,tytul,data_dodania,id FROM wpisy ORDER BY  data_dodania DESC LIMIT 10 ");
          while(
    $row=mysql_fetch_array($qr)){
            echo(
    "<b>"."<a href=admin1.php?id=wp&it=".$row['id'].">".$row['tytul']."</a>"."<p>".$row['data_dodania']."</p>"."</b>");
             }}
    ?> </div></td></table>
     <!--::::::::::::::::::::::::::::::::::::::::::::teraz czas na edycje wpisów:::::::::::::::::::::::::::::::::::::::::::-->
     <?
     
    if (($_GET['id']=="wp") && ($_GET['it'].=$row[id]) && (is_numeric($_GET['it'])))
     {
        
    ?><TABLE BORDER="2" WIDTH="100%" height="30%" CELLSPACING="2" CELLPADDING="10">
        <td bgcolor="white" align="center">
     <p><form action="admin1.php?id=wp&it=<? echo $_GET['it'];?>" method="post">
        <textarea cols="15" rows="1" name="tyt" value="<? echo $_POST['tyt']; ?>"/>
         <? //::::::::::::wyświetlenie tytułka::::::::::::::::::::::::::::::::::
             
    $g=("SELECT tytul  FROM wpisy WHERE id='$_GET[it]'");
               
    $r=mysql_query($g);
                  while(
    $tw=mysql_fetch_array($r))
                     echo(
    $tw['tytul']);
                        
    ?></textarea><br>
        <textarea cols="40" rows="5" name="tre" value="<? echo $_POST['tre']; ?>"/>
         <? //:::::::::::::::::::::::wyświetlenie tresci:::::::::::::::::::::::::
             
    $gr=("SELECT tresc  FROM wpisy WHERE id='$_GET[it]'");
               
    $re=mysql_query($gr);
                  while(
    $tow=mysql_fetch_array($re))
                     echo(
    $tow['tresc']);
                        
    ?></textarea>
          <input type="submit" value="go"> </form>
           <? }
      
    //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::teraz wysłanie tej kupki do bazy;:::::::::::::::::::::::::::
    if(isset($_GET['it']) && ($_POST['tre']) && ($_POST['tyt']))
       {
              
    $qe=("UPDATE wpisy SET tytul='$_POST[tyt]' ,tresc='$_POST[tre]' WHERE id='$_GET[it]'");
          
    mysql_query($qe);
            }
           
    ?>
    brakowało tylko echa w znaczniku <form action
    wypas jeszce tylko sprawdzanie zmienych potem archiwu komentarze ,ubranie tego w śiwecidełka
    i mozna przejśc do następnego działu
    Ostatnio edytowane przez ble34 : 04-27-2007 - 20:04

Podobne wątki

  1. MySQL poszukiwania zaginionej arki :)
    By szpuni in forum Bazy danych
    Odpowiedzi: 5
    Autor: 10-25-2008, 21:45
  2. mysql ?????
    By ble34 in forum PHP/CGI/ASP/JSP/J2EE
    Odpowiedzi: 6
    Autor: 04-23-2007, 23:27

Zasady Postowania

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •  
Subskrybuj