0

ユーザーレジストリへのフォームがあります。次のファイルである InsertUser.php に日付を送信します。

<?php 
$link = mysql_connect("localhost", "root", "");
if (!$link) {
    echo("ERROR");
}
else {
    if (!mysql_select_db("myfacebook", $link)) {
        echo("ERROR");
    }
    else {
        $Consulta = "insert into usuarios(Nombre,Apellidos,Nick,Contraseña,Foto) values('" . $_POST["nombre"] . "','" . $_POST["apellidos"] . "','" . $_POST["nick"] . "','" . $_POST["contraseña"] . "','PruebaFoto')";
        echo $Consulta;
        $resultado = mysql_query($Consulta, $link) or die("Problema al insertar los datos.");
        echo($resultado);
    }
} 
?>

データを送信して挿入すると、フォームは次のように返します。

「Problema al insertar los datos.」

その機能に問題があると思いますmysql_query()が、問題の修復方法がわかりません。

4

1 に答える 1

0

これを少しきれいにして、何が起こっているのかをもう少し簡単に確認しましょう

<?php
$link = mysql_connect("localhost", "root", "") or die(mysql_error());
mysql_select_db("myfacebook", $link) or die(mysql_error());

$Consulta = "insert into usuarios(Nombre,Apellidos,Nick,Contraseña,Foto) values('".mysql_real_escape_string($_POST["nombre"])."','".mysql_real_escape_string($_POST["apellidos"])."','".mysql_real_escape_string($_POST["nick"])."','".mysql_real_escape_string($_POST["contraseña"])."','PruebaFoto')";

if($sql = mysql_query($Consulta)) {
    echo 'success';
} else {
    echo 'error';
}

SQL インジェクションに対してオープンにならないように、入力をエスケープする必要があります。使用しmysql_real_escape_string()ました。

mysqliまたはPODの代わりに学習する必要がありmysqlます。

die()私の例では、物事をきれいにして理解しやすくするために使用しました。

于 2013-09-07T18:29:03.763 に答える