В моем коде продолжает отображаться ошибка undefined variable: code
, но она добавляется в мою базу данных. Проблема я думаю, что в первом цикле $code .= $tmp;
Ошибка «Неопределенная переменная»
<?php
include '../library/config.php';
$action = isset($_GET['action']) ? $_GET['action'] : '';
switch ($action) {
case 'create' : newTitle();
break;
case 'delete': deleteRecord();
break;
case 'archive': archiveRecord();
break;
default : header("Location: ../index.php");
}
function archiveRecord(){
$title = $_POST['title'];
$desc = $_POST['desc'];
$adviser = $_POST['adviser'];
$group = $_POST['group'];
$category = $_POST['category'];
$name = $_FILES['myfile']['name'];
$type = $_FILES['myfile']['type'];
$size = $_FILES['myfile']['size'];
$tmpname = $_FILES['myfile']['tmp_name'];
$ext = substr($name,strrpos($name, '.'));
if ($name)
{
if($title && $desc)
{
$charset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz123456789";
$length = 15;
for ($i = 0; $i <= $length; $i++)
{
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
$query = mysql_query("SELECT code FROM archive WHERE code = '$code'");
//this is the cause of my error it adds to my database but it keeps saying Notice: Undefined variable: code
$numrows = mysql_num_rows($query);
while($numrows != 0)
{
for ($i = 0; $i <= $length; $i++)
{
$rand = rand() % strlen($charset);
$tmp = substr($charset, $rand, 1);
$code .= $tmp;
}
$query = mysql_query("SELECT code FROM archive WHERE code = '$code'");
$numrows = mysql_num_rows($query);
}
mkdir("../file/$code");
move_uploaded_file($tmpname, "../file/$code/"."$name");
$file = "$name";
$query = mysql_query("INSERT INTO archive VALUES ('', '$title','$desc','$adviser','$group','$category','$code','$name',NOW(),NOW(),NOW(),NOW())");
$_SESSION['message']['type'] = "success";
$_SESSION['message']['content'] = "Your file has been uploaded";
header("Location: ../index.php?page=archive");
exit;
//echo "Your file has been uploaded.<br><br><a href='download.php?code=$code'>Download</a>";
}else
$_SESSION['message']['type'] = "danger";
$_SESSION['message']['content'] = "You did not fill in the form";
header("Location: ../index.php?page=archive");
exit;
//echo "You did not fill in the form. $form";
}
else
$_SESSION['message']['type'] = "danger";
$_SESSION['message']['content'] = "You did not put any file";
header("Location: ../index.php?page=archive");
exit;
}
Вам необходимо инициализировать 'переменную $ code' перед использованием его как' $ кода. = $ tmp'. – Rikesh
@rikesh но как? – user3153327