2016-06-15 2 views
0

私は間違っていますか?私は初心者で、私のコードはmysqlデータベースから都市を引っ張っていません。私のPHPスクリプトがmysqlデータベースから都市を取得しない理由

function getXMLHTTP() { //fuction to return the xml http object 
    var xmlhttp=false; 
    try{ 
     xmlhttp=new XMLHttpRequest(); 
    } 
    catch(e) {  
     try{    
      xmlhttp= new ActiveXObject("Microsoft.XMLHTTP"); 
     } 
     catch(e){ 
      try{ 
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); 
      } 
      catch(e1){ 
       xmlhttp=false; 
      } 
     } 
    } 

    return xmlhttp; 
} 


function getCity(state) {  

var strURL="get_city.php?state="+state; 
var req = getXMLHTTP(); 

if (req) { 
    req.onreadystatechange = function() { 
    if (req.readyState == 4 && req.status==200) { 
     document.getElementById("citydiv").innerHTML=req.responseText; 
      } 
     } 
    req.open("GET","get_city.php?state="+stateL,true); 
    req.send(null); 
} 
} 
<div class="row"> 
     <span class="small-6 columns" style="inline"> 
      <label>Location</label> 
      <select name="state" method="GET" id="state"  onChange="getCity(this.value)"> 
         <option value="0">Select State</option> 
         <option value=1>Alabama</option> 
         <option value=2>Alaska</option> 
         <option value="3">Arizona</option> 
         <option value=AR>Arkansas</option> 
         <option value=CA>California</option> 

         <option value="CO">Colorado</option> 
         <option value="CT">Connecticut</option> 
         <option value="DE">Delaware</option> 
         <option value="DC">District of Columbia</option> 
         <option value="FL">Florida</option> 

         <option value="GA">Georgia</option> 
         <option value="HI">Hawaii</option> 
         <option value="ID">Idaho</option> 
         <option value="IL">Illinois</option> 
         <option value="IN">Indiana</option> 

         <option value="IA">Iowa</option> 
         <option value="KS">Kansas</option> 
         <option value="KY">Kentucky</option> 
         <option value="LA">Louisiana</option> 
         <option value="ME">Maine</option> 

         <option value="MD">Maryland</option> 
         <option value="MA">Massachusetts</option> 
         <option value="MI">Michigan</option> 
         <option value="MN">Minnesota</option> 
         <option value="MS">Mississippi</option> 

         <option value="MO">Missouri</option> 
         <option value="MT">Montana</option> 
         <option value="NE">Nebraska</option> 
         <option value="NV">Nevada</option> 
         <option value="NH">New Hampshire</option> 

         <option value="NJ">New Jersey</option> 
         <option value="NM">New Mexico</option> 
         <option value="NY">New York</option> 
         <option value="NC">North Carolina</option> 
         <option value="ND">North Dakota</option> 

         <option value="OH">Ohio</option> 
         <option value="OK">Oklahoma</option> 
         <option value="OR">Oregon</option> 
         <option value="PA">Pennsylvania</option> 
         <option value="RI">Rhode Island</option> 

         <option value="SC">South Carolina</option> 
         <option value="SD">South Dakota</option> 
         <option value="TN">Tennessee</option> 
         <option value="TX">Texas</option> 
         <option value="UT">Utah</option> 

         <option value="VT">Vermont</option> 
         <option value="VA">Virginia</option> 
         <option value="WA">Washington</option> 
         <option value="WV">West Virginia</option> 
         <option value="WI">Wisconsin</option> 

         <option value="WY">Wyoming</option> 
       </select></span> 

     <span class="small-6 columns" style="inline"> 
      <select name="city" id="citydiv" > 
        <option value="">Select City</option> 
     </select></span> 
     </div> 

私のPHPファイルget_city:

<?php 

$state_selected=strval($_GET['state']); 
echo $state_selected; 

$link=mysqli_connect("127.0.0.1","root","cw","locations"); 
if(mysqli_connect_errno()) { 
    printf("connect failed: %s\n",mysqli_connect_error()); 
    exit(); 
} 

$query="select city from cities where state_code= '".$state_selected."'"; 

$rs=mysqli_query($link,$query); 
?> 

<select name="city" id="citydiv" onchange="populate_utility_menu(this.value)"> 

<?php 

while($row=mysqli_fetch_array($rs)) { 
    echo "<option value=>".$row['city'];  
    echo "</option>"; 
} 
?> 
</select> 

私は私のオプション値の一部を実現するには異なっている、私は合格したいが、それが問題だった場合、私はちょうどチェックしていた2つの文字の文字列。私はさらに、Googleインスペクタと、下にあるapache2のerror.logファイル以外に何が起こっているのかをさらに調べる方法がわかりません。おそらくphpがmysqlファイルをロードしていないようですが、それを正しいパスに変換します。助けてください、私はこれで非常に新しいことを覚えておいてください。

のapache2のerror.logに

PHPの警告:PHPのスタートアップ:動的ライブラリをロードできません '/usr/lib/php5/20121212/msql.so' - は/ usr/libに/ PHP5/20121212/mSQLの.so:共有オブジェクトファイルを開くことができません:0行目の不明なファイルまたはディレクトリはありません。

[Tue Jun 14 17:48:47.600742 2016] [mpm_prefork:notice] [pid 13981] AH00163:Apache/2.4.7 (Ubuntu)PHP/5.5.9-1ubuntu4.14設定 - 通常の操作を再開

[Tue Jun 14 17:48:47.600928 2016] [core:notice] [pid 13981] AH00094:Comm 「/ usr/sbin/apache2」

+1

ライブラリがありません。 – user2182349

+0

あなたは、そのクエリが動作するときにSQLインジェクションを開いています。パラメータ化されたクエリを使用します。生成する 'option'も無効になり、' value'もありません。 – chris85

+0

私は自分のデータベースの状態コードの2文字列を生成しようとしていました。私のオプション値が間違っている理由を詳しく教えてください。そして、SQLインジェクションによって、悪意のある入力でフォームを完成させてデータベースを壊すことができるということですか?これを防ぐには、入力認証を追加するだけです(これは他のものが動作した後の私の次のステップでした)。 – user3499087

答えて

0

PHPバージョンをアップグレードしましたか?設定ファイルが引き続き古いロケーションパスを指している可能性があります。これを試してみてください:

sudo apt-get install php5-mcrypt 
sudo apt-get install php5-mysql 
+0

今私はうんざりしていて、私が何をしているのか分からない。私はこれらの2つのコマンドを試してみました。何らかの理由でlocalhost/php.infoをプルすることができないのですか、それとも間違っていますか? – user3499087

+0

どのようなエラーメッセージが表示されますか? – Adrian

関連する問題