Problem z $_POST

Problemy związane ze stronami PHP

Problem z $_POST

Postprzez elektronik666 » Pn maja 09, 11 18:59

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ź.
Ostatnio edytowano N cze 12, 11 21:36 przez elektronik666, łącznie edytowano 1 raz
elektronik666
 
Posty: 3
Dołączył(a): Pn maja 09, 11 18:55

Re: Problem z $_POST

Postprzez dpkradom » Pn maja 09, 11 23:03

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.
dpkradom
 
Posty: 111
Dołączył(a): Cz maja 05, 11 18:41
Lokalizacja: Radom

Re: Problem z $_POST

Postprzez elektronik666 » Wt maja 10, 11 16:00

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ć....
elektronik666
 
Posty: 3
Dołączył(a): Pn maja 09, 11 18:55

Re: Problem z $_POST

Postprzez dpkradom » Wt maja 10, 11 18:30

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).
Ostatnio edytowano Wt maja 10, 11 19:15 przez dpkradom, łącznie edytowano 1 raz
dpkradom
 
Posty: 111
Dołączył(a): Cz maja 05, 11 18:41
Lokalizacja: Radom

Re: Problem z $_POST

Postprzez elektronik666 » Wt maja 10, 11 18:53

Dzięki wielkie !
A co najciekawsze działało na lokalnym :D
elektronik666
 
Posty: 3
Dołączył(a): Pn maja 09, 11 18:55

Re: Problem z $_POST

Postprzez dpkradom » Wt maja 10, 11 18:56

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ć.
dpkradom
 
Posty: 111
Dołączył(a): Cz maja 05, 11 18:41
Lokalizacja: Radom

Re: Problem z $_POST

Postprzez Marcinio77 » N paź 16, 11 17:58

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.
Marcinio77
 
Posty: 7
Dołączył(a): N paź 16, 11 17:18

Re: Problem z $_POST

Postprzez wargo » N paź 16, 11 20:26

Korzystaj z tablicy $_POST['nazwapola']
wargo
 
Posty: 1353
Dołączył(a): Cz lip 05, 07 16:59
Lokalizacja: Pleszew

Re: Problem z $_POST

Postprzez Marcinio77 » Pn paź 17, 11 15:07

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
Marcinio77
 
Posty: 7
Dołączył(a): N paź 16, 11 17:18

Re: Problem z $_POST

Postprzez Marcinio77 » Wt paź 18, 11 15:34

Nikt nie pomoże?.. :<
Marcinio77
 
Posty: 7
Dołączył(a): N paź 16, 11 17:18

Re: Problem z $_POST

Postprzez wargo » Wt paź 18, 11 18:05

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?
wargo
 
Posty: 1353
Dołączył(a): Cz lip 05, 07 16:59
Lokalizacja: Pleszew

Re: Problem z $_POST

Postprzez Marcinio77 » Wt paź 18, 11 22:13

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. :)
Marcinio77
 
Posty: 7
Dołączył(a): N paź 16, 11 17:18

Re: Problem z $_POST

Postprzez wargo » Śr paź 19, 11 18:06

Teraz pokazujesz wyświetlanie. A rozumiem że po otwarciu pliku tekstowego nie masz w nim nic?
wargo
 
Posty: 1353
Dołączył(a): Cz lip 05, 07 16:59
Lokalizacja: Pleszew

Re: Problem z $_POST

Postprzez Marcinio77 » Śr paź 19, 11 22:16

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ł. :)
Marcinio77
 
Posty: 7
Dołączył(a): N paź 16, 11 17:18


Powrót do PHP

Copyright © 2007-2011 ugu.pl
Wszelkie prawa zastrzeżone.
Polityka prywatności

cron