2017-06-23 4 views
-1

Ich habe vor eine ähnliche Frage gestellt .. aber dann gerade jetzt gibt es ein Problem mit dem Code ... Die Daten werden immer eingegeben in mySQL-Datenbank ...PHP-Daten können nicht in die Datenbank eingeben

PHP FILE:

<html> 

<head> 
    <title>Enter New Project Details</title> 
</head> 

<body> 
<?php include 'RegProj.html'; 

$pn=isset($_POST['ProjectName']) ? $_POST['ProjectName'] : ''; 
$tn=isset($_POST['TaskName']) ? $_POST['TaskName'] : ''; 
$dsc=isset($_POST['Proj_desc']) ? $_POST['Proj_desc'] : ''; 
$date = date('Y-m-d H:i:s'); 
$serverName = "Swagatha-PC"; 
if($_SERVER['REQUEST_METHOD']=="POST") 
{ 

$conn = mysqli_connect('localhost:3307', 'root', '', 'TimeSheet'); 

if($conn) 
{ 
echo "Connection established.<br />"; 
} 
else 
{ 
echo "Connection could not be established.<br />"; 
die(print_r(mysqli_connect_errno($conn), true)); 
} 

$query="Insert Into dbo.Project (DateAdded,ProjectName,TaskName,Proj_desc) 
values ('$date','$pn' ,'$tn' , '$dsc')"; 
$stmt=mysqli_query($conn,$query); 


if($stmt==false) 
{ 
echo "Error in adding Info!! Reload Page and try again!!<br/>"; 
die(print_r(mysqli_connect_errno($stmt), true)); 
} 
else 
{ 
echo " Record Added!!"; 
} 
mysqli_close($conn); 

} 
?> 
</body> 
</html> 

HTML FILE:

<html> 

    <head> 
     <title>Enter New Project Details</title>  
    </head> 

<body> 
<form id="project" method = "post" action = "RPMS.php"> 
     <table> 
      <tr> 
       <td>Project Name:</td> 
       <td><input type = "text" name = "ProjectName"></td> 
      </tr> 

      <tr> 
       <td>Task Name:</td> 
       <td><input type = "text" name = "TaskName"></td> 
      </tr> 

      <tr> 
       <td>Project description:</td> 
       <td><textarea name = "Proj_desc" rows = "5" cols = "40"></textarea></td> 
      </tr> 

      <tr> 
       <td> 
        <input type = "submit" name = "submit" value = "Submit" > 
       </td> 
      </tr> 
     </table> 
     </form> 

</body> 
</html> 

Der Fehler sieht etwa so aus:

Error Occuring

Wie kann ich es beheben?

+0

haben Sie die SQL-Anweisung echo'ing und manuell versuchen, ändern, läuft? –

+1

versuchen, vorbereitete Anweisung zu verwenden. Dies wird SQL-Injektion verursachen – lalithkumar

+0

Add 'ini_set ('display_errors', 1); ini_set ('log_fehler', 1); error_reporting (E_ALL); mysqli_report (MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); 'an die Spitze Ihres Skripts. Dadurch werden alle mysqli_-Fehler auf generiert eine Ausnahme, die Sie im Browser sehen können und andere Fehler werden auch in Ihrem Browser sichtbar sein. – RiggsFolly

Antwort

-1

Sie sollten mysqli_real_escape_string alle $ _POST Daten. Wenn irgendein einzelnes Zitat enthält - wird sql Syntaxfehler sein. SQL-Injektion ist ebenfalls möglich.

+0

eingegeben Das würde die [SQL nicht korrigieren Injection Attack] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php) Schauen Sie sich an, was mit [Little Bobby Tables] passiert ist (http: // bobby-tables.com/) Sogar [wenn Sie Eingaben entgehen, ist es nicht sicher!] (http://stackoverflow.com/questions/5741187/sql-injection-that-gets-around-mysql-real-escape- string) Verwenden Sie [vorbereitete parametrisierte Anweisungen] (http://php.net/manual/en/mysqli.quickstart.prepared-statements.php) – RiggsFolly

1

Sie haben Ihre Datenbanknamen

von

$query="Insert Into dbo.Project (DateAdded, ProjectName, TaskName, Proj_desc) values ('$date','$pn' ,'$tn' , '$dsc')"; 

zu

$query="Insert Into TimeSheet.Project (DateAdded, ProjectName, TaskName, Proj_desc) values ('$date','$pn' ,'$tn' , '$dsc')"; 
+0

Das Entfernen der 'dbo.' wäre genug – RiggsFolly

+0

Yaah, das ist genug –

Verwandte Themen