我的Mysql查询连接没有错误,但是当我点击提交时,它没有填充表格(文章)。我已经工作了几个小时试图找到我做错了什么。
SQL注入问题将在以后进行相应处理。准备好的陈述。
articleform.php
<h2>Articles</h2>
<form action="index.php?page=articles&action=" method="post">
<table class="admin_form" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td width="30%"><label for="TitreArticle">Titre</label></td>
<td><input id="TitreArticle" type="text" name="TitreArticle" value="<?php if(isset($_POST['TitreArticle'])) ?>" /></td>
</tr>
<tr>
<td width="30%"><label for="AuteurArticle">Auteur</label></td>
<td><input id="AuteurArticle" type="text" name="AuteurArticle" value="<?php if(isset($_POST['AuteurArticle'])) ?>" /></td>
</tr>
<tr>
<td valign="top"><label for="ContenuArticle">Contenu de l'article</label></td>
<td><textarea id="ContenuArticle" name="ContenuArticle"><?php if(isset($_POST['ContenuArticle'])) ?></textarea></td>
</tr>
<tr>
<td> <input type="hidden" name="dateArticle" value="" /></td>
<td>
<a class="btn" href="index.php">Annuler</a>
<input type="submit" value="Envoyer" />
</td>
</tr>
</table>
articles.sql.php
<?php
include ('config/dbconnect.php');
// INSERT
function insertArticle( $c ){
$TitreArticle = $AuteurArticle = $ContenuArticle = "";
if(isset($_POST['TitreArticle'])){
$TitreArticle = $_POST['TitreArticle'] ;
$AuteurArticle = $_POST['AuteurArticle'];
$ContenuArticle = $_POST['ContenuArticle'];
$DateArticle = $_POST['DateArticle'];
}
$qryInsertArt = 'INSERT INTO articles (artTitre,artAuteur,artContenu)
VALUES (\''.$TitreArticle.'\',
\''.$AuteurArticle.'\',
\''.$ContenuArticle.'\')';
if (!mysqli_query($c,$qryInsertArt))
{
die('Error: ' . mysqli_error($c));
}
echo "1 record added";
}
// CONTROLER //
switch( $action ){
case 'insert' :
$process = insertArticle($conn);
if( $process == 'ok' )
header( 'location:index.php?page=home' );
else
$page = 'articleform';
break;
case 'update' :
$process = updateArticle( $_GET[ 'item' ] );
if( $process == 'ok' )
header( 'location:index.php?page=home' );
else
$page = 'articleform';
break;
case 'delete' :
$process = deleteArticle( $_GET[ 'item' ] );
if( $process == 'ok' )
header( 'location:index.php?page=home' );
break;
}
?>
答案 0 :(得分:2)
问题#1
value="<?php if(isset($_POST['TitreArticle'])) ?>"
这并不代表任何真正的价值。它应该是
value="<?php if(isset($_POST['TitreArticle'])) echo something ?>"
问题#2
而且,这就是你拥有的所有代码吗?
因为updateArticle()
和deleteArticle()
是未定义的函数。
问题#3 重要
另一方面,$process = insertArticle($conn);
看起来不对,因为insertArticle()
没有返回任何值。
<强>改进强>
$qryInsertArt = 'INSERT INTO articles (artTitre,artAuteur,artContenu)
VALUES (\''.$TitreArticle.'\',
\''.$AuteurArticle.'\',
\''.$ContenuArticle.'\')';
我不明白为什么你应该多次逃避单引号(如Fred所说)。
$qryInsertArt = "INSERT INTO articles (artTitre,artAuteur,artContenu)
VALUES ('$TitreArticle',
'$AuteurArticle',
'$ContenuArticle')";