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'
Sieht aus, als ob Sie eine Bibliothek fehlen – user2182349
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
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