Strona 1 z 1

Problem z $_POST

PostNapisane: Pn maja 09, 11 18:59
przez elektronik666
Witam
Na mojej stronie mam problem gdyż nie mogę przekazać danych z formularza html do php za pomocą $_POST. Zmienna ta po kliknięciu przycisku wyślij(submit) formularza przekierowuje do poprawnego pliku lecz zmienna ta jest pusta.
Problem nie występuje na moim serwerze lokalnym (webserw).
Może miał ktoś podobny problem ?
Z góry dziękuję za odpowiedź.

Re: Problem z $_POST

PostNapisane: Pn maja 09, 11 23:03
przez dpkradom
Pokaż jaki masz formularz i jaki masz skrypt odczytujący z $_POST['zmienna']. Mówisz że na lokalnym działa ... Może zapomniałeś o nawiasach ' ' lub " ", ja miałem tak z jakimś skryptem, ale nie tu. Daj kody źródłowe.

Re: Problem z $_POST

PostNapisane: Wt maja 10, 11 16:00
przez elektronik666
Kod: Zaznacz cały
<center>
<form action="wynikiwyszukiwania.php" method="POST">
<input type="text" name="szukaj" />
<input type="submit" value="Szukaj!" />
</form>
</center>


PHP
Kod: Zaznacz cały
<?php
$_POST[szukaj] .= $szukaj;
$tabela1 .= 'artykuly';
$tabela2 .= 'tytul';
$poletabeli .= 'tresc';

   $slowa = explode(' ',$szukaj]);                      //podzielenie zmiennej na słowa i przypisanie do tablicy $slowa
      
      echo '<b>Wyniki wyszukiwania dla frazy: </b>';
      $n = count($slowa);                         //przypisanie zmiennej n ilość liczbową elementów tablicy
      for ($i=0;$i<$n; $i++)                        //wyświetlenie za każdym obiegiem pętli kolejnego elementu tablicy
      
      echo $slowa[$i].' ';                        // wyświetlenie elementu tablicy
?>





Chyba wiem o co chodzi - o przypisanie zmiennej z POST do innej i właśnie tam jest problem, jakby niechciał jej przypisać....

Re: Problem z $_POST

PostNapisane: Wt maja 10, 11 18:30
przez dpkradom
Kod: Zaznacz cały
$_POST[szukaj] .= $szukaj;

A nie ??
Kod: Zaznacz cały
$szukaj = $_POST['szukaj'];

Tłumacząc: przypisz $szukaj to co masz w zmiennej $_POST['szukaj']
Powinno śmigać, coś zmieniłeś kolejność :) zdarza się

." -> łączysz jakieś łańcuchy znaków ?? Według mnie powinno być bez kropek (wszędzie).

Re: Problem z $_POST

PostNapisane: Wt maja 10, 11 18:53
przez elektronik666
Dzięki wielkie !
A co najciekawsze działało na lokalnym :D

Re: Problem z $_POST

PostNapisane: Wt maja 10, 11 18:56
przez dpkradom
Nie ma problemu. Będę tu częściej zaglądał. Akurat działam w branży :) Także w razie pytań, postaram się na nie odpowiedzieć.

Re: Problem z $_POST

PostNapisane: N paź 16, 11 17:58
przez Marcinio77
Mam podobny problem ze swoją księgą gości.

Otóż po wpisaniu danych do formularza:

Kod: Zaznacz cały
<form action="kg.php?id=2" method="post">
   
   Autor: &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
   <input type="text" size="30" maxlength="30" name="Autor"><br><br>
   E-mail: &nbsp; &nbsp; &nbsp; &nbsp;
   <input type="text" size="30" maxlength="30" name="adres"><br><br>
   Plemię:  &nbsp; &nbsp; &nbsp; &nbsp;
   <input type="text" size="30" maxlength="30" name="plemie"><br><br>
<font size="2">(pola adres e-mail i plemię mogą pozostać puste)</font><br><br>
   <textarea name="Tresc" wrap cols=40 rows=5 >Tu możesz wpisać treść ;)</textarea><br><br><br> &nbsp;  &nbsp;  &nbsp; 
   <input type=submit value= " Wyślij "> &nbsp;  &nbsp;  &nbsp; 
   <input type="reset"  value=" Wyczyść " >
   </form>


plik najprawdopodobniej nie chce zapisywać wpisów w pliku wpisy.txt i traktuje to, jako niewypełnienie pól. Wyświetla się "Nie wypełniłeś wszystkich pól".

Kod: Zaznacz cały
if ($_GET['id'] == 2) {

  if (($Autor=="") or ($Tresc==""))   // warunek, który wymaga wypełnienie pól "Ator" i "Treść"
  {
  echo("<br><br><p>Nie widzę wypełnionego pola AUTOR lub pola TREŚĆ ^</p>");
  echo("<br><br><p><a href=\"kg.php?id=1\">Spróbuj ponownie</a></p>");
  echo("<p><a href=\"kg.php\">Powrót do księgi</a></p>");
  echo("<p><a href=\"index.html\">Strona główna</a></p>");
  exit;
  }

//tu niżej obrabia sie wpis przez usuniecie ewentualnych znakow niebezpiecznych,
//a enter zamienia sie na przejscie do nowej linii 
  $Tresc = ereg_replace("<","&lt;", $Tresc);
  $Tresc = ereg_replace(">","&gt;", $Tresc);
  $Tresc = ereg_replace("\n", "<br>", $Tresc);
 
  $Autor = $_POST['Autor']; //nawet wpisałem by wysyłało dane z każdego pola formularza z osobna i też nie działa :(
  $adres = $_POST['adres'];
  $plemie = $_POST['plemie'];
  $Tresc = $_POST['Tresc'];
 
  $nazwa = "wpisy.txt"; //wpisy ksiegi gosci pamietane powinny być w pliku o nazwie wpisy.txt - ale nie są pamiętane! :(((

if (
  $wpis = "<i>".date("d.m.Y")." &nbsp; &nbsp; g. ".date("H.i")."</i><br><b>$Autor<br> <a href=\"mailto:$adres\">$adres</a> <br>$plemie<br></b> $Tresc\n" 
  );

  $myFile = fopen($nazwa, "r+");
  $wpis=$wpis.fread($myFile, filesize($nazwa));
  rewind($myFile);
  fputs($myFile, $wpis);
  fclose($myFile); //operacje z plikiem tekstowym, a de facto sprawia wrażenie, jakby nic nie robił i nie zapisywał :(
   
  echo "<br><br><p><b>Dziękujemy za Twój wpis,</b></p><br> " . htmlspecialchars($_POST["Autor"]) . '!';
  echo("<br><br><p><a href=\"kg.php\">Zerknij na swój wpis</a></p>");


Czy coś jest nie halo z którymś z powyższych zapisów? Proszę o pomoc.

Re: Problem z $_POST

PostNapisane: N paź 16, 11 20:26
przez wargo
Korzystaj z tablicy $_POST['nazwapola']

Re: Problem z $_POST

PostNapisane: Pn paź 17, 11 15:07
przez Marcinio77
wargo napisał(a):Korzystaj z tablicy $_POST['nazwapola']

Przecież jest ta tablica. Podałem ją także w powyższym poście.
Bo rozumiem, że chodzi o to:

Kod: Zaznacz cały
$Autor = $_POST['Autor'];
  $adres = $_POST['adres'];
  $plemie = $_POST['plemie'];
  $Tresc = $_POST['Tresc'];


, tak?

Może po prostu jest w złym miejscu wstawiona?.. Ale przecież to global, więc wydaje mi się, że miejsce nie powinno mieć takiego znaczenia... Obrazek

Re: Problem z $_POST

PostNapisane: Wt paź 18, 11 15:34
przez Marcinio77
Nikt nie pomoże?.. :<

Re: Problem z $_POST

PostNapisane: Wt paź 18, 11 18:05
przez wargo
Może spróbuj:
Kod: Zaznacz cały
$myFile fopen($nazwa"a");
  
fwrite($myFile$wpis);
  
fclose($myFile); 
Czy nadałeś prawa chmod 777 na ten plik?

Re: Problem z $_POST

PostNapisane: Wt paź 18, 11 22:13
przez Marcinio77
wargo napisał(a):Może spróbuj:
Kod: Zaznacz cały
$myFile = fopen($nazwa, "a");
  fwrite($myFile, $wpis);
  fclose($myFile);  

Bez pętli while? Bo mam coś takiego:

Kod: Zaznacz cały
$myFile = fopen($nazwa, "r");
  $i=0;
  while(!feof($myFile))  {
     $myLine = fgets($myFile, 2000);
     $i++; 
   
}
echo "<HR color=#000000 width=\"300\"><BR>";
  $nazwa = "wpisy.txt";
  $myFile = fopen($nazwa, "r");
  $k=1;
  $end=$st+9;
  while(!feof($myFile))   // dopóki nie jest koniec pliku - drukowanie po jednym wpisie: 1 wpis = 1 linia pliku
   {        // ale 1 linia pliku ma już w sobie format w jakim jest drukowana - zajmuje kilka linii - linijka nr 139
     $myLine = fgets($myFile, 2000);
     if ($k>=$st) {
        if ($k<=$end) {
                     
                echo
("<p>$myLine</p><HR color=#000000 width=\"300\"><br>");           
        
};
     };
     $k++;
   }
  fclose($myFile);
  echo(" &nbsp; $i<br><br></b>"); // drukowańsko liczby wpisow;  


wargo napisał(a):Czy nadałeś prawa chmod 777 na ten plik?
Tak. Nawet plik tekstowy też ma uprawnienia 777 dla pewności. :)

Re: Problem z $_POST

PostNapisane: Śr paź 19, 11 18:06
przez wargo
Teraz pokazujesz wyświetlanie. A rozumiem że po otwarciu pliku tekstowego nie masz w nim nic?

Re: Problem z $_POST

PostNapisane: Śr paź 19, 11 22:16
przez Marcinio77
Dzięki, Wergo, za chęć pomocy. :D
Ostatecznie udało się rozwiązać problem. :)
Głowiłem się ponad tydzień nad tym feralnym plikiem, w końcu wywiesiłem białą chorągiewkę i zdałem się na pomoc znajomego. Powinienem się wstydzić, bo jemu zajęło to zaledwie jeden wieczór. :oops: ;)

W 110 linijce było tak:

Kod: Zaznacz cały
if (($Autor=="") or ($Tresc==""))  // warunek, który wymaga wypełnienie pól "Autor" i "Treść"     


Powinno być w ten deseń:

Kod: Zaznacz cały
if (($_POST['Autor']=="") or ($_POST['Tresc']==""))   // warunek, który wymaga wypełnienie pól "Autor" i "Treść"     


Okazuje się, że oprócz tabeli z $_POST odnoszącej się do każdego pola formularza, zmienna $_POST musi się też pojawić w instrukcji warunkowej wymagającej wypełnienie pól "Autor" i "Treść".

Za cholerę bym na to nie wpadł. :)