it-swarm.com.de

Warnung: mysqli_real_escape_string () erwartet genau 2 Parameter, 1 gegeben ... was mache ich falsch?

Ich versuche, PHP-Login zu machen, aber ich bekomme diese Fehlermeldung: Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given, was mache ich falsch? 

register.php

<!doctype html>
<html lang"fi">
<head>
<link rel="icon" type='image/png' href='images/logo.png'>
<title>
asd
</title>
<link href="css/styles.css" type="text/css" rel="stylesheet">
</head>
<body>
<!--reg alkaa-->
<form action="register.php" method="post">
<p><input type="text" name="username" placeholder="Username">
<p><input type="email" name="email" placeholder="Email">
<p><input type="password" name="pass" placeholder="Password">
<p><input type="password" name="pass1" placeholder="Password">
<p><input type="submit" name="submit" value="Register">
</form>
<?php

if(isset($_POST['submit']))
{
$username = mysqli_real_escape_string($_POST['username']);
$pass = mysqli_real_escape_string($_POST['pass']);
$pass1 = mysqli_real_escape_string($_POST['pass1']);
$email = mysqli_real_escape_string($_POST['email']);
if($username && $pass && $pass1 && $email)
{
if($pass==$pass1)
{
    $connect = mysql_connect("mysql.example.com","username","password");
    mysql_select_db("my_database");
    $query = mysql_query("INSERT INTO users VALUES('$username','$pass','$email');");
    echo "You have been registered.";
}
else
{
    echo "Password must match.";
}
}
else
{
echo "All fields are required.";
}
}
 ?>
<!--reg end-->
<Center>
<a href="index.php">
<h1>
asd
</h1>
</center>
<div id="main">
<h3>
 <div class="menu"> <a href="index.php">Etusivu</a> &bullet; 
 <a                                       </div>
</h3>
</div>
<div class="jonne"> 
</div>
<script src="javascript/jquery.js"></script>
</body>
</html>

ich verwende 000webhost und dieses erste Mal, wenn ich MySQL-Datenbanken online verwende.

11
user3774980

Sie mischen die mysqli- und mysql-Funktion.

Wenn Sie die mysql-Funktion verwenden, verwenden Sie stattdessen mysqli_real_escape_string($your_variable);

$username = mysql_real_escape_string($_POST['username']);
$pass = mysql_real_escape_string($_POST['pass']);
$pass1 = mysql_real_escape_string($_POST['pass1']);
$email = mysql_real_escape_string($_POST['email']);

Wenn Sie die Funktion mysqli_ * verwenden, müssen Sie Ihre Verbindung zur Datenbank in die Funktion mysqli_real_escape aufnehmen:

$username = mysqli_real_escape_string($your_connection, $_POST['username']);
$pass = mysqli_real_escape_string($your_connection, $_POST['pass']);
$pass1 = mysqli_real_escape_string($your_connection, $_POST['pass1']);
$email = mysqli_real_escape_string($your_connection, $_POST['email']);

Hinweis: Verwenden Sie die Funktion mysqli_ *, da mysql nicht mehr verwendet wird. Für Informationen lesen Sie bitte mysqli_ *

30
Rakesh Shetty

Aus der Dokumentation hat die Funktion mysqli_real_escape_string() zwei Parameter.

string mysqli_real_escape_string ( mysqli $link , string $escapestr ).

Der erste ist ein link für eine mysqli-Instanz (Datenbankverbindungsobjekt), der zweite ist der string - Escape-Befehl. Ihr Code sollte also lauten:

$username = mysqli_real_escape_string($yourconnectionobject,$_POST['username']);
3
Jenz

mysqli_real_escape_string-Funktion erfordert die Verbindung zu Ihrer Datenbank.

$username = mysqli_real_escape_string($your_connection, $_POST['username']);

P.S .: Mischen Sie nicht mysql_ Funktionen * und mysqli_ Funktionen *. Bitte verwenden Sie mysqli_* functions or PDO, da die Funktionen von mysql_ * veraltet sind und in Zukunft entfernt werden.

1
John Robertson

sie mischen mysql und mysqli

verwenden Sie diesen mysql_real_escape_string-Typ

$username = mysql_real_escape_string($_POST['username']);

HINWEIS: mysql_* ist veraltet. Verwenden Sie mysqli_* oder PDO.

1
Satish Sharma

Wenn Sie den prozeduralen Stil verwenden, müssen Sie sowohl eine Verbindung als auch eine Zeichenfolge angeben:

$name = mysqli_real_escape_string($conn, $name);

Nur die objektorientierte Version kann mit nur einer Zeichenfolge ausgeführt werden:

$name = $link->real_escape_string($name);

Die Dokumentation sollte dies hoffentlich klarstellen.

1
paxdiablo

Verwenden Sie diesen Weg anstelle Ihres Weges. 

    addslashes(trim($_POST['username']));
1
max3000

Ersetzen Sie Ihre Abfrage durch Folgendes: 

$query = mysql_query("INSERT INTO users VALUES('$username','$pass','$email')", `$Connect`);
0
Ethic Or Logics

Folgendes funktioniert perfekt: -

if(isset($_POST['signup'])){
$username=mysqli_real_escape_string($connect,$_POST['username']);
$email=mysqli_real_escape_string($connect,$_POST['email']);
$pass1=mysqli_real_escape_string($connect,$_POST['pass1']);
$pass2=mysqli_real_escape_string($connect,$_POST['pass2']);

Nun ist die $ connect meine Variable, die meine Verbindung zur Datenbank enthält. Sie haben nur die Verbindungsvariable ausgelassen. Fügen Sie es hinzu und es sollte perfekt funktionieren. 

0
Ginaro Maina

Übergeben Sie $connect als ersten Parameter in mysqli_real_escape_string für diese erste Verbindung, und machen Sie dann rest.read here http://php.net/manual/de/mysqli.real-escape-string.php

0
Suchit kumar

In mysql_real_escape_string mysqli_real_escape_string gibt es geringfügige Änderungen. unterhalb der Syntax

die Syntax für mysql_real_escape_string lautet mysql_real_escape_string ($ _ POST ['sample_var'])

mysqli_real_escape_string-Syntax lautet mysqli_real_escape_string ($ conn, $ _ POST ['sample_var'])

0
raghavendra