eMonk
-
Posts
223 -
Joined
-
Last visited
Posts posted by eMonk
-
-
What am I doing wrong in the code below?
$qry1 = $db->prepare("SELECT id FROM user WHERE username = ? AND password = ?"); $qry1->bind_param('ss', $_GET['username'], sha1($_GET['password'])); $qry1->execute(); $db->bind_result($result_1);
Fatal error: Call to undefined method mysqli::bind_result()
-
Ah, I believe I understand it now.
The use of bind_param is for the values stored within a table.
Thanks!
-
I want to switch to mysqli_prepared statements but have a question before I start.
example 1
$query = $mysqli->prepare('SELECT * FROM users WHERE username = ?'); $query->bind_param('s', $_GET['username']); $query->execute();
example 2
$query = $mysqli->prepare("SELECT * FROM users WHERE username = 'Rick' "); $query->execute();
Is bind_param always necessary and why, for security reasons?
-
The emails being sent out are notifications that their accounts have been approved along with their login and password.
I don't want the people in the BCC recipients list to see all addresses in the list. So, emailing users separating in the foreach loop would be best for this?
-
Would it be better not to mail and loop or to create a BCC list by imploding the recipients list and send them out in one single blast?
-
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Control Panel</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="../style.css" rel="stylesheet" type="text/css"> </head> <body class="text"> <h1>Pending Ads</h1> <form action="" method="post"> <?php include("../includes/connect.php"); $query_1 = "SELECT id, name, last_updated FROM model WHERE status = 'Pending' ORDER BY last_updated DESC"; $result_1 = $db->query($query_1); $num_results = $result_1->num_rows; echo "<p>Number of results found: ".$num_results."</p>"; for ($i=0; $i <$num_results; $i++) { $row = $result_1->fetch_assoc(); $id = $row['id']; $name = $row['name']; $date = $row['last_updated']; echo "<hr>"; echo "<table width=\"450\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">"; echo "<tr>"; echo "<td><input name=\"checkbox[]\" type=\"checkbox\" id=\"checkbox[]\" value=\"".$id."\"></td>"; echo "<td>"; echo "<b>id:</b> $id<br>"; echo "<b>name:</b> $name<br>"; echo "<b>date:</b> $date<br>"; echo "<a href=\"update.php?id=$id\" target=\"_blank\">Edit</a>"; echo "</td>"; echo "</tr>"; echo "</table>"; } ?> <p><hr><input type="submit" name="approve" value="Approve"> <input type="submit" name="delete" value="Delete"></p> <?php include('../pear/Mail-1.2.0b1/Mail.php'); $error = 0; if (isset($_POST['approve']) && $num_results > 0) { foreach ($_POST['checkbox'] as $index => $val) { $query_2 = "SELECT account_id, name, email, DATE_FORMAT(expiry_date, '%b %e, %Y') AS expiry_date_formatted FROM model WHERE id = $val AND status = 'Pending' "; $result_2 = $db->query($query_2); $list = $result_2->fetch_assoc(); $account_id = $list['account_id']; $query_3 = "UPDATE model SET status = 'Active' WHERE id = $val AND status = 'Pending' "; $result_3 = $db->query($query_3); $password = substr(md5(uniqid(rand(),1)),rand(0,21),; $query_4 = "UPDATE member SET password = sha1('$password') WHERE model_id = $val AND account_id = $account_id "; $result_4 = $db->query($query_4); // This part isn't sending out emails $recipients = "".$list['email'].""; $headers['From'] = "someone@somewhere.com"; $headers['To'] = "".$list['email'].""; $headers['Subject'] = "Hello Hello Hello!"; $body = "Hi ".$list['name'].",\n\n" . "Account Number: ".$list['account_id']."\n\n" . "Password: ".$password."\n\n" . "Expiry Date: ".$list['expiry_date_formatted']."\n\n" . "Regards,\n" . "Admin"; $params['sendmail_path'] = "/usr/lib/sendmail"; // Create the mail object using the Mail::factory method $mail_object =& Mail::factory('sendmail', $params); $mail_object->send($recipients, $headers, $body); } } if ($result_1 && $result_2 && $result_3 && $result_4 && $error == 0) { echo "<meta http-equiv=\"refresh\" content=\"0;URL=pending-ads.php\">"; } ?> </form> </body> </html>
Everything seems to be working except the email portion. Any ideas?
-
I switched the following and it seems to be working correctly now..
WHERE CURDATE() > expiry_date
-
What am I doing wrong in the following query?
$query = "SELECT id, expiry_date FROM pets WHERE expiry_date > CURDATE() AND status = 'Active' "; $result = $db->query($query);
It's fetching all rows when it should be none.
The CURDATE echo is "2012-02-11"
And here's some of my expiry_date data:
2012-02-13
2012-02-14
2012-02-19
What am I doing wrong? I'm just trying to select rows where expiry_date is greater then the current date.
-
Ah I see... Thanks PFMaBiSmAd it's working now!
-
Your test date of "2012-02-13" is in the future. Your query is trying to match dates BETWEEN 5 days ago AND the current date.
How would I get matches between 5 days after the current date?
i tried
BETWEEN CURDATE() + INTERVAL 5 DAY AND CURDATE()
but still no results.
-
I'm trying to perform the following query but it's fetching 0 results.
$query = "SELECT expiry_date FROM pets WHERE expiry_date BETWEEN CURDATE() - INTERVAL 5 DAY AND CURDATE() AND status = 'Active' AND reminder_sent = 0"; $result = $db->query($query); $num_results = $result->num_rows; if ($num_results == 0) { echo "No results found."; exit; }
I have a expiry_date column with the data "2012-02-13" so it should be displayed in the results. The column is varchar(10) and I'm entering in the data manually YYYY-MM-DD format. What am I doing wrong?
-
Update: That worked DavidAM. I couldn't sleep so had to try it lol. Thanks again!
-
That logic makes sense DavidAM. I'll try it in a few hours when I wakeup and report back. Thanks!
-
I can't use mysqli_insert_id because I have 2 tables to have auto increment so I'm trying to update the pets table with the updated account id data. How can this be done?
$query_1 = "INSERT INTO pets VALUES ('', '', dog)"; $result_1 = $db->query($query_1);
The second value is left blank because it's auto incremented in the member table and where account_id goes.
-
<?php include("../includes/connect.php"); $query_1 = "INSERT INTO pets VALUES ('', '', dog)"; $result_1 = $db->query($query_1); $id = mysqli_insert_id($db); // Here's where I'm having problems fetching the data that was just inserted. $query_2 = "SELECT MAX(id) FROM pets"; $result_2 = $db->query($query_2); $row = $result_2->fetch_assoc(); $pet_id = $row['MAX(id)']; $query_3 = "SELECT account_id FROM member WHERE pet_id = $id"; $result_3 = $db->query($query_3); $row_2 = $result_3->fetch_assoc(); $account_id = $row_2['account_id']; $query_4 = "UPDATE pets SET account_id = $account_id WHERE id = $id"; $result_4 = $db->query($query_4); ?>
Any ideas?
-
It's working now. Weird, the code I had wasn't the same as the one you posted. I probably need more sleep.
Thanks again playful!!
-
The http text is there originally. Don't want it there all the time just when the user enters it in $description.
-
That worked but now it's removing http:// from the text. How can you keep it intact?
Thanks for your help playful. Much appreciated!!
-
That worked but if the user enters in a url with http:// it doesn't get included in the a href link and appears as normal text.
Also for email links:
$description = eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})', '<a href="mailto:\\1">\\1</a>', $description);
See any an needed stuff here? Thanks for your help!! I'll be purchasing a book or read online tutorials how this stuff works in the upcoming weeks. It looks confusing at first glance.
-
I have it in the a function. Here's the complete code:
$description = $row['description']; function autolink($description) { $description = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2">\\2</a>', $description); return $description; }
-
I'm try to add target="_blank" in the following a href so the link opens in a new tab. How can this be done?
$description = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_\+.~#?&//=]+)', '\\1<a href="http://\\2">\\2</a>', $description);
I tried <a href="http://\\2" target="_blank">\\2</a> but it didn't work.
-
if (file_exists("images/".$id."/img01.jpg")) { echo "<a href=\"/v1/images/".$id."/img01.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb01.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img02.jpg")) { echo "<a href=\"/v1/images/".$id."/img02.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb02.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img03.jpg")) { echo "<a href=\"/v1/images/".$id."/img03.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb03.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img04.jpg")) { echo "<a href=\"/v1/images/".$id."/img04.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb04.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img05.jpg")) { echo "<a href=\"/v1/images/".$id."/img05.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb05.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img06.jpg")) { echo "<a href=\"/v1/images/".$id."/img06.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb06.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img07.jpg")) { echo "<a href=\"/v1/images/".$id."/img07.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb07.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img08.jpg")) { echo "<a href=\"/v1/images/".$id."/img08.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb08.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a> "; } if (file_exists("images/".$id."/img09.jpg")) { echo "<a href=\"/v1/images/".$id."/img09.jpg\" rel=\"lightbox\"><img src=\"/v1/images/".$id."/thumb09.jpg\" class=\"img\" border=\"0\" width=\"60\" height=\"60\"></a>"; }
This code works but it just seems a bit tedious. I may also include up to 20 images to check if they exist. Better way to do this?
-
This is creating the \r\n tags...
<textarea name=\"description\" cols=\"70\" rows=\"15\">$description</textarea>
The echoed results include the tags automatically.
I can get the variables to match but not if it includes line breaks for some reason.
-
That didn't work either. The only one that removed the \r\n tags was:
$user_description = str_replace(array("\r","\n",'\r','\n'),' ', $user_description);
Even with the removed \r\n tags it still doesn't match. I also tried the following:
$user_description = str_replace("\r\n",'', $user_description); $user_description = preg_replace("/[rn]+[st]*[rn]+/","n",$user_description); $user_description = preg_replace("!\r|\n!m",'',$user_description); $user_description = preg_replace('/\r\n|\r|\n/m','',$user_description); $user_description = trim_chars('$user_description', '\r\n'); $user_description = trim($user_description, '\r\n'); $user_description = str_replace('\r\n', "<br/>", $user_description); $user_description = preg_replace("/\r\n|\n|\r|rn/", "<br />", $user_description);
bind_result
in PHP Coding Help
Posted
I'm trying this now but still getting an error:
Fatal error: Call to undefined method mysqli_stmt::get_result()
I'm new to mysqli prepared statements been reading about it online and in my php book but can't seem to figure this part out?