2016-06-15 7 views
0

Was mache ich falsch? Ich bin ein Neuling und mein Code zieht die Städte nicht aus der MySQL-Datenbank.Warum nicht mein PHP-Skript Städte aus MySQL-Datenbank

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> 

Meine PHP-Datei 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> 

ich einige meiner Optionswerte realisieren unterschiedlich sind dann die beiden char string ich weitergeben möchte, aber ich war die Überprüfung nur, wenn das das Problem war. Ich bin nicht einmal sicher, wie man mehr darüber nachforscht, was neben dem Google-Inspektor und der apache2 error.log-Datei, die unten ist, und sieht aus, als ob PHP nicht eine mysql-Datei lädt, aber ich bin ahnungslos, wie zu prüfen oder zu verweisen es auf den richtigen Weg. Bitte helfen Sie und erinnern Sie sich, dass ich dabei sehr neu bin.

apache2 error.log

PHP Warnung: PHP Startup: Unable dynamische Bibliothek '/usr/lib/php5/20121212/msql.so' laden -/usr/lib/php5/20121212/msql .so: Datei kann nicht geöffnet werden: Keine Datei oder Verzeichnis in Unbekannt in Zeile 0

[Di 14. Juni 17: 48: 47.600742 2016] [mpm_prefork: notice] [pid 13981] AH00163: Apache/2.4.7 (Ubuntu) PHP/5.5.9-1ubuntu4.14 konfiguriert - Normalbetrieb wieder aufnehmen

[Di 14. Juni 17: 48: 47.600928 2016] [Kern: Mitteilung] [Pid 13981] AH00094: Comm und Zeile: '/ usr/sbin/apache2'

+1

Sieht aus, als ob Sie eine Bibliothek fehlen – user2182349

+0

Sie werden für SQL-Injektionen offen sein, wenn Sie diese Abfrage funktioniert. Verwenden Sie parametrisierte Abfragen. Auch die "Option", die du erzeugen wirst, wird ungültig sein, es wird keinen "Wert" geben. – chris85

+0

Ich habe versucht, eine 2-stellige Zeichenfolge für den Statuscode in meiner Datenbank zu generieren. Könnten Sie bitte erläutern, warum meine Optionswerte falsch sind? Und mit sql-Injektionen meinen Sie, dass Menschen das Formular mit bösartigen Eingaben ausfüllen können, um die Datenbank zu beschädigen? Wie verhindere ich das, indem ich einfach die Eingabeauthentifizierung hinzufüge (was war mein nächster Schritt, nachdem ich diese anderen Sachen in Betrieb genommen habe)? – user3499087

Antwort

0

Haben Sie Ihre PHP-Version aktualisiert? Es kann sein, dass Ihre Konfigurationsdateien immer noch auf alte Pfadangaben verweisen. Versuchen Sie das:

+0

Jetzt bin ich nur verwirrt und weiß nicht, was zum Teufel ich mache. Ich habe diese beiden Befehle ausprobiert und es hat etwas getan, aber immer noch keine Arbeit. Aus irgendeinem Grund kann ich meinen localhost/php.info nicht aufrufen oder mache ich das falsch? – user3499087

+0

Welche Fehlermeldung erhalten Sie? – Adrian