Jump to content

PHP code, no idea why wrong, getting desperate


Recommended Posts

Hi, I'm having a lot of trouble with some code I am working on. I am trying to write a script that will allow me to ensure the appropriateness of pictures people upload before they appear on my website. To do that, I assign the value 1 to the screen column in the picture's corresponding mySQL db entry when every file is uploaded. I have a page that displays all the entries in the database with the value of one, and puts a little form box underneath. The columns in the database referenced in the code are: path (the filename of the picture like picture.jpg), name (the name the uploader selects to have displayed for the picture), description (the short line describing the picture that will be placed under the picture on the website).

Code:

<form action="done.php" method="post">
<?php
mysql_connect("localhost", "roughitf_firsty", "******") or die(mysql_error()); mysql_select_db("roughitf_first") or die(mysql_error()); //connects to the database
$data = mysql_query("SELECT * FROM uploads WHERE screen='1'") or die(mysql_error()); // This will load the entries that have not already been approved
$info = mysql_fetch_array($data);
echo "<h2><center>" . $info['name'] . "</h2>"; //Prints the name of the picture
echo "<center><br><br><br><br><img src='http://iequalsgamer.frih.net/useruploads/files/" . $info['path'] . "'><br><br>"; //prints the picture itself
echo "<center>" . $info['description'] . "<br><br>"; //prints the description
echo "<input type='checkbox' name='" . $info['path'] . "'> Is this inapropriate?<br><br>"; // Where i put in the decision, the input is named the path of the corresponding image
while($info = mysql_fetch_array($data)) //Loop, does same thing as above
{
echo "<h2><center>" . $info['name'] . "</h2>";
echo "<center><br><br><br><br><img src='http://iequalsgamer.frih.net/useruploads/files/" . $info['path'] . "'><br><br>";
echo "<center>" . $info['description'];
echo "<input type='checkbox' name='" . $info['path'] . "'> Is this inapropriate?<br><br>";
}
?>
<input type="submit">
</form>


That is the form code. It then sends the information to the code below, which goes through and deletes every entry that was checked by the form page, and changes the value to 2 on every entry that was not checked.

Code:

<?php
mysql_connect("localhost", "roughitf_firsty", "******") or die(mysql_error()); mysql_select_db("roughitf_first") or die(mysql_error()); //connects to the database
$data = mysql_query("SELECT * FROM uploads WHERE screen='1'") or die(mysql_error()); //Loads the entries again that have not been checked
$info = mysql_fetch_array($data);
$path = $info['path'];
$n = $_POST['$path']; //gets the value of the checkbox that corresponds to the picture
if ($n){
mysql_query("DELETE FROM uploads WHERE path ='$path'"); //deletes from the database when the checkbox was checked
unlink(files/$path); //This is supposed to delete the file, but I'm not sure whether it works, and is not the problem that concerns me
}
else {
$name = $info['name']; //loads the information about the entry for resubmitting
$description = $info['description'];
mysql_query("DELETE FROM uploads WHERE path ='$path'"); //deletes the entry
mysql_query("INSERT INTO uploads VALUES ( '$path','$name','$description','user','2')") or die(mysql_error()); //rewrites the entry with the value 2, marking that it has been checked
}
while($info = mysql_fetch_array($data)) //While loop just does the same thing over and over again
{
$path = $info['path'];
$n = $_POST['$path'];
echo $path . " <- PATH<br><br>";
if ($n){
mysql_query("DELETE FROM uploads WHERE path ='$path'");
unlink(files/$path);
}
else {
$name = $info['name'];
$description = $info['description'];
$rand = mysql_query("DELETE FROM uploads WHERE path ='$path'");
mysql_query("INSERT INTO uploads VALUES ( '$path','$name','$description','user','2')") or die(mysql_error());
}
}
?>


My problem is, the form does not appear to pass anything on, or atleast nothing my second piece of code can read. It always changes the value to 2, and never deletes it from the database. Thank you so much, I have been trying to find the problem in the code for over a week now.
Link to comment
Share on other sites

This line [code]<?php $n = $_POST['$path']; ?>[/code] is your problem. Remove the single quotes. When you use the single quotes, PHP will look for the index of with the literal sting [b]$path[/b], not the value of the variable [!--coloro:red--][span style=\"color:red\"][!--/coloro--][b]$path[/b][!--colorc--][/span][!--/colorc--]. Also remove the single quotes from a similar line later.

Your method still may not work, since only checkboxes that were checked are returned to your script.

Why do you do your code once and then again in the "while" loop? Just do all your code in the "while" loop.

Ken
Link to comment
Share on other sites

Thanks for the help, guys. The code still seems to be malfunctioning, but I really appreciate the attempt. I doubled the code because the code I learned off of at php.about.com was doubled, so I wasn't sure whether it was necessary. I've tried changing the checkbox around, but the POST still seems to return nothing. Ah well, I'll keep trying. And thanks again.
Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.