1

私はphpにかなり慣れていないので、何が間違っているのか本当にわかりません。

私の変数 $largeid は結果で空に見えます:

$newfile=$_POST['largeName'].$largeid.".php";

このコードを実行した後でも:

while($largeidrow = mysql_fetch_array(largeidresult))
{
    $largeid = $largeidrow['large_id'];
}

これはコード全体です:

<?php 
$con = mysql_connect("localhost","","");
if (!$con)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("test", $con);

$sql="INSERT INTO larges(name,largecontent)VALUES('$_POST[largeName]','$_POST[content]')";

if (!mysql_query($sql,$con))
  {
    echo "failed";
  die('Error: ' . mysql_error());
  }
echo "1 record added";

$largeidresult = ("SELECT large_id FROM larges WHERE name='$_POST[largeName]'");

if (!mysql_query($largeidresult,$con))
{
    echo "failed";
    die('Error: ' . mysql_error());
}

while($largeidrow = mysql_fetch_array(largeidresult))
{
    $largeid = $largeidrow['large_id'];
}

if ($_POST['largeName']) {
error_reporting(0);
$i=1;
while($file = fopen("untitled$i.php", "r")) { fclose($file); $i++; }
if($file = fopen("untitled$i.php", "w")) {
$php = "<html> \n <head> \n </head> \n <body> \n test \n <?php \n echo 'hallo'; \n ?>     \n </body> \n <html>";
    $file_ext = strip_tags($_POST['$php']);
if(fwrite($file, $php) === false) { echo "Could not write"; exit; }
fclose($file);
$newfile=$_POST['largeName'].$largeid.".php";
system("mv untitled$i.php $newfile");
header("Location: $newfile");
}
}
else {
echo "<form method=post action='".$_SERVER["SCRIPT_NAME"]."'>\n";
echo "New File Name: <input name='filename'>\n</form>\n";
}
?>
4

2 に答える 2

2

まず第一に、mysql 関数を使用しないでくださいmysqliまたはを使用しPDOます。

PHPドキュメントから

警告 この拡張機能は PHP 5.5.0 で非推奨となり、将来的に削除される予定です。代わりに、MySQLi または PDO_MySQL 拡張機能を使用する必要があります。詳細については、MySQL: API ガイドの選択および関連する FAQ も参照してください。この機能の代替手段には..

あなたのコードでは、呼び出し方mysql_fetch_array(#link)が間違っています。

$sql = ("SELECT large_id FROM larges WHERE name='$_POST[largeName]'");

$result = mysql_query($sql);
if($result)
 {
   while($row= mysql_fetch_array($result))
     {
      $largeid = $row['large_id'];
     }
 }
于 2013-06-28T09:48:48.443 に答える
0

その挿入を行うときは、次の行を使用しています:

$sql="INSERT INTO larges(name,largecontent)VALUES('$_POST[largeName]','$_POST[content]')";

これでそれを変更します:

$sql="INSERT INTO larges(name,largecontent)VALUES('".$_POST[largeName]."','".$_POST[content]."')";

PHP 変数を静的テキストから分離する必要があります。SELECT にも同じ方法を使用します。

于 2013-06-28T09:50:18.403 に答える