it-swarm.com.de

Nicht abgerufener Fehler: Aufruf der nicht definierten Funktion mysql_escape_string ()

Schwerwiegender Fehler: Nicht gefundener Fehler: Aufruf der nicht definierten Funktion mysql_escape_string () in C:\xampp\htdocs\phoenixproject\register.php: 16 Stack-Trace: # 0 {main} in C:\xampp\htdocs\phoenixproject\register.php geworfen in Zeile 16

Wie kann ich das beheben?

<?php
require("config.php");
?>
<?php
if(isset($_POST['submit'])){

$email1 = $_POST['email1'];
$email2 = $_POST['email2'];
$pass1 = $_POST['pass1'];
$pass2 = $_POST['pass2'];

if($email1 == $email2) {
    if($pass1 == $pass2) {
//All good. Nastavi broo.

$name = mysql_escape_string($_POST['name']);
$lname = mysql_escape_string($_POST['lname']);
$uname = mysql_escape_string($_POST['uname']);
$email1 = mysql_escape_string($email1);
$email2 = mysql_escape_string($email2);
$pass1 = mysql_escape_string($pass1);
$pass2 = mysql_escape_string($pass2);

mysql_query("INSERT INTO `users` (`id`, `name`, `lname`, `uname`, `email`, `pass`) VALUES (NULL, '$name', '$lname', '$uname', '$email1', '$pass1')") or die (mysql_error());



}else{
  echo "Sorry, your password is not corrext.";
  exit();
}
}else{
  echo "Sorry!";
}

} // brace for submit conditional

$form = <<<EOT
<form action="register.php" method="POST">
First Name: <input type="text" name="name" /></br>
Last Name: <input type="text" name="lname" /></br>
Username: <input type="text" name="uname" /></br>
Email: <input type="text" name="email1" /></br>
Confirm Email: <input type="text" name="email2" /></br>
Password: <input type="password" name="pass1" /></br>
Confirm Password: <input type="password" name="pass2" /></br>
<input type="submit" value="Register" name="submit" />
</form>
EOT;
echo $form;

?>

Nun, ich weiß, dass ich versucht habe, Mysql und Mysqli zu mischen .... 

6
Amar Muratović

Um Ihnen hier zu helfen ... (zu lang für einen Kommentar)

Ihre require("config.php"); sollte Folgendes enthalten:

Sidenote: Verwenden Sie die richtigen Einstellungen für Ihren Host.

$link = mysqli_connect("localhost", "username", "mpassword", "database") or die($link);

Dann ändern Sie Ihre Escape-Funktionen, um die mysqli_-Version zu verwenden, und übergeben den Verbindungsparameter an sie:

$name = mysqli_real_escape_string($link, $_POST['name']);
$lname = mysqli_real_escape_string($link, $_POST['lname']);
$uname = mysqli_real_escape_string($link, $_POST['uname']);
$email1 = mysqli_real_escape_string($link, $email1);
$email2 = mysqli_real_escape_string($link, $email2);
$pass1 = mysqli_real_escape_string($link, $pass1);
$pass2 = mysqli_real_escape_string($link, $pass2);

Wieder dasselbe für die Abfrage. Verwenden Sie die i-Version und übergeben Sie die Verbindung als ersten Parameter.

mysqli_query($link, "INSERT INTO ...

Prüfen Sie mit mysqli_error($link); nach Fehlern in Ihrer Abfrage.

Sie können also die Abfrage ändern, um sie als zu lesen

$query = mysqli_query($link, "INSERT INTO ...

und zu tun

if(!$query){
   echo "Error: " . mysqli_error($link);
   }

Lesen Sie auch die folgenden Informationen zum Stack in Bezug auf das API-Mischen:

  • Kann ich MySQL-APIs in PHP mischen?
  • Du kannst nicht mysql_ mit mysqli_ oder PDO usw. vermischen sich NICHT miteinander. Sie müssen dieselbe Verbindung verwenden, um eine Verbindung zur Abfrage herzustellen.

Fußnoten.

Passwörter

Ich habe auch bemerkt, dass Sie Passwörter möglicherweise im Klartext speichern. Dies wird nicht empfohlen. Wenn Sie beabsichtigen, zu einem bestimmten Zeitpunkt mit LIVE zu arbeiten, sollten Sie KEINE Passwörter als reinen Text in Ihrer Datenbank speichern. 

Konsultieren Sie die folgenden.

Andere Links:

7

Am besten ist es, die PHP -Version auf 5.6 herunterzustufen und alles einzustellen. Fehler wird dann zu 100% entfernt.

Hoffe das hilft!

2
Sukhvir Singh

Ändern Sie Ihre PHP -Version wieder in PHP 5.6 und es wird gut funktionieren.

2
Waqas Ahmad