IdHttp i metoda POST.

0

witam wszystkich mam skrypt php : (kawałek kodu)

  $login = trim($_POST['login']);
  $haslo = trim($_POST['haslo']);
  $poziom = trim($_POST['poziom']);
  $userid = trim($_POST['userid']);
  
  if((($login!='') AND ($haslo!=''))) {
        $zapytanie = "INSERT INTO konta(login,haslo,poziom,userid) VALUES ('$login','$haslo','$poziom','$userid')";
        $wyslij = mysql_query($zapytanie);

i chciałbym aby mój program wysyłał do niego te dane login,haslo prosiłbym o jakiś tutek .... tylko sie zastanawiam jak to działa i czy na stronie z tym skryptem muszę mieć formularz ? czy wystarczy sam skrypt php ?

0

Skrypt jest niebezpieczny, podatny na SQL injection, co do INDY i metody POST jest w demach dostarczonych z pakietem i pokazane jego użycie, na tej stronie jest co najmniej kilka artów opisujących jak to zrobić tylko trzeba sobie poszukać.

0

Wiem że jest podatny bo dopiero go pisze zabezpiecze na koniec jak juz bedzie wszystko działać tylko chodziło mi czy musi być na stronie ten formularz co sie wpisuje czy co bo nie wiem dokładnie jak delphi7 będzie to wykonywało

0

Nie trzeba tworzyć formularza HTML jeśli o taki formularz ci chodzi. Przeczytaj jak działa protokół HTTP albo po prostu odszukaj przykłąd użycia IdHTTP to wszystko się powinno wyjaśnić.

0

No dobra ale mam teraz problem pewien: wchodzę na ten skrypt na mojej stronie w ten sposób : www.strona.pl/skrypt.php?login=asd&haslo=asd po wykonaniu takiej czynnosci powinno dodac mi login i haslo do bazy a nic nie dodaje wiesz moze czym to jest spowodowane ? jeżeli wykonam to przez formularz html to normalnie doda do bazy ;o

0

Wygląda na to, że chcesz przesłać to metodą GET a nie POST pokaż skrypt i kod programu

0
<? 
$dbhost = '';
$dbuser = ''; 
$dbpass = ''; 
$dbname = ''; 
 

$dbc = @mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie moge połączyć sie z bazą danych.');
mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy z kłopoty');

if(isset($submit))
{
  $login = trim($_POST['login']);
  $haslo = trim($_POST['haslo']);
  $poziom = trim($_POST['poziom']);
  $userid = trim($_POST['userid']);
  
  if((($login!='') AND ($haslo!=''))) {
        $zapytanie = "INSERT INTO konta(login,haslo,poziom,userid) VALUES ('$login','$haslo','$poziom','$userid')";
        $wyslij = mysql_query($zapytanie);
  }
  
  if ($result) echo " Dodane do bazy danych.";
}

mysql_close($dbc);
?>

To jest skrypt php, programu w delphi na razie nie pisałem bo próbowałem ogarnąc to jak działa ten POST w linku czy to metoda get nie wiem sam juz sie pomieszało mi :D

0

No to metoda POST pola przesyłane są w nagłówku a nie w adresie więc nie ściemniaj, że jak wkleisz ten link do przeglądarki to doda ci wpis. Przeczytaj ten art http://4programmers.net/Delphi/kompendium/Rozdział_11#id-Protok-HTTP lub ten http://4programmers.net/Delphi/Artykuły/HTTP masz tam wszystko pokazane.

0

nie okłamuję cie przez adres nie da się dodać wpisu lecz przez formularz się da czyli metodą get mogę przesyłać dane linkiem tak ??

0

Tak, jeżeli obsługuje to skrypt. Ale Ty musisz to zrobić metodą POST, o ile znam podstawy PHP. Co do wysyłania danych, wszystko jest opisany w dokumentacji Indy jak i dołączonych do pakietu przykładach. I o podstawy pytamy w dziale Newbie, tam też ten temat przenoszę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1