簡體   English   中英

HTML / PHP表單未將數據發送到MySQL數據庫

[英]HTML/PHP Form doesn't sent data to MySQL Database

我是PHP的新手,所以這對我來說是新的。 無論如何,我正在創建一個站點,以便可以在線訪問我的收據。

形式如下:

<form action="Form.php" method="post" class="basic-grey">
<h1><a href="index.html">Receita</a>
    <span>Aqui podes adicionar uma nova receita</span>
</h1>
<label>
    <span>Titulo :</span>
    <input id="titulo" type="text" size="20" maxlength="100" name="titulo" placeholder="Introduza o Titulo" />
</label>

<label>
    <span>Categoria :</span><select  maxlength="10" name="categoria">
    <option value="categoria">--- Seleccione aqui a Categoria ---</option>
    <option name=" " value="sopa">Sopa</option>
    <option name="entrada" value="entrada">Entrada</option>
    <option name="carne" value="carne">Carne</option>
    <option name="peixe" value="peixe">Peixe</option>
    <option name="salada" value="salada">Salada</option>
    <option name="sobremesa" value="sobremesa">Sobremesa</option>
    </select>

</label>

<label>
    <span>Ingredientes :</span>
    <textarea id="ingredientes" size="20" maxlength="1000" name="ingredientes" placeholder="Introduza os ingredientes"></textarea>
</label> 
<label>
    <span>Preparação :</span>
    <textarea id="preparacao" size="20" maxlength="1000" name="preparacao" placeholder="Introduza o modo de preparação"></textarea>
</label> 
<label>
    <span>Notas :</span>
    <textarea id="notas" size="20" maxlength="1000" name="notas" placeholder="Aqui pode adicionar uma nota"></textarea>
</label> 
<label>
    <span>&nbsp;</span> 
    <input type="submit" class="button" value="Enviar" /> 
</label>   

</form>

這是處理表單的代碼:

<?php
// processing form values


if ($_SERVER['REQUEST_METHOD'] == 'POST'){

$titulo = $_POST['titulo'];
$categoria = $_POST['categoria'];
$ingredientes = $_POST['ingredientes'];
$preparacao = $_POST['preparacao'];
$notas = $_POST['notas'];


if(!empty($titulo) && !empty($categoria) && !empty($ingredientes) && !empty($preparacao) && !empty($notas)){

    include('connection.php');

    mysqli_query($dbc, "INSERT INTO receita(Titulo,Categoria,Ingredientes,Preparacao,Notas) VALUES ('$titulo','$categoria','$ingredientes','$preparacao','$notas')");
    $registered = mysqli_affected_rows($dbc);
    echo $registered." row is affected, everything worked fine!";
}else{
    echo "Please fill all values on the form";
}

}else{

echo "No form has been submitted";

}

?>

然后發生的是,如果我輸入了類似的內容,它將不起作用:

提圖洛:阿馬拉達·德·卡馬拉

類別:Peixe

成分:800克de camarao; 4 Dentes de Alho; 1個ramo de salsa ou coentros; 3份ovos inteiros; 1.5 dl de Azeite; 1.5pãopor pessoa; 薩爾; 皮里,皮瑞·

預先准備:阿瓜(Coze-se ocamarãocom sal e piri-piri e Reserva-se agua)。 De seguida demolha-se opãona agua docamarão。 Azece或Alzes com或Alumis com或Seguida junta-se或Camarãopor ultimo opão。 Mexe-se tudo para cozer opãoe ganhar Consencia。 由ultimo junta-se os ovos e演變成se tudo。

通知:Receita para 4比索

但是,如果我這樣輸入,它將起作用:

TITULO:gfdsfdsa

類別:Peixe

成分:hudsbfbdsf fdsfidsfidsfsd,fdsjifjdsifdis 0palpdsandnsaud jkdosakodsakodmnsa jidsjaidsa

上一個:nfjdbshfbhdbjfdjs dsajijdisandiabuu fjndoisjfojidsanfds

通知:fbhdubsufbndsnfs

我的數據庫表:

Nome    Tipo    Agrupamento (Collation) Atributos   Nulo    Omissao Extra   

1 ID bigint(50)Não無AUTO_INCREMENT Muda Muda Elimina
2 Titulo varchar(100)utf8_general_ciNão無Muda Muda Elimina 3 Categoria varchar(10)utf8_general_ciNão無Muda Muda
4成分varchar(1000)utf8_general_ciNão無Muda 5 Preparacao varchar(1000)utf8_general_ciNão無Muda Muda 6 Notas varchar(1000)utf8_general_ciNão無Muda Muda

很抱歉,如果這個帖子過長。 任何想法如何解決?

輸入中可能有一個特殊字符,導致查詢中出現語法錯誤。

您需要先對輸入進行轉義,然后再將其替換為查詢。 include ('connection.php');之后添加它include ('connection.php');

$titulo = mysqli_real_escape_string($dbc, $titulo);
$categoria = mysqli_real_escape_string($dbc, $categoria);
// and so on for all the other variables

或(更好)使用准備好的陳述。 使用它代替對mysqli_query的調用:

$stmt = mysqli_prepare($dbc, "INSERT INTO receita(Titulo,Categoria,Ingredientes,Preparacao,Notas) VALUES (?, ?, ?, ?, ?)");
mysqli_stmt_bind_param($stmt, "sssss", $titulo, $categoria, $ingredientes, $preparacao, $notas);
mysqli_stmt_execute($stmt);
$registered = mysqli_stmt_affected_rows($stmt);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM