Errore variabile category

Stato
Chiusa ad ulteriori risposte.

sappe

Nuovo Utente
27 Mar 2011
27
0
0
Ciao a tutti, ho un errore con una variabile che invece sembrerebbe essere settata benissimo, eccovi il file:
Codice:
<?php 
include("connessione.inc");
$title=$_POST["title"];
$tag1=$_POST["tag1"];
$tag2=$_POST["tag2"];
$tag3=$_POST["tag3"];
$category=$_POST["category"];
$description=$_POST["description"];
$who_see=$_POST["who_see"];
$target_path="uploads/";
$date=date("j/M/Y");
$target_path = $target_path.basename( $_FILES['fileUtente']['name']); 
function control ($title, $tag1, $tag2, $tag3, $description){
   $result=true;
if ($title=="" or $tag1=="" or $tag2=="" or $tag3=="" or $category=="" or $description=="" or $who_see==""){
   $result=false;
} return $result;
}
if (control ($title, $tag1, $tag2, $tag3, $description) == true){
if  ($_FILES['fileUtente']['error'] == 0) {
   move_uploaded_file($_FILES['fileUtente']['tmp_name'], $target_path);
      echo "File ".basename( $_FILES['uploadedfile']['name'])." has been uploaded.</br> Now you have to wait that the administrator approve it.";   
     	   echo "<a href='upload.php'>Upload another image.</a>";   
$sql="INSERT INTO opere(title, tag1, tag2, tag3, category, description, who_see) VALUES('$title','$Tag1', '$Tag2', '$Tag3', '$category', '$description', '$who_see', '$target_path')";
mysql_query($sql,$conn) or die("Errore!".mysql_error());
	}
   else   {
	    echo "Error in the process, try it again!";
	 }
}
else { echo "</br>Missing data</br>"; }
?>
ed ecco l'errore:

Notice: Undefined variable: category in C:\Program Files\EasyPHP-5.3.2\www\Sito\uploadOpera.php on line 60

Missing data
----
A me sembra tutto ok, è la pagina che viene quando clicco sul bottone per inviare un'immagine, vi metto anche l'altra pagina:
Codice:
<?php 
include("connessione.inc");
function autorizza(){
   if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
	    echo <<<MESS
			<p>You have logged in and you can submit a file.</p></br>
<p><b>Choose Sketch:</b>
<FORM enctype="multipart/form-data" action="uploadOpera.php" id="uploadOpera" method="POST" name="modulo">
 <input name="fileUtente" type="file" maxlength="1000"></p>
</br>
<p><b>Title</b></br>
Insert the title:<br>
<input type="text" name="title">
</br></p>
<p><b>Insert tags</b>:</br>
<input name="tag1" type="text" size="20" maxlength="30"></br>
<input name="tag2" type="text" size="20" maxlength="30"></br>
<input name="tag3" type="text" size="20" maxlength="30"></label>
</br>
</p><p>
 <b>Category</b></br>
 <input type="radio" name="category" value="nature" checked="checked"/>Nature
 <input type="radio" name="category" value="people"/>People 
 <br>
 <input type="radio" name="category" value="animal"/>Animal
 <input type="radio" name="category" value="other"/>Other
</p>
	</br>
<p><b>Description</b></br>Describe your sketch:</br>
   <textarea name="description" cols="40" rows="10" maxlength="300" onkeyup="ContaCaratteri()">
</textarea>
<input type="text" name="conta" readonly>
</p>
	</br>
	</br>
	<p><b>Who can see this sketch?</b></br>
   <select name="who_see" >
	 <option value="1" selected="selected">All users</option>
	 <option value="0">Only friends</option>
  </select></p>
	</br>
	</br>
  <button type="submit">
   submit
 </button>
MESS;
}
	 else {
	    echo "<p>We are sorry, you need to login to submit a file!</p>";
	 }
}
echo autorizza();
?>
Sapete aiutarmi? Ve ne sarei infinitamente grata :D
 
Sicuro che l'errore non sia alla riga 6 dove c'è:
PHP:
$category=$_POST["category"];
metti un
PHP:
var_dump($_POST);
all'inizio del codice e vedi se $_POST["category"] viene effettivamente inviata.
 
Sicuro che l'errore non sia alla riga 6 dove c'è:
PHP:
$category=$_POST["category"];
metti un
PHP:
var_dump($_POST);
all'inizio del codice e vedi se $_POST["category"] viene effettivamente inviata.
Scusate, ho inserito solo il php, se volete il codice completo eccolo:
PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<?php session_start(); ?>
<HTML>
<HEAD>
<TITLE>Upload Progress</TITLE><link href="style.css" rel="stylesheet" type="text/css">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
</HEAD>
<BODY>
<div align="center">
  <TABLE class="maintable" CELLPADDING="0" CELLSPACING="0">
    <TR> 
      <TD COLSPAN=3> <IMG SRC="images/index_01.gif" WIDTH=727 HEIGHT=240 ALT=""></TD>
    </TR>
    <TR> 
      <TD ROWSPAN=2 class="navbg" valign="top"><div id="nav">
          <p><span class="h2">Menu</span> <a href="index.php">Home</a> <a href="rules.php">Rules</a> 
            <a href="gallery.php">Gallery</a> <a href="upload.php">Upload</a> <a href="search.php">Search</a>
            <span class="endbox"></span> </p>
						
         
					
<?php 
if ((isset($_SESSION['login']))&&((isset($_SESSION['password'])))){
   echo <<<print
	 
	 <p><span class="h2">Logout</span> <a href="profile.php">Your Profile</a> <a href="logout.php">Logout</a><span class="endbox"></span> </p>
         <p><span class="h2">Friendship</span> <a href="users.php">Search user</a> <a href="friend.php">My friends</a> <a href="request.php">Friends request</a> <span class="endbox"></span> </p>
print;
}
else {
   echo <<<print
	 
	 <p><span class="h2">Sign in</span> <a href="create.html">Create account</a> <a href="login.htm">Login</a><span class="endbox"></span></p>
print;
}
echo <<<print

 </p>
        </div></TD>
      <TD ROWSPAN=2 class="contentbg" valign="top"><div id="content">
          
print;

 ?>
          <h1>Upload progress:</h1>
<?php 
include("connessione.inc");
var_dump($_POST);
$title=$_POST["title"];
$tag1=$_POST["tag1"];
$tag2=$_POST["tag2"];
$tag3=$_POST["tag3"];
$category=$_POST["category"];
$description=$_POST["description"];
$who_see=$_POST["who_see"];
$target_path="uploads/";
$date=date("j/M/Y");
$target_path = $target_path.basename( $_FILES['fileUtente']['name']); 
function control ($title, $tag1, $tag2, $tag3, $description){
   $result=true;
if ($title=="" or $tag1=="" or $tag2=="" or $tag3=="" or $category=="" or $description=="" or $who_see==""){
   $result=false;
} return $result;
}
if (control ($title, $tag1, $tag2, $tag3, $description) == true){
if  ($_FILES['fileUtente']['error'] == 0) {
   move_uploaded_file($_FILES['fileUtente']['tmp_name'], $target_path);
      echo "File ".basename( $_FILES['uploadedfile']['name'])." has been uploaded.</br> Now you have to wait that the administrator approve it.";   
     	   echo "<a href='upload.php'>Upload another image.</a>";   
$sql="INSERT INTO opere(title, tag1, tag2, tag3, category, description, who_see) VALUES('$title','$tag1', '$tag2', '$tag3', '$category', '$description', '$who_see', '$target_path')";
mysql_query($sql,$conn) or die("Error!".mysql_error());
	}
   else   {
	    echo "Error in the process, try it again!";
	 }
}
else { echo "</br>Missing data</br>"; }
?>




</br>
					</br>
					</br>
					</br>
          <h1>©SketchMania</h1>
      <TD valign="top" class="spacer"></TD>
    </TR><TR> 
      <TD height="2" class="spacer2"></TD>
    </TR><TR> 
      <TD COLSPAN=3 class="creditsbg">
				<p>| Contact us <a href="http://yahoo.com/" target="_blank">[email protected]</a> | </p></TD>
    </TR>
  </TABLE>
</div>
</BODY>
</HTML>
Ma devo risistemarlo, anche perché mi manca il lato amministrazione.
Ho inserito la stringa, e mi dà questo errore:
PHP:
array(7) { ["title"]=> string(5) "icona" ["tag1"]=> string(5) "icona" ["tag2"]=> string(5) "icona" ["tag3"]=> string(5) "icona" ["category"]=> string(5) "other" ["description"]=> string(17) "questa è un'icona" ["who_see"]=> string(1) "1" } 
Notice: Undefined variable: category in C:\Program Files\EasyPHP-5.3.2\www\Sito\uploadOpera.php on line 61

Missing data
Quindi credo che category lo prenda... Sinceramente non mi torna tanto la funzione controlla... Dove ho sbagliato secondo voi? Perché continua a dirmi che mancano dati?
 
Abbastanza ovvio

Falla così:
PHP:
function control ($title, $tag1, $tag2, $tag3, $description){
   $result=true;
if ($title=="" or $tag1=="" or $tag2=="" or $tag3=="" or $_POST['category']=="" or $description=="" or $who_see==""){
   $result=false;
} return $result;
}

Perchè $category altrimenti la vede come una variabile locale della funzione e non ti becca la post!
 
Falla così:
PHP:
function control ($title, $tag1, $tag2, $tag3, $description){
   $result=true;
if ($title=="" or $tag1=="" or $tag2=="" or $tag3=="" or $_POST['category']=="" or $description=="" or $who_see==""){
   $result=false;
} return $result;
}

Perchè $category altrimenti la vede come una variabile locale della funzione e non ti becca la post!
Grazie della risposta, ho fatto come hai detto e mi ha dato lo stesso problema con $who_see, quindi ho attuato lo stesso procedimento, ma continua a darmi l'errore missing data:
PHP:
array(7) { ["title"]=> string(5) "icona" ["tag1"]=> string(4) "fghj" ["tag2"]=> string(2) "gh" ["tag3"]=> string(3) "yui" ["category"]=> string(6) "nature" ["description"]=> string(4) "ghjk" ["who_see"]=> string(1) "1" } 
Missing data
Edit: errore risolto! Avevo fatto confusione tra i campi del database.
 
Ultima modifica:
romperanno pure ma sono fondamentali per la sicurezza di un'applicazione:)
 
Come insegna il caso di Borgo, prima o poi dovrò debellare questo forum dai "mici" :)

Chiudo la discussione che siamo disperatamente in OT
 
Stato
Chiusa ad ulteriori risposte.

Discussioni simili