-
Posts
124 -
Joined
-
Last visited
-
Days Won
1
Everything posted by happypete
-
Thanks for the comments, I will do some more research.
-
-
Hi, I'm trying to edit some database fields, I have text1, text2, text3, text4, text5, text6 etc.. They are displayed on the index.php page, with an edit link so the user can choose which set to edit // Extract details from database $sql = "SELECT * FROM data WHERE id=1"; $stmt = $db->prepare($sql); $stmt->execute(); $e = $stmt->fetch(); <h1><?php echo $e['text1']) ?></h1> <p><?php echo ($e['text2']); ?></p> <p><a href="edit.php">EDIT</a></p> <h1><?php echo $e['text3']) ?></h1> <p><?php echo ($e['text4']); ?></p> <p><a href="edit.php">EDIT</a></p> <h1><?php echo $e['text5']) ?></h1> <p><?php echo ($e['text6']); ?></p> <p><a href="edit.php">EDIT</a></p> edit.php: // Extract details from database $sql = "SELECT * FROM data WHERE id=1"; $stmt = $db->prepare($sql); $stmt->execute(); $e = $stmt->fetch(); <form method="post" action="process.php" enctype="multipart/form-data"> <label>Page Title <input type="text" name="text1" maxlength="90" value="<?php echo $e['text1'] ?>" /> </label> <br> <label>Title Text</label> <textarea name="text2"><?php echo $e['text2'] ?></textarea> <input id="button" type="submit" name="submit" value="Save Changes" /> and then update them: process.php $sql = "UPDATE data SET text1=?, text2=? WHERE id=1 LIMIT 1"; $stmt = $db->prepare($sql); $stmt->execute( array( $_POST['text1'], $_POST['text2'] ) ); $stmt->closeCursor(); Question: How can I pass the form values dynamically from the index.php page so I don't have to hard code text1, text2 etc into the edit.php and process.php page and have a different update & process page for each set of data? Thanks in advance.
-
awesome, that worked. thanks
-
I'm getting the following errors: Notice: Undefined index: field Notice: Undefined index:content I'm getting a Status 200 and the content is passed: content zbzbfff<br> field text1 so I cant work out why it says there are undefined index??? ------------------------------------------------------ error message: <br /> <font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'> <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: field in C:\wamp\www\archive\SmallProjects\cke-backup\save.php on line <i>9</i></th></tr> <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0007</td><td bgcolor='#eeeeec' align='right'>369704</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\archive\SmallProjects\cke-backup\save.php' bgcolor='#eeeeec'>..\save.php<b>:</b>0</td></tr> </table></font> <br /> <font size='1'><table class='xdebug-error xe-notice' dir='ltr' border='1' cellspacing='0' cellpadding='1'> <tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Notice: Undefined index: content in C:\wamp\www\archive\SmallProjects\cke-backup\save.php on line <i>13</i></th></tr> <tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr> <tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr> <tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0007</td><td bgcolor='#eeeeec' align='right'>369704</td><td bgcolor='#eeeeec'>{main}( )</td><td title='C:\wamp\www\archive\SmallProjects\cke-backup\save.php' bgcolor='#eeeeec'>..\save.php<b>:</b>0</td></tr> </table></font> OK <?php ini_set('display_errors',1); error_reporting(E_ALL); include('inc/db.php'); // Extract details from database $stmt = $db->prepare("SELECT * FROM data WHERE id=1"); $stmt->execute(); $e = $stmt->fetch(); $edit = "yes"; ?> <!DOCTYPE html> <!--[if lt IE 7 ]><html class="ie ie6" lang="en"> <![endif]--> <!--[if IE 7 ]><html class="ie ie7" lang="en"> <![endif]--> <!--[if IE 8 ]><html class="ie ie8" lang="en"> <![endif]--> <!--[if (gte IE 9)|!(IE)]><!--><html lang="en"> <!--<![endif]--> <head> <meta charset="utf-8"> <title></title> <meta name="keywords" content=""/> <meta name="description" content=""/> <meta name="author" content=""> <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"> <link rel="stylesheet" href="stylesheets/base.css"> <!--[if lt IE 9]> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!-- Favicons ================================================== --> <link rel="shortcut icon" href="images/favicon.ico"> <link rel="apple-touch-icon" href="images/apple-touch-icon.png"> <link rel="apple-touch-icon" sizes="72x72" href="images/apple-touch-icon-72x72.png"> <link rel="apple-touch-icon" sizes="114x114" href="images/apple-touch-icon-114x114.png"> <link href='http://fonts.googleapis.com/css?family=Coming+Soon' rel='stylesheet' type='text/css'> <script type="text/javascript"> var _gaq = _gaq || []; _gaq.push(['_setAccount', 'UA-#######-##']); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script></head> <body onLoad="initialize()"> <!--[if lte IE 9]><script src="js/respond.js"></script><![endif]--> <!-- ================================================== --> <div class="container"> <div class="sixteen columns"> <div id="message"></div> <p><a id="vacationrentalbariloche"></a></p> <p> </p> <h1 <?php if ($edit == "yes") { echo 'contenteditable="true" rel="text1"';} ?>> <?php echo html_entity_decode(stripslashes($e['text1'])) ?></h1> <h5 <?php if ($edit == "yes") { echo 'contenteditable="true" rel="text2"';} ?>> <?php echo html_entity_decode(stripslashes($e['text2'])) ?></h5> </div><!-- container --> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script> <!--<script src="jquery 1.9.0.js"></script>--> <script src="ckeditor/ckeditor.js"></script> <script src="ckeditor/customize-toolbar.js"></script> <script src="saving.js"></script> <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> <script src="js/pikadate.js"></script> <script src="js/all.js"></script> </body> </html> saving.js: // JavaScript Document /* This bit of code saves the editable area every 60 seconds when it is being edited, but I also want it so be saved when the user deselects the text area & it need to save multiple editable areas - only save the editable area that is being edited or was selected, DON'T save all editbale areas at once just the one being edited at the time. */ /* provide feedback to use that content saved when deselected 'content saved message' and every 60 seconds 'autosave message' */ /* instance will be created for every element, and for every element we will set listeners for focus and blur events */ /* when element is in focus, interval is set, to save data every 60 sec. Beside that, we will keep interval ID to destroy him once element is blured */ CKEDITOR.on( "instanceReady", function(event) { var element=event.editor.element.$; $(element).on("focus", function(){ var intervalID=setInterval(function(){ saveData($(this), true); }, 30000); // 30000 = 30 seconds autosave $(this).data("intervalID", intervalID); }); $(element).on("blur", function(){ var intervalID=parseInt($(this).data("intervalID"), 10); clearInterval(intervalID); saveData($(this), false); }); } ); //function saves data from CKEditor into the database, element is jQuery element that contain data that needs to be saved //auto is just a flag that tells us what message to display after save - "autosave" or "update" function saveData(element, auto) { $.ajax({ method:"post", url:"save.php", data:{"field":element.attr("rel"), "content":element.html()}, success: function(status){ if(status==="OK") { var message; if(auto===true) { message="Autosave completed"; } else { message="Saved"; } $('#message').html(message).stop().hide().fadeIn(200).fadeOut(2500); } else { alert(status); //alert("Error: System cannot save your changes"); } } }); } and the PHP - save.php <?php include('inc/db.php'); // Update data $sql = "UPDATE data SET ".$_POST['field']."=:content WHERE id=1"; $stmt = $db->prepare($sql); $content=$_POST['content']; $stmt->bindParam(":content", $content); $stmt->execute(); $stmt->closeCursor(); echo "OK"; return; ?>
-
importing ical and displaying in a custom calendar
happypete replied to happypete's topic in Application Design
OK sorted it based on this: http://code.google.com/p/ics-parser/ to create an array of the booked dates -
Hi, I'm trying to combine an array (if that's the right way to describe it..??) I have this Array ( [0] => Array ( [0] => 2013-07-14 [1] => 2013-07-15 [2] => 2013-07-16 [3] => 2013-07-17 ) [1] => Array ( [0] => 2013-08-02 [1] => 2013-08-03 [2] => 2013-08-04 [3] => 2013-08-05 [4] => 2013-08-06 ) [2] => Array ( [0] => 2013-10-06 [1] => 2013-10-07 [2] => 2013-10-08 [3] => 2013-10-09 ) ) and i want this: Array ( [0] => 2013-07-14 [1] => 2013-07-15 [2] => 2013-07-16 [3] => 2013-07-17 [4] => 2013-08-02 [5] => 2013-08-03 [6] => 2013-08-04 [7] => 2013-08-05 [8] => 2013-08-06 [9] => 2013-10-06 [10] => 2013-10-07 [11] => 2013-10-08 [12] => 2013-10-09 )
-
I'm using the http://code.google.com/p/ics-parser/ to extract the start and end date from my ical file: $array =($ical1->events()); $newArray = array(); foreach ($array as $k => $v) { $newArray[$k]['startRange'] = date("Y-m-d", strtotime($v['DTSTART'])); $newArray[$k]['endRange'] = date("Y-m-d", strtotime($v['DTEND'])); } print_r(newArray) which returns this: Array ( [0] => Array ( [startRange] => 2013-07-14 [endRange] => 2013-07-26 ) [1] => Array ( [startRange] => 2013-08-02 [endRange] => 2013-09-12 ) [2] => Array ( [startRange] => 2013-10-06 [endRange] => 2013-10-10 ) [3] => Array ( [startRange] => 2013-10-17 [endRange] => 2013-10-28 ) [4] => Array ( [startRange] => 2013-11-05 [endRange] => 2013-11-13 ) [5] => Array ( [startRange] => 2013-11-14 [endRange] => 2013-11-23 ) [6] => Array ( [startRange] => 2013-12-18 [endRange] => 2014-01-05 ) ) OK, so I found this to print out all dates between a start and end date: $begin = new DateTime('2013-02-01'); $end = new DateTime('2013-02-07'); $daterange = new DatePeriod($begin, new DateInterval('P1D'), $end); foreach($daterange as $date){ echo $date->format("Y-m-d") . "<br>"; } This prints out: 2013-02-01 2013-02-02 2013-02-03 2013-02-04 2013-02-05 2013-02-06 The question: How do I do the same with the ical file to print out the start date, all the dates in between and the end date for each event and put it in an array like this: Array ( [0] => 2014-03-12 [1] => 2014-03-13 [2] => 2014-03-14 [3] => 2014-11-21 [4] => 2014-11-22 [5] => 2014-11-23 [6] => 2014-11-24 [7] => 2014-11-25 [8] => 2014-11-26 )
-
If you are new to PHP you probably wont have the skills to code you own secure login. You your try one like this: http://www.php-login.net/ or at least look at the code to see how it is done.
-
Need advice on a secure way to let users upload a profile picture.
happypete replied to w1zzerd's topic in Application Design
You will need to resize the images and validate them as well. Here is something I was working on a while back: http://forums.phpfreaks.com/topic/268852-image-upload-validation-not-working/page-2?do=findComment&comment=1381699 -
Building a web interface to query MySQL database
happypete replied to Hoods's topic in Application Design
Surely you will design the interface yourself since you are proficient in HTML/CSS, Look at some examples for inspiration or purchase a pre-designed admin template:https://www.google.com/#q=admin+templates The rest will just be some CRUD; personally I prefer PDO over MySQLi: https://www.google.com/search?q=php+pdo+crud -
Can someone set me off in the right direction please. I'm trying to create an availability calendar by importing dates from an ical file. Basically I'm trying to export booked dates from an airbnb listing and show them on a custom calendar on a personal website. Thanks in advance.
-
Hi, I'm trying the following query but it seems to ignore the part about the date.... "SELECT * FROM data WHERE incident = '1' OR incident = '2' OR incident = '3' AND (DATE(date) BETWEEN 2013-08-19 AND 2013-10-04)" I've tried different formats: "SELECT * FROM data WHERE incident = '1' OR incident = '2' OR incident = '3' AND (date >= '2013-08-19' AND date <= '2013-10-04')" some guidance in the right direction would be great!
-
awesome, thanks very much, it works I added this: [a-z]+ to the .htaccess file: RewriteEngine on RewriteRule ^([a-z]+[0-9]+)$ /item.php?id=$1 then changed the links to this, so it would show link1 as opposed to just 1 <ul> <li> <a href="/link1">Item 1</a></li> <li> <a href="/link2">Item 2</a></li> <li> <a href="/link3">Item 3</a></li> <li> <a href="/link4">Item 3</a></li> </ul>
-
Yes, sorry I'm still confused, I just can't get my head round it... index.php <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <ul> <li> <a href="item1.php">Item 1</a></li> <li> <a href="item2.php">Item 2</a></li> <li> <a href="item3.php">Item 3</a></li> <li> <a href="item4.php">Item 3</a></li> </ul> </body> </html> item.php <?php $item = $_GET['id']; ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> </head> <body> <?php echo $item; ?> </body> </html> .htaccess RewriteEngine on RewriteRule ^([0-9]+)$ /item.php?id=$1 So if I click item1.php in the index.php page I want to be directed to item1.php and $item should be '1' item1.php doesn't exist.....
-
I am working on a database drive website. On my index page I have a menu like this: <ul> <li> <a href="item1.php">Item 1</a></li> <li> <a href="item2.php">Item 2</a></li> <li> <a href="item3.php">Item 3</a></li> <li> <a href="item4.php">Item 3</a></li> </ul> I currently have created separate pages (item1.php / item2.php / item3.php....) Each page calls data from a database based on row 'id': 'item1.php' uses: SELECT * FROM items WHERE id = 1 etc. All 'item' pages are identical except for the fact that they call different rows from the database: item1.php calls id=1, item2.php calls id=2 etc I'm thinking to use a single page (item.php) and populate it based on the $_GET['id'] ie: item.php?id=1 Is there way to write clean URL's with .htaccess and have it so if clicking on the item1.php menu in the index page that it will call item.php but display it as item1.php and fill it will details from the database based on id=1 ? The idea is that I will have hundreds of pages item1.php to item999.php but don't want to have to create a new page for each database row when all pages will be identical except for the fact that they import a different row from the databse. At the same time I want pages item1.php to item999.php to be index by the search engines... I hope I have explained this properly...?
-
any thought or comments on my current code?
-
Thanks, but that's too complicated for my target audience.
-
I'm creating a CMS and was going to use a WYSIWYG editor but as they don' t work work on a lot of mobile devices & I only need simple inputs, I decided to just try plain text and convert it to HTML when saving it to the database. I searched high and low with google to find a secure/usable solutions/functions etc but found none, so I came up with the following. Am I doing it the right way, is there a better way? I will probably also use 'http://htmlpurifier.org/' to remove scripts and malicious inputs etc.. <?php $text = "Some text in one line an email address [email protected] A link without http: www.google.com Link with http:// http://www.google.com accents: montañas new paragraph *asteriks* new paragraph" ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Text to HTML</title> </head> <body> <form name="input" action="" method="post"> <textarea name="message" rows="12" cols="50"> <?php if($_SERVER['REQUEST_METHOD']=='POST') { echo ($_POST['message']); } else { echo $text;}; ?> </textarea> <input type="submit" value="Submit"> </form> <?php if($_SERVER['REQUEST_METHOD']=='POST') { $message = ($_POST['message']); $message = htmlentities($message); $message = str_replace("\n\r" , '</p><p>', $message); $message = str_replace("<p></p>" , '<p> </p>', $message); $message = str_replace("\n" , '<br>', $message); $message = str_replace("<p><br>" , '<p>', $message); $message = str_replace("<br></p>" , '</p>', $message); $message = preg_replace('/([a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})/' , '<a href="mailto:$1">$1</a>', $message); $message = preg_replace('/((ht|f)tp:\/\/[^\s&]+)/','<a href="$1">$1</a>', $message); echo "<p>$message</p><br>"; echo htmlentities("<p>$message</p>"); } ?> </body> </html> This produces the following: Some text in one line an email address [email protected] A link without http: www.google.com Link with http:// http://www.google.com accents: montañas new paragraph *asteriks* new paragraph <p>Some text in one line <br>an email address <a href="mailto:[email protected]">[email protected]</a> <br>A link without http: www.google.com <br>Link with http:// <a href="http://www.google.com">http://www.google.com</a> <br>accents: montañas </p><p>new paragraph <br>*asteriks* </p><p> </p><p>new paragraph</p>
-
this post might help: http://forums.phpfreaks.com/topic/268852-image-upload-validation-not-working/page-2?do=findComment&comment=1381699 just resize the image twice (process.php): (this script below also creates a randon name, its just a copy and past from one of my projects) // *** Create 'random number' + 'random_name' for image name $imagename = time() . '_' . mt_rand(1000,9999) . '_' . 'randon_name' . '.jpg'; // What Directories to put the images $largelocation = '/home/public_html/images/'; $thumblocation = '/home/public_html/images/thumb/'; //thumbnail location $large = $largelocation . $imagename; $thumb = $thumblocation . $imagename; // *** 1) Initialise / load image $resizeObj = new resize($newPath); // *** 2) Resize LARGE image (options: exact, portrait, landscape, auto, crop) $resizeObj -> resizeImage(800, 600, 'auto'); //was 650, 487 wass 667, 500 // *** 3) Save image + define quality $resizeObj -> saveImage($large, 85); // *** 4) Initialise / load image for second resize $resizeObj = new resize($newPath); // *** 5) Resize THUMB (options: exact, portrait, landscape, auto, crop) $resizeObj -> resizeImage(150, 100, 'crop'); //was 220, 165 // *** 6) Save image + define quality $resizeObj -> saveImage($thumb, 85);
-
Adding SMTP Auth. to PHP form to email..completely lost.
happypete replied to jmiller145's topic in PHP Coding Help
You have the variable $body ($mail = $smtp->send($to, $headers, $body); ) but you haven't defined it, something like this depending on the fields in the form... $body= 'Name: '.$_POST['name'].'<br /> Email: '.$_POST['email'].'<br /> Phone: '.$_POST['phone'].'<br /> Message:<br /><br /> '.nl2br($_POST['message']).' '; -
Sending Form Mail With Smtp And Using Gmail For Email
happypete replied to happypete's topic in PHP Coding Help
thanks for the response - sorry didn't know what section to put it in, but someone answered it so the desired result was achieved -
This is your second thread with problems receiving email. The script in the previous thread uses the mail() function so send email, it may be your web host has disabled it for security reasons. My current web host disabled it on their servers a year ago so I chnaged to use SMTP with PHPMailer: http://forums.phpfreaks.com/topic/268115-make-a-php-contact-form-use-smtp/
-
Sending Form Mail With Smtp And Using Gmail For Email
happypete replied to happypete's topic in PHP Coding Help
I want to use gmail rather than the webmail that comes with my hosting to keep my personal gmail email in the same place as my website email so I dont have to sign into 2 different accounts? So can I use SMTP to send via email using smtp:mydomain.com via my server AND use a gmail account or do I have to chnage the MX records and will then have problems with the smtp:mydomain.com going via my server?