Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem Idhttp i php skripta

[es] :: Pascal / Delphi / Kylix :: Problem Idhttp i php skripta

Strane: 1 2

[ Pregleda: 3061 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Problem Idhttp i php skripta06.03.2017. u 03:00 - pre 86 meseci
Potrebno mi je da iz delphija sa idhttp komponentom izvršim pretragu u ovoj php skripti ali mi ne vraća podatke ispravno
nego mi vrati kod iz skripte u Memo1, a kada pokrenem skriptu u localhostu u browseru i unesem (id) onda mi u labelu prikaže ime korisnika kako treba. Kako da prikažem rezultat pretrage to jest u ovom slučaju (Ime korisnika) šta nije u redu ?

Delphi Search.pas
Code:

procedure TForm1.Button1Click(Sender: TObject);
var
data: TIdMultiPartFormDataStream;
   begin
   data:= TIdMultiPartFormDataStream.Create;
   try
   data.AddFormField('id',Edit1.Text);
   data.AddFormField('search','Pronadji');
   IdHTTP1.HandleRedirects:=True;
   IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
   Memo1.Lines.Text:= IdHTTP1.Post('http://localhost/search.php?id=', data);
   finally
   data.Free;
   end;
end;


PHP search.php
Code:

<?php
$dsn = 'mysql:host=localhost;dbname=test_db';
$username = 'root';
$password = '';

try{
    // Povezivanje sa MySQL bazom
    $con = new PDO($dsn,$username,$password);
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (Exception $ex) {

    echo 'Nije povezan !'.$ex->getMessage();

}

$id = '';
$ime = '';
function getPosts()
{
    $posts = array();

    $posts[0] = $_POST['id'];
    $posts[1] = $_POST['ime'];
    return $posts;
}

//Traži i prikaži podatke

if(isset($_POST['search']))
{
    $data = getPosts();
    if(empty($data[0]))
    {
        echo 'Unesite (Id) korisnika za pretragu !';
    }  else {

        $searchStmt = $con->prepare('SELECT * FROM korisnici WHERE id = :id');
        $searchStmt->execute(array(
        ':id'=> $data[0]
        ));

        if($searchStmt)

            $user = $searchStmt->fetch();

            if(empty($user))
            {
              echo 'Nema podataka za ovaj (Id) !';
            }

            $id    = $user[0];
            $ime = $user[1];

        }

    }
?>
<!DOCTYPE html>
<html>
<head>
<title>Pretraga</title>
<style type="text/css">
</style>
</head>
<body>
<form action="search.php" method="POST"><br>
<input type="text" name="id" placeholder="Id" value="<?php echo $id;?>"><br><br>
Ime:<font color="green"><label for="fname"><?php echo $ime;?></label></font><br><br>
<input type="submit" style= "cursor:pointer" name="search" value="Pronadji">
</form>
</body>
</html>

Boban
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem Idhttp i php skripta06.03.2017. u 03:21 - pre 86 meseci
> Potrebno mi je da iz delphija sa idhttp komponentom izvršim pretragu u ovoj php skripti ali mi ne vraća
> podatke ispravno
> nego mi vrati kod iz skripte u Memo1, a kada pokrenem skriptu u localhostu u browseru i unesem (id) onda mi u
> labelu prikaže ime korisnika kako treba. Kako da prikažem rezultat pretrage to jest u ovom slučaju (Ime korisnika) šta nije u redu ?

Instaliraj wireshark (ili nešto drugo slično) i uporedi kako izgleda header i body requesta koji šalje browser a kako izgleda kad šalje tvoj program. Verovatno to možeš dobiti i u PHPu ali ne znam kako.
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta06.03.2017. u 11:41 - pre 86 meseci
Za header:

Code:
<?
foreach (getallheaders() as $name => $value) {
echo "$name: $value\n";
}
?>

F
 
Odgovor na temu

_deran_

Član broj: 69493
Poruke: 252
*.dynamic.sbb.rs.



+1 Profil

icon Re: Problem Idhttp i php skripta07.03.2017. u 20:32 - pre 85 meseci
Citat:
...nego mi vrati kod iz skripte u Memo1

U memo ti vrati baš PHP kod ili HTML koji je generisan?

Kod 'http://localhost/search.php?id=' , deo "?id=" je višak mada ne bi trebalo da smeta.
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 06:59 - pre 85 meseci
Hvala na odgovorima ali i dalje pokušavam da nadjem rešenje i ništa.
Probao sam i bez onog id= ali mi isto vraća kompletan kod umesto samo traženi podatak.

Evo koji prikaz dobijam u memo:
Code:

<!DOCTYPE html>
<html>
<head>
<title>Pretraga</title>
<style type="text/css">
</style>
</head>
<body>
<form action="search.php" method="POST"><br>
<input type="text" name="id" placeholder="Unesite (Id)" value="13"><br><br>
Ime: <font color="#f44336"><label for="fname">boban</label></font><br><br><br>
<input type="submit" name="search" value="Pronadji"><br><br>

</form>
</body>
</html>

Nije prikazalo ceo kod na osnovu onog gornjeg kao sto je u skripti nego samo deo koda.
A ovo što je na kraju koda u labelu (boban) to je vratilo to mi i treba ali samo to a ne i ostali kod.
Sve sam pokušavao što sam se setio i nigde rešenja.
A sa ovim istim kodom u delphiju a skriptom ovom:
Code:

<?php
 echo "Pozdrav !!!";
?>

onda mi vrati samo 'Pozdrav !!!' kako bih i trebalo.
Ako neko ima još neko rešenje za ovo uvek dobrodošlo a ja ću u medjuvremenu i dalje isprobavati i guglati na netu.
A evo kako mi prikazuje u web browser-u:





[Ovu poruku je menjao bobans72 dana 10.03.2017. u 08:15 GMT+1]
Boban
Prikačeni fajlovi
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 11:24 - pre 85 meseci
Jesi probao dodati parametar response?

npr.

Code (delphi):
procedure TForm1.Button1Click(Sender: TObject);
var
data: TIdMultiPartFormDataStream;
sResponse: TStringList;
   begin
   sResponse := TStringStream.Create;
   data:= TIdMultiPartFormDataStream.Create;
   try
   data.AddFormField('id',Edit1.Text);
   data.AddFormField('search','Pronadji');
   IdHTTP1.HandleRedirects:=True;
   IdHTTP1.Request.ContentType:='application/x-www-form-urlencoded';
   Memo1.Lines.Text:= IdHTTP1.Post('http://localhost/search.php?id=', data, sResponse);
   finally
   data.Free;
   end;
end;


i onda pogledaj šta dobiješ u response.
F
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 11:26 - pre 85 meseci
I pogledaj ovo, liči mi na tvoj problem:

idhhtp post
F
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 13:25 - pre 85 meseci
Probao sam to juče a i sada ponovo tako da sada i ne vraca ono (boban) nego samo kod.
Boban
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 13:53 - pre 85 meseci
A zasto uopce tako radis? Odvoji html dio od php. U php vrati rezultat i dobit ces u echo samo ime.
A zasto uopce imas html dio? Ta pretraga ti treba i na webu?
F
 
Odgovor na temu

savkic
Igor Savkić

Moderator
Član broj: 92186
Poruke: 2739



+92 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 13:55 - pre 85 meseci
> Probao sam to juče a i sada ponovo tako da sada i ne vraca ono (boban) nego samo kod.

Ako sam ja dobro shvatio tebi radi iz browsera a ne radi iz tvog koda, ako je to tacno tebi ne treba odgovor iz tvoje php skripte vec sta je poslato php skripti.

Dakle, instaliraj WireShark:
1) startuj primer iz browsera i zabelezi sta je browser poslao
2) startuj primer iz tvog koda i zabelezi sta je tvoj program poslao
3) uporedi sacuvani sadrzaj iz 1) i 2), vidi sta su razlike i pogledaj sta u tvom kodu nedostaje.
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 15:16 - pre 85 meseci
Html deo mi nije potreban samo mi treba da iz delphija sa idhttp komponentom unosom (id) preko php skripte vrati podatke (Ime) iz baze.
html deo sam izbacivao ali mi nije ostali deo radio.
Šta bih trebao da ispravim u onom gore php-u ili on nije u upotrebi ?
Hvala ponovo na odgovorima.
A ono sa wiresharkom ću probati.
Boban
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 15:29 - pre 85 meseci
Cim dodjem za komp ti posaljem primjer koji radi. Html dio ti uopce ne treba.
F
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 15:33 - pre 85 meseci
Hvala lepo čekam primer.
Boban
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 16:17 - pre 85 meseci
Evo prvo šta sam izvukao iz svog koda i pojednostavio, mislim da če ti biti dovoljno za ono šta tebi treba. Ako se ne snađeš reci, pa pojasnim.

Delphi:

Code (delphi):

  function PostData(id, name, surname, country, dob, phone, mail, pb, place, address, part, spol: string): string;
  var
    lHTTP: TIdHTTP;
    lParamList: TStringList;
  begin
    lParamList := TStringList.Create;
    lParamList.Add('id=' + id);
    lParamList.Add('name=' + UTF8Encode(name));
    lParamList.Add('surname=' + UTF8Encode(surname));
    lParamList.Add('country=' + country);
    lParamList.Add('dob=' + dob);
    lParamList.Add('phone=' + phone);
    lParamList.Add('mail=' + mail);
    lParamList.Add('pb=' + pb);
    lParamList.Add('place=' + place);
    lParamList.Add('address=' + address);
    lParamList.Add('part=' + part);
    lParamList.Add('spol=' + spol);

    lHTTP := TIdHTTP.Create(nil);
    try
      Result := lHTTP.Post('http://test.olis.hr/swim.php', lParamList);
    finally
      lHTTP.Free;
      lParamList.Free;
    end;
  end;

var
  status: TStatusWindowHandle;
  d, m, y: Word;
  tempDate, tempSpol: string;
begin
  status := CreateStatusWindow('Molim pričekajte...');

  try
    dmSwimm.trSwimm.Active := true;

    with dmSwimm.dsetSwimmers do
    begin

      close;
      selectSQL.Text := 'select * from swimmers where updated = ''0'' ';
      open;
      first;

      while not EOF do
      begin
        edit;

        try
          tempDate := FieldByName('godina').AsString + '-01-01';
        except
          tempDate := '1900-01-01';
        end;

        tempSpol := 'M';
        if FieldByName('SPOL').AsString = '2' then
          tempSpol := 'F';


        if PostData(FieldByName('id').AsString,
          FieldByName('name').AsString,
          FieldByName('surname').AsString,
          FieldByName('country').AsString,
          tempDate,
          FieldByName('phone').AsString,
          FieldByName('mail').AsString,
          FieldByName('pb').AsString,
          FieldByName('place').AsString,
          FieldByName('address').AsString,
          FieldByName('part').AsString,
          tempSpol) = 'TRUE' then
          dmSwimm.dsetSwimmers.FieldByName('UPDATED').AsString := '1';

        post;
        next;
      end;

    end;

    dmSwimm.trSwimm.Commit;
    dmSwimm.trSwimm.Active := true;

  finally
    RemoveStatusWindow(status);
  end;


PHP:

Code (php):
<?
require "config.php";

$db = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
mysql_select_db($db_name) or die(mysql_error());

$ID    = $_POST["id"];
$NAME  = $_POST["name"];
$SURNAME  = $_POST["surname"];
$COUNTRY  = $_POST["country"];
$DOB  = $_POST["dob"];
$PHONE  = $_POST["phone"];
$MAIL  = $_POST["mail"];
$PB  = $_POST["pb"];
$PLACE  = $_POST["place"];
$ADDRESS  = $_POST["address"];
$PART  = $_POST["part"];
$SPOL  = $_POST["spol"];

$strSQL = "REPLACE INTO swimmers (ID, NAME, SURNAME, COUNTRY, DOB, PHONE, MAIL, PB, PLACE, ADDRESS, PART, SPOL) VALUES ('" . $ID . "', '" . $NAME . "', '" . $SURNAME . "', ";
$strSQL = $strSQL . "'" . $COUNTRY . "', '" . $DOB . "', '" . $PHONE . "', ";
$strSQL = $strSQL . "'" . $MAIL . "', '" . $PB . "', '" . $PLACE . "', ";
$strSQL = $strSQL . "'" . $ADDRESS . "', '" . $PART . "', '" . $SPOL . "') ";

$objQuery = mysql_query($strSQL);

if ($objQuery) {
    echo "TRUE";
} else {
    echo "FALSE";
}
?>

F
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 17:32 - pre 85 meseci
Evo kako sam ovo prepravio ali ne radi prikazuje grešku u delphi-ju (HTTP/1.1 500 Internal Server Error.).
A kada pokrenem php skriptu u web browseru prikaže mi (Stranica hosta localhost ne funkcioniše Host localhost trenutno ne može da obradi ovaj zahtev. HTTPERROR 500).
Bazu koristim preko phpmyadmin a host je sada trenutno localhost a biće postavljena php skripta sa bazom na drugom serveru pa sam jedan deo tvog koda iz delphija
izostavio možda je tu greška.

Delpi code:

Code:

procedure TForm1.Button3Click(Sender: TObject);
 var
    lHTTP: TIdHTTP;
    lParamList: TStringList;
  begin
    lParamList := TStringList.Create;
    lParamList.Add('id=' + Edit1.Text);

    lHTTP := TIdHTTP.Create(nil);
    try
      Memo1.Lines.Text := lHTTP.Post('http://localhost/search.php', lParamList);
    finally
      lHTTP.Free;
      lParamList.Free;
    end;
end;


PHP code:

Code:

<?php
   $db_host = 'localhost';
   $db_user = 'root';
   $db_pass = '';
   $db_name = 'test_db';

$db = mysql_connect($db_host, $db_user, $db_pass) or die('Ne mogu se povezati: ' .mysql_error());
mysql_select_db($db_name) or die(mysql_error());

$ID    = $_POST["id"];
$NAME  = $_POST["fname"];


$strSQL = "REPLACE INTO korisnici (ID, NAME) VALUES ('" . $ID . "', '" . $NAME ."') ";

$objQuery = mysql_query($strSQL);

if ($objQuery) {
    echo "TRUE";
} else {
    echo "FALSE";
}
?>



[Ovu poruku je menjao bobans72 dana 10.03.2017. u 18:45 GMT+1]
Boban
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 17:47 - pre 85 meseci
Vrlo vjerojatno neka caka sa sigurnosti oko localhosta. Ovo šta vidim bi moralo radiit. Ako hočeš pošaljem ti na privatnu poruku pristup do mojeg hosta sa test bazom pa da možeš isprobati?
F
 
Odgovor na temu

bobans72

Član broj: 314360
Poruke: 117



Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 18:15 - pre 85 meseci
Može svaka pomoć dobrodošla.

A unosom u editu u delphiju ovaj broj (12345) mi vraća u memo broj 12345 kako bih ovaj kod mogao da primenim sa bazom da vuče uneti (id) koji se nalazi u bazi
a da mi vrati (ime) to mi treba a mislim da bih to mogao samo neki search u php kodu a bez onog inputa za unos u html-u to ne znam kako bih moglo da se napiše.

Code:

<?php
if ($_POST['id']== 12345)
{
   echo "Vraćeni broj {$_POST['id']} je ispravan !";
}
else
{
   echo "Nije dozvoljeno !!!";
}
?>

Boban
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 20:16 - pre 85 meseci
Napravit ču ti account i test bazu kod sebe i poslati ti podatke za pristup. 20ak minuta.

Napraviš select ime from tablename where id = :id i staviš ime u varijablu $ime kako sam dolje dao primjer, i onda echo $ime

Code (php):
<?php
   require 'config.php';
   
   $db = mysql_connect($db_host, $db_user, $db_pass) or die(mysql_error());
   mysql_select_db($db_name) or die(mysql_error());
   
   $query = "SELECT res.*, CONCAT(sw.NAME, ' ', sw.SURNAME, ' (', sw.COUNTRY, ')') as FULLNAME FROM results res LEFT JOIN swimmers sw ON ";
   $query = $query . "res.ID = sw.ID WHERE ";
   $query = $query . "res.TYPE <> 'c' AND res.IDACTIVE = '1' ORDER BY res.PASSTIME DESC";
   $result = mysql_query($query);
   
   function klasa($point_value) {
        if ($point_value == '0') return 'START';
        if ($point_value == '1') return '1500';
        if ($point_value == '2') return '3000';
        if ($point_value == '3') return '5000';
   }
   
   print "
     <thead>
          <tr>
               <th class='text-center'>ID</th>
               <th class='text-left'>Name</th>
          <th class='text-center'>Point</th>
          <th class='text-center'>Time</th>
          <th class='text-center'>Race time</th>
          </tr>
   </thead>
   <tbody class='table-hover'>"
;
   
          while($row = mysql_fetch_array($result))
          {
               echo "<tr><td class='text-center'>" . $row['ID'] . "</td>";
          echo "<td class='text-left'>" . $row['FULLNAME'] . "</td>";
          echo "<td class='text-center'>" . klasa($row['POINT']) . "</td>";
          echo "<td class='text-center'>" . $row['VRIJEME'] . "</td>";
          echo "<td class='text-center'>" . $row['ID'] . "</td></tr>";
          }
   mysql_close();
   print " </tbody>";
   ?>

F
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 20:23 - pre 85 meseci
Ustvari, pošalji mi svoj php file, ja ču ti sve postaviti i reči ti koji url da postaviš. Možeš i na PM
F
 
Odgovor na temu

captPicard
programer
more i planine

Član broj: 216084
Poruke: 1119



+19 Profil

icon Re: Problem Idhttp i php skripta10.03.2017. u 20:31 - pre 85 meseci
Evo ti:

Code:
http://www.olis.hr/bobans/upit.php?id=1


Imaš unutra 2 unosa,

1 boban
123 ivan
F
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Problem Idhttp i php skripta

Strane: 1 2

[ Pregleda: 3061 | Odgovora: 22 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.