2016-03-20 25 views
3

Çalışma KODU :)Bir html formunu kullanarak birden çok sütunta arama

Bunu yapmak için doğru yol bu mu? ya da daha fazla güvenlik kodu eksik miyim ??

Neler ters gitti? İlk koşul ise: if (isset ($ _ POST

i nasıl bilmiyorum ama bu liek işe wouln'd) {

The code.. 

} [ 'to'], bu yüzden değiştirdi Eğer tüm koşullar gerekirse, değil "veya"

Ama aşağıda koduna ve şimdi çalışıyor !! :)

<?php 

        if (isset($_POST['username']) || isset($_POST['locatie']) || isset($_POST['geslacht']) || isset($_POST['online'])) { 

         $name = mysqli_real_escape_string($server, $_POST['username']); 
         $waar = mysqli_real_escape_string($server, $_POST['locatie']); 
         $sex = mysqli_real_escape_string($server, $_POST['geslacht']); 
         $status = mysqli_real_escape_string($server, $_POST['online']); 

         $sql= "SELECT * FROM users WHERE 1=1"; 
          if (isset($_POST['username'])) { 
           $name = $_POST['username']; 
           $sql .= " and username LIKE '%$name%'"; 
          } 

          if (isset($_POST['locatie'])) { 
           $name = $_POST['locatie']; 
           $sql .= " and locatie LIKE '%$waar%'"; 
          } 

          if (isset($_POST['geslacht'])) { 
           $name = $_POST['geslacht']; 
           $sql .= " and geslacht LIKE '%$sex%'"; 
          } 

          if (isset($_POST['online'])) { 
           $name = $_POST['online']; 
           $sql .= " and online LIKE '%$status%'"; 
          } 

           $sql .= " ORDER BY RAND()"; 

         $result_set=mysqli_query($server,$sql) or die(mysqli_error($server)); 

          //echo $sql; 
          echo '<div class="col-sm-12">'; 

         while($row=mysqli_fetch_array($result_set)) { 
          echo '<div class="col-sm-2">'; 
          echo '<center><img class="img-vrienden" src=' . $row['prof_pic'] . ' /><br>' . $row['username'].'</center>'; 
          echo '</div>'; 
         } 
          echo '</div>'; 
        } 
       ?> 

cevap

2

Sen olamaz bir echo()echo() bir de:

echo '<img class="img-vrienden" src="echo $row["prof_pic"]" /><br> 
echo $row["username"]'; 

PHP concat operatörüdür . kullanarak değişken ile dize Concat gerekir:

echo '<img class="img-vrienden" src="' . $row["prof_pic"] . '" /><br>' . $row["username"]; 

<button> yerine <input type="submit" gerekir.

Bu:

<button name="submit" type="submit" class="button"> 

olmalı:

<input type="submit" name"submit"> 

Not: kod SQL Enjeksiyon karşı savunmasızdır, mysqli_real_escape_string kullanarak giriş kaçmak için iyidir:

$name = mysqli_real_escape_string($server, $_POST['username']); 
$waar = mysqli_real_escape_string($server, $_POST['omgeving']); 
$sex = mysqli_real_escape_string($server, $_POST['geslacht']); 
$status = mysqli_real_escape_string($server, $_POST['status']); 
+0

hmmm ... benden biraz aptal : p teşekkürler haha, ama yine de işe yaramaz :( Hata yok .. –

+0

@ReduanKurtaj Hoşgeldin! DB bağlantınız doğru mu? – Panda

+0

$ server = mysqli_connect ("SERVER", "USERNAME", "PASS", "DB_TABLE"); \t if (! $ Server) { \t \t echo "Kan geen verbinding maken met de server"; \t \t exit(); \t} –

1

kullanım "ve" daha iyi sql inşa nereye fıkra dinamik test isset parms gibi bu:

$sql= "SELECT * FROM users WHERE 1=1"; 
if isset($_POST['username']) { 
    $name = $_POST['username']; 
    $sql .= " and username LIKE '%$name%'"; 
} 
+0

ait <input>, kullanıcı isterseniz Amsterdam'dan bir kişi ve çevrimiçi bir sonuç Amsterdam'dan çevrimiçi kullanıcılar olmalıdır, ancak kullanıcı sadece çevrimiçi kullanıcıları görmek istiyorsa VEYA Amsterdam'dan gelen kullanıcıların sorgusu da doğru olmalıdır ... –

0

Onarim var Düzenle!!! ve harika çalışıyor ..! burada fıkra dinamiği için @Adam Silenko için haykırmak .. :)

VE @luweiqi SQL ekleme yardım için teşekkür ve bunun yerine bir AND gerekmez <button>

İlgili konular