Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Problem z własnym systemem newsów
Forum PHP.pl > Forum > Przedszkole
dboss
Witam.

Na początku zaznaczę, że jestem początkujący, jeżeli chodzi o PHP. Napisałem ostatnio prosty system dodawania newsów (chociaż system dodawania newsów to za dużo powiedziane ;P). Lokalnie działa wszystko OK, jednak gdy zamieściłem go w Internecie to pojawił się duży problem. Wygląda to tak jakby skrypt nie dostawał danych z formularza. Takiego problemu nie było działając lokalnie.


Kod:

formularz (dodawanie.html)

  1. <form action="nowynews.php" method="post">
  2.  
  3. Tytuł: <input type="text" name="tytul" size=30><br><br>
  4. Treść: <input type="text" name="tresc"><br><br>
  5. Data: <input type="text" name="data" maxlength=10 size=10><br><br>
  6.  
  7. <input type=submit value="Wstaw do bazy">
  8. </form>


skrypt dodawania newsa do bazy (nowynews.php)
  1.      <?
  2.      if (!$tytul || !$tresc || !$data)
  3.      
  4.       {
  5.          echo "Nie zostały wypełnione wszystkie pola";
  6.          echo ('<a href="dodawanie.php">Powrót</a>');
  7.          exit;
  8.       }
  9.      
  10.      $tytul = addslashes($tytul);  
  11.      $tresc = addslashes($tresc);
  12.      $data = addslashes($data);
  13.      
  14.      $db = mysql_pconnect("adres", "użytkownik", "hasło");
  15.      if (!$db)  
  16.          {  
  17.          echo "Nie można połączyć się z bazą danych";
  18.          exit;
  19.          }
  20.      
  21.      mysql_select_db("nazwa_bazy_danych");
  22.      
  23.      $query = "insert into news values ('".$ID."', '".$tytul."', '".$tresc."', '".$data."')";
  24.      $result = mysql_query($query);
  25.      
  26.      if ($result)
  27.      echo "News o tytule <b>".$tytul."</b> został dodany do bazy danych.";
  28.      echo ('<a href="dodawanie.php">Powrót</a>');
  29.      
  30.      ?>


i miejsce wyświetlania (index.php)
  1.    <?
  2.    $db = mysql_pconnect("adres", "użytkownik", "hasło");
  3.    if (!$db)  
  4.        {     
  5.        echo "wystąpił błąd w połączeniu";     
  6.        exit;  
  7.        }  
  8.    
  9.    mysql_select_db("nazwa_bazy_danych"); 
  10.    
  11.    
  12.    
  13.    $query = "select * from news ORDER BY ID DESC"; 
  14.    $result = mysql_query($query);  
  15.    $num_results = mysql_num_rows($result);  
  16.     
  17.    for ($i=0; $i <$num_results; $i++)  {  
  18.        $row = mysql_fetch_array($result);    
  19.        echo stripslashes($row["ID"]);
  20.        echo stripslashes($row["tytul"]); 
  21.        echo stripslashes($row["tresc"]);
  22.        echo stripslashes($row["data"]);
  23.    }
  24.    ?>


Pomimo wypełnienia wszystkiego w formularzu pokazuje się komunikat "Nie zostały wypełnione wszystkie pola". Wygląda jakby nie dostał danych z formularza, jednak problem występuje tylko po zamieszczeniu w Internecie. Lokalnie jest OK. Macie pomysły, dlaczego nie chce działać po zamieszczeniu w sieci?
marcio
Masz register globals off wiec wszystkie zmienne z forma musisz pozmieniac z tego
  1. <?php
  2. if (!$tytul || !$tresc || !$data)
  3. ?>

Na takie cos
  1. <?php
  2. if (!$_POST['tytul'] || !$_POST['tresc'] || !$_POST['data'])
  3. ?>

Po 2 stosuj empty() do walidacji form';a
dboss
Dzięki wielkie. Wszystko już działa. biggrin.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.