2015-02-24 128 views
0

如何解决这个错误我的代码工作正常,但我不知道它为什么显示错误我的图片上传正常。上传照片错误注意:未定义索引:照片

请帮我解决这个问题 感谢 我有这个错误

注意:未定义指数:照片I:\ XAMPP \ htdocs中\ CCS \ ad.php上线121

注意:未定义指数:照片I:\ XAMPP \ htdocs中\ CCS上线\ ad.php 125

注意:未定义指数:照片I:\ XAMPP \ htdocs中\ CCS \上线ad.php 127

线121 是

$target = $target . basename($_FILES['photo']['name']); 

线125 是

$photo=($_FILES['photo']['name']); 

线126 是

if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 

和这里完整代码

<?php 

/* 
NEW.PHP 
Allows user to create a new entry in the database 
*/ 

// creates the new record form 
// since this form is used multiple times in this file, I have made it a function that is easily reusable 
function renderForm($sname, $fname, $error) 
{ 
?> 
<?php 
// if there are any errors, display them 
if ($error != '') 
{ 
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
} 
?> 



    <form action="" method="post" enctype="multipart/form-data" class="registration_form"> 
    <fieldset> 
    <legend>Admission </legend> 

    <p>Create a Admission Voucher <span class="style4" style="background:#EAEAEA none repeat scroll 0 0;line-height:1;margin-left:410px;;padding:9px 9px;">Please Fill the All Info </span> </p> 
     <div class="elements"> 
     <label for="sname">Student Name :</label> 
     <input type="text" id="sname" name="sname" size="70" /> 

</div> 
    <div class="elements"> 
     <label for="fname">Father Name :</label> 
     <input type="text" id="fname" name="fname" size="25" /> 
</div> 

      <div class="elements"> 
     <label for="photo">Photo Attachment :</label> 
<input type="hidden" name="size" value="350000"> 
      <input type="file" name="photo" size="25"> 
    </div> 



    <div class="submit"> 
<button name="submit" type="submit" class="pure-button pure-button-primary" value="Submit">Submit</button> 
    </div> 
    </fieldset> 
</form> 

    <?php 
    } 

    //This is the directory where images will be saved 
    $target = "images/"; 
    $target = $target . basename($_FILES['photo']['name']); 

    //This gets all the other information from the form 

    $photo=($_FILES['photo']['name']); 
    //Writes the photo to the server 
    if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
    { 

    //Tells you if its all ok 
    echo "<center>Photo ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory</center>"; 
    } 



    // connect to the database 
    include('connect-db.php'); 



    // check if the form has been submitted. If it has, start to process the form and save it to the database 
    if (isset($_POST['submit'])) 
    { 
    // get form data, making sure it is valid 
    $sname = mysql_real_escape_string(htmlspecialchars($_POST['sname'])); 
    $fname = mysql_real_escape_string(htmlspecialchars($_POST['fname'])); 
    $photo = mysql_real_escape_string(htmlspecialchars($_FILES['photo']['name'])); 

    // check to make sure both fields are entered 
    if ($sname == '') 
    { 
    // generate error message 
    $error = 'ERROR: Please fill in all required fields!'; 

    // if either field is blank, display the form again 
    renderForm($sname, $fname,$error); 
    } 
    else 
    { 
    // save the data to the database 
     mysql_query("INSERT admission SET sname='$sname', fname='$fname', photo='$photo'") 
    or die(mysql_error()); 
    echo "<center>Admission</center>"; 
    echo "<center>Successful!</center>"; 
    // once saved, redirect back to the view page 

    } 
    } 
    else 
    // if the form hasn't been submitted, display the form 
    { 
    renderForm('','','',''); 
    } 


    ?> 
+1

不,这不是dublicate – user1833487 2015-02-24 00:19:40

+1

的区别是什么?告诉我们! – Rizier123 2015-02-24 00:20:11

+0

http://stackoverflow.com/questions/888/how-do-you-debug-php-scripts – Halcyon 2015-02-24 00:20:33

回答

4

这是一个注释太长,因为我想在那里解释,但认为这将是更好的,如果它是在回答中表示。

注意:我也将$_FILES['uploadedfile']更改为$_FILES['photo'],因为这会产生错误。

将一切从$target = "images/";开始到echo "<center>Photo ". basename...然后if (isset($_POST['submit'])){下放置,然后修改条件语句改为if (isset($_POST['submit']) && !empty($_FILES['photo'])){,你应该是好去。

这里有一个重写:

<?php 

/* 
NEW.PHP 
Allows user to create a new entry in the database 
*/ 

// creates the new record form 
// since this form is used multiple times in this file, I have made it a function that is easily reusable 
function renderForm($sname, $fname, $error) 
{ 
?> 
<?php 
// if there are any errors, display them 
if ($error != '') 
{ 
echo '<div style="padding:4px; border:1px solid red; color:red;">'.$error.'</div>'; 
} 
?> 

    <form action="" method="post" enctype="multipart/form-data" class="registration_form"> 
    <fieldset> 
    <legend>Admission </legend> 

    <p>Create a Admission Voucher <span class="style4" style="background:#EAEAEA none repeat scroll 0 0;line-height:1;margin-left:410px;;padding:9px 9px;">Please Fill the All Info </span> </p> 
     <div class="elements"> 
     <label for="sname">Student Name :</label> 
     <input type="text" id="sname" name="sname" size="70" /> 

</div> 
    <div class="elements"> 
     <label for="fname">Father Name :</label> 
     <input type="text" id="fname" name="fname" size="25" /> 
</div> 

      <div class="elements"> 
     <label for="photo">Photo Attachment :</label> 
<input type="hidden" name="size" value="350000"> 
      <input type="file" name="photo" size="25"> 
    </div> 

    <div class="submit"> 
<button name="submit" type="submit" class="pure-button pure-button-primary" value="Submit">Submit</button> 
    </div> 
    </fieldset> 
</form> 

<?php 
    } 

    // connect to the database 
    include('connect-db.php'); 

    // check if the form has been submitted. If it has, start to process the form and save it to the database 
    if (isset($_POST['submit']) && !empty($_FILES['photo'])) 
    { 

    //This is the directory where images will be saved 
    $target = "images/"; 
    $target = $target . basename($_FILES['photo']['name']); 

    //This gets all the other information from the form 

    $photo=($_FILES['photo']['name']); 
    //Writes the photo to the server 
    if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
    { 

    //Tells you if its all ok 
    echo "<center>Photo ". basename($_FILES['photo']['name']). " has been uploaded, and your information has been added to the directory</center>"; 
    } 

    // get form data, making sure it is valid 
    $sname = mysql_real_escape_string(htmlspecialchars($_POST['sname'])); 
    $fname = mysql_real_escape_string(htmlspecialchars($_POST['fname'])); 
    $photo = mysql_real_escape_string(htmlspecialchars($_FILES['photo']['name'])); 

    // check to make sure both fields are entered 
    if ($sname == '') 
    { 
    // generate error message 
    $error = 'ERROR: Please fill in all required fields!'; 

    // if either field is blank, display the form again 
    renderForm($sname, $fname,$error); 
    } 
    else 
    { 
    // save the data to the database 
     mysql_query("INSERT admission SET sname='$sname', fname='$fname', photo='$photo'") 
    or die(mysql_error()); 
    echo "<center>Admission</center>"; 
    echo "<center>Successful!</center>"; 
    // once saved, redirect back to the view page 

    } 
    } 
    else 
    // if the form hasn't been submitted, display the form 
    { 
    renderForm('','','',''); 
    } 


?> 
+0

现在非常感谢它工作正常 – user1833487 2015-02-24 01:38:05

1

后您的交易</form>更改代码

<?php 
} 





// check if the form has been submitted. If it has, start to process the form and save it to the database 
if (isset($_POST['submit'])) 
{ 
    //This is the directory where images will be saved 
$target = "images/"; 
$target = $target . basename($_FILES['photo']['name']); 

//This gets all the other information from the form 

$photo=($_FILES['photo']['name']); 
//Writes the photo to the server 
if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
{ 

//Tells you if its all ok 
echo "<center>Photo ". basename($_FILES['uploadedfile']['name']). " has been uploaded, and your information has been added to the directory</center>"; 
} 



// connect to the database 
include('connect-db.php'); 
// get form data, making sure it is valid 
$sname = mysql_real_escape_string(htmlspecialchars($_POST['sname'])); 
$fname = mysql_real_escape_string(htmlspecialchars($_POST['fname'])); 
$photo = mysql_real_escape_string(htmlspecialchars($_FILES['photo']['name'])); 

// check to make sure both fields are entered 
if ($sname == '') 
{ 
// generate error message 
$error = 'ERROR: Please fill in all required fields!'; 

// if either field is blank, display the form again 
renderForm($sname, $fname,$error); 
} 
else 
{ 
// save the data to the database 
    mysql_query("INSERT admission SET sname='$sname', fname='$fname', photo='$photo'") 
or die(mysql_error()); 
echo "<center>Admission</center>"; 
echo "<center>Successful!</center>"; 
// once saved, redirect back to the view page 

} 
} 
else 
// if the form hasn't been submitted, display the form 
{ 
renderForm('','','',''); 
} 


?>