PHP - Quotation Nightmare
I have the " or the ' all wrong. Can someone tell me how to do the quoation marks correctly so I dont get a syntax error:
as can be seen, the date 10/5/14 is not a variable but I want to convert it to a format that can go into a DATE field. Code: [Select] $query = "update table set expir_date = date("Y-m-d", 10/5/14) where id = '$id' "; Similar Tutorialsi have this code: <input onclick='window.location.href="http://www.computerhope.com"' class='button_inline' type='button' name='view' value='View' /> Which is perfectly fine if it wasn't because it is being echoed in php, and then the double quotes f**k up. An easy fix? I made a template class recently and the only problem I'm having with it is that when I pull the HTML through if I add double quotes anywhere it breaks the code. I understand why its breaking sorta but I can't figure out how to fix it. Code: (HTML) [Select] <html> <head> </head> <body> <p id='Element'>"Something in quotes"</p> </body> </html> Code: (PHP) [Select] $string = $template->myMethod();//Returns the html in a string eval("\$HTML = \"$string\";"); //The error happens during the evaluation here echo($HTML); The string breaks with double quotes during the eval method and I've tried replacing the " mark with \" by using str_replace but i haven't been able to get it to work. Thanks for your replies Hi everyone, I am having a problem with using quotation marks / apostrophe with php and mysql. If I enter the following lines in mysql. "user's resume" when I do a query from mysql i get back " User\'s resume" it's adding a slash before the apostrophe. How can I fix this ? Thanks. I am having a problem with my code and would be grateful if someone could point me in the right direction. Please see my code below: <?php $dbcon = mysqli_connect('localhost','user','','videos'); $sql='SELECT * FROM videos'; $result = mysqli_query($dbcon, $sql); $row = mysqli_fetch_array($result); $image = $row['image']; $title = $row['title']; $description = $row['description']; echo '<a href="#"> <div class="thumb" style="background-image: url("' . $image . '");"></div> </a> </div> <div class="column-content"> <p class="column-title">Latest Video</p> <p class="column-heading"><a href="#">' . $title . '</a></p> <div class="video-description"> <p>' . $description . '</p>' mysqli_close($dbcon); ?> Now the connection to the database works, also the title and description is fine too. The problem is with the image. I cannot get it to display and I'm sure it has something to do with the quotation marks but I don't know in what order they should be. If I just use html the code for the image would be : <div class="thumb" style="background-image: url('image.jpg');"></div> with just a single quotation around the image url. Any help would be much appreciated.
Tony Hi all... once again I am trying to re-educate my self into PHP after a long gap. I do not have a problem as such just a question... here is part of my script that doesnot work; <? $sql= "INSERT INTO member ( username, ) VALUES ( \"$_SESSION['nm_username']\", \"$_SESSION['nm_email']\" )"; ?> The above errors because there are single quotation marks in the session variables. When I remove them the script works and the values of the variables seem to be correct! My question is - do I NEED the quotation marks in the variable and if so how should I write the query? Regards hello, i have this text file attached, and I am currently extracting the data from it. and yeah, I know how..but the problem is the double quotation marks. the last double quotation mark doesn't go away,,,am also aware that trim() only accepts strings. but how come, it does remove the first double quotation mark and leave the 2nd one. here's my script, feel free to download the file and try my script in your own localhost and tell me what's wrong . Thanks in advance $fh = fopen('iso3166.txt','r'); while(!feof($fh)) { $lines = fgets($fh); $parts = explode(",",$lines); print trim($parts[1],'"')."<br />"; } fclose($fh); Hi, I am somewhat new to PHP but I have a little experience. I am having trouble coding this script to set variables with extra quotations and replacing some exploded strings. Here is the script. Code: [Select] <?php $ToCutDown = "[{"parentMessageId":-1,"message":"%3Ca%20href%3D%27%23%27%20class%3D%27standardLink%27%20onclick%3D%27showMobStats%28674542538%29%3B%27%3Eaka%20Bubbles%3C%2Fa%3E%20broadcast%20a%20message%3A%20%3Cfont%20color%3D%27red%27%3E%22Place%20Bounty%20on%20%26quot%3Baka%20Bubbles%26quot%3B%20%28Minimum%20of%20%2418%2C107%2C899%2C000%29%22%3C%2Ffont%3E%2E","id":28152301,""; $Exploded = explode("[{"parentMessageId":-1,"message":"", $ToCutDown); $Exploded = explode(","id":28152301,"", $Exploded[0]); $Exploded = urldecode($Exploded[1]); $StringReplace = str_replace("<a href='#' class='standardLink' onclick='showMobStats(674542538);'>", "", $Exploded); ?> So I'm trying to work with specific strings that have quotation marks in them (Which cannot be removed) & I'm having a hard time using them in variables and in any function that requires you to choose parameters with either ' ' or " ". Any suggestions would be appreciated thanks MOD EDIT: [code] . . . [/code] tags added. Hi ppl, I have problem in preparing the sql statement which requires attribrute from another sql statement. This is the scenario as in PHP code. $sql1="SELECT attrb1 from table1"; $sql2="SELECT attrb2 fromt table2 where attrb3=".$sql['attrb1']"; What and where is the correct placement of these s'quotes or d'quotes should be? Please help. Thank you. I imagine there are lots of ways to answer this question, so I just want people's opinions as to the best way (if there is one). I have code with a basic form that submits data to a MySQL database. So when someone submits data the first time, I "clean it up" by doing... Code: [Select] $_POST['data'] = trim(mysql_prep($_POST['data'])); .. and then submit that info into a "varchar" mySQL field. Then if the user comes back to edit it, the form comes up and the data they previously entered is pulled into the field this way (I'm leaving out the MySQL to pull the data, obviously)... Code: [Select] <input type="text" name="field" value="<?php echo $data;?>"> The problem is that if someone entered this originally... Code: [Select] Here is "some" data with apostrophes ...Then when I echo that back into the value of the text field, it would only show... Code: [Select] Here is "...and then cuts off because the quotation mark in the data conflicted with the quotation mark after value= Is htmlentities the answer here, or is there some other/better way? FYI... Code: [Select] function mysql_prep($value) { $magic_quotes_active = get_magic_quotes_gpc(); $new_enough_php = function_exists("mysql_real_escape_string") ; //i.e. PHP >= v4.3.0 if($new_enough_php) { //PHP v4.3.0 or higher //undo any magic quote effects so mysql_real_escape_string can do the work if($magic_quotes_active) { $value = stripslashes($value) ;} $value = mysql_real_escape_string($value); } else { //before php v4.3.0 // if magic quotes aren;t already on then add slashes manually if(!magic_quotes_active) { $value = addslashes($value); } // if magic quotes are active, then the slashes already exist } return $value; } I embed videos on my site. I submit the embed codes to my database using a form. The codes look like this:
<iframe width="560" height="315" src="//www.youtube.com/embed/xDIgbjDGsOM?rel=0" frameborder="0" allowfullscreen></iframe>Before I submit each code, I have to change its width and height, and I have to add this: &showinfo=0after this: ?rel=0Is there a function that will allow me to do all of that simultaneously? I know about str_ireplace(). It will let me replace ?rel=0 with ?rel=0&showinfo=0, but I don't know how to simultaneously make the other changes. It's not helping that the embed code includes quotation marks. Hey,
I have an issue where the below script doesnt appear to be working. It doesnt actually display anything on the page, it seems as though after the first PHP tag is just ignores the rest of the script. when looking at the page source all it shows is:
<HTML> <HEAD> <TITLE>Logs</TITLE> </HEAD> <BODY>The actual code is below: <HTML> <HEAD> <TITLE>Logs</TITLE> </HEAD> <BODY> <?PHP $mysqlserver="localhost"; $mysqlusername="root"; $mysqlpassword="test"; $dbname = 'test'; $con=mysqli_connect($mysqlserver, $mysqlusername, $mysqlpassword, $dbname); if (mysqli_connect_errno()) { echo "Failed to connect to MySQL: " . mysqli_connect_error(); } $result = mysqli_query($con, "SELECT * FROM forwardtable"); echo "<table border='1'> <tr> <th>Acc Num</th> <th>Send Date</th> <th>Send Time</th> </tr>"; while($rowContent = mysqli_fetch_array($result)) { echo "<tr>"; echo "<td>" . $rowContent['Acc'] . "</td>"; echo "<td>" . $rowContent['Date'] . "</td>"; echo "<td>" . $rowContent['Time'] . "</td>"; echo "</tr>"; } echo "</table>" ?> </BODY> </HTML>If I remove the PHP from within the code the source code goes as it should and shows the </BODY> and </HTML> tags. Any ideas anyone? Thanks, Matt Good Afternoon, I wonder if anybody can help me with a couple of PHP issues I am having. I am a Junior Web Designer and have very basic PHP knowledge. I have already done most of the work but I'm having an issue that is driving me mental. I purchased a html template which has a pre-configured contact form that uses jquery validation and "sendmail function." I have made the relevant changes to the PHP file (recipient address and subjet line) however when I go live with the system it only works once and then the html page doesn't process the message. If I go to the PHP location I get a 500 Internal Server Error message. I have contacted my hosting provider (mellowhost) and they have said that my script will only work if I add SMTP Authentication to it, which I have no idea how to do. Here is my script: Code: [Select] <?php // Chnage this according to your settings $to = 'support@gainfordstevens.co.uk'; // Change the mail according to your need. $subject = "Contact Form"; // Mail Subject $success_msg = '<strong style="color:#0033CC">Your Message has been submitted and we will get back to you ASAP.</strong><br /><br />'; // The message displayed after successful mail delivery $failure_msg = '<h2>Contact Form Submitted!</h2> <p>Due to some reason mail is not sent.</p>'; // The message displayed after mail delivery failure //Do not edit below this line. if ( trim($_POST['names']) != '' ) { $names = stripslashes(strip_tags($_POST['names'])); } else { $names = 'No name entered'; } if ( trim($_POST['emails']) != '' ) { $emails = stripslashes(strip_tags($_POST['emails'])); } else { $emails = 'No email entered'; } if ( trim($_POST['phone']) != '' ) { $phone = stripslashes(strip_tags($_POST['phone'])); } else { $phone = 'No phone number entered'; } if ( trim($_POST['comments']) != '' ) { $comments = nl2br(stripslashes(strip_tags($_POST['comments']))); } else { $comments = 'No comments entered'; } ob_start(); ?> <html> <head> <style type="text/css"> .style3 {color: #000000} </style> </head> <body> <table width="550" border="1" cellspacing="2" cellpadding="2"> <tr bgcolor="#eeffee"> <td width="132"><span class="style3">Name</span></td> <td width="398"><?=$names;?></td> </tr> <tr bgcolor="#eeeeff"> <td>Email</td> <td><?=$emails;?></td> </tr> <tr bgcolor="#eeffee"> <td>Comments</td> <td><?=$comments;?></td> </tr> </table> </body> </html> <? $body = ob_get_contents(); ob_end_clean(); $headers = 'MIME-Version: 1.0' . "\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; $headers .= 'From: '.$names.' <'.$emails.'>' . "\r\n"; if(mail($to, $subject, $body, $headers)) { echo $success_msg; } else { echo $failure_msg; } ?> Please can somebody help me find some PHP solace? Thanks-in-advance. Liam Ok I am having one of those php nightmare. The kind that you simply say, 'WHAT the *^$%*&YU'? I have formed a php called a_user_page.php that is called for by index.php?a=user_page Uses same format as various others that have no problem being viewed on screen. Ok did this some time ago. The page came up and worked perfectly. Now I want to add content to this page. So i naturally save the updated page in a different folder. I am use to things not going my way. Uploaded through ftp program. Page will not view. Strange. So I up loaded the original file and it works. OK So I redue the change I want done making only one word change in heading USER PAGE to USER PROFILE PAGE. Only change. Uploaded. Still Not work SO upload original file and works. OK? So enter into the cpanel and file manager and edit the file online. Put one word change in heading USER PAGE to USER PROFILE PAGE Save View NOT WORK??? Uploaded original file, views!!! What the ? I have tried clear cache and cookies and different browsers. I am I am having a nightmare with an explode and cant get it to work. I am posting a string using JQuery to a PHP form which needs to explode the string into an indexed array to be inserted into a database. This is what the string looks like "importance%5B101%5D=50&importance%5B100%5D=50&importance%5B99%5D=50&importance%5B98%5D=50" The original array has been serialised into the above string. The arrayname is importance. The array's index (inside the square brackets) is referenced from an ID from the page. The square brackets have been replaced by '%5B' and '%5D' and surround the array index by the JQuery. The value for each of these array items is shown as =50. So its basically the same as a GET when we have name=value&name1=value1etc') How would i explode the string above to remove the '%5B' and '%5D' to make the '[' and ']' reappear and then from then it can be read as a GET post? like 'name=value&name1=value1etc'. Using the new array of that index ready to be inserted into a MySQL database. Im going mad trying to solve this!!! OK, I have been having issues with this query for some time now, I (finaly) have the query working absoloutly fine when run directly in the database, however, when I try and run it through a PHP page I just get a completly empty result set back. I have done a print_r($row) and there is nothing, absoloutly nothing. I have ran the SQL that comes from print_r($sql) in the database and it's completly fine as well. I was getting an error previously because I had missed the "IS" out before NOT NULL for the PadPrefix, so it is parsing the SQL to some level (I now have no errors showing either). I am wondering if there is something I am missing that is needed for when the SQL is creating cached tables and/or using a counter? Here's the code, any and all suggestions welcome, Cheers <?php @SESSION_START(); require_once 'connect.php'; $bp = $_SESSION['bp']; if ($_SESSION['id'] < 99){ $tbl_top = '<table><tr><th>SheetID</th></tr>'; $WHERE = " = '$bp'"; } else{ $tbl_top = '<table><tr><th>SheetID</th><th>Prefix</th></tr>'; $WHERE = "IS NOT NULL"; } $sql = "DECLARE @badSheets TABLE (ID int, batchMax int) ". "DECLARE @list TABLE (maxsheet int, lastsheet int) ". "DECLARE @sheet int ". "DECLARE @batch int ". "DECLARE @endBatch int ". "declare @batchIndex int ". "INSERT INTO @list (maxsheet, lastsheet) ". "SELECT sheetList.maxsheet, padlist.lastSheet ". " FROM( ". " SELECT sheet.padID, MAX(sheet.SheetID) as maxsheet FROM jim.dbo.sheet as sheet ". " INNER JOIN jim.dbo.files as files on sheet.sheetID = files.sheetid ". " where sheet.sheetid > 100000 ". " group by sheet.padID) ". "AS sheetList ". "INNER JOIN( ". "SELECT pads.padID, pads.padID+(count(pads.padID)-1) as lastSheet ". "From jim.dbo.sheet as pads ". "Group By pads.PadID) ". "AS padList ". "ON (sheetList.padID = padList.padID) ". "WHERE maxsheet != lastSheet ". "DECLARE bad_batch CURSOR FOR ". "SELECT DISTINCT maxsheet FROM @list ORDER BY MaxSheet ". "OPEN bad_batch ". "FETCH NEXT FROM bad_batch ". "INTO @batchIndex ". "WHILE @@FETCH_STATUS = 0 ". "BEGIN ". "SELECT @batch = lastSheet FROM @List where maxsheet= @batchIndex ". "SELECT @sheet = maxSheet FROM @List where maxsheet= @batchIndex ". "WHILE (@sheet <= @batch) ". "BEGIN ". "INSERT INTO @badsheets(ID, batchMax) VALUES (@sheet, @batch) ". "SET @sheet = (@sheet + 1) ". "END ". "Fetch Next FROM bad_batch INTO @batchIndex ". "END ". "close bad_batch ". "deallocate bad_batch ". "SELECT sheetID, padprefix ". "FROM JIM.dbo.sheet AS sheet LEFT OUTER JOIN jim.dbo.pad AS pads ". "ON sheet.padID = pads.padID ". "WHERE ( ". "(padprefix $WHERE) ". "AND (sheet.sheetID > 100000) ". "AND (sheet.SheetID NOT IN (SELECT SheetID FROM jim.dbo.files)) ". "AND (sheet.sheetID NOT IN (SELECT ID FROM @badSheets)) ". ")"; $result = sqlsrv_query($sqlConnect, $sql) or die("error running : $sql <br><br>".print_r( sqlsrv_errors(), true)); echo "<table border=\"1\">"; echo $tbl_top; WHILE ($row = sqlsrv_fetch_array($result, SQLSRV_FETCH_ASSOC)){ if ($_SESSION['id'] < 99){ $tbl_content = "<tr><td>{$row['sheetID']}</td></tr>"; echo $tbl_content; } else{ $tbl_content = "<tr><td>{$row['sheetID']}</td><td>{$row['padPrefix']}</td></tr>"; echo $tbl_content; } echo $tbl_content; } echo "</table>"; ?> Hey guys so Ive been messing with a number of .ini files (im sure this isnt a good thing) because Ive been trying to write a script that uploads files as big as 1GB and in doing so Ive edited the my suhosin.ini because in looking at my php_info() it said that all my pot max, get max, request etc were all undesirably low. Anyways I edited the file and then restarted apache but the changes that I made in suhosin.ini arent being displayed when i go to my php_info(). Cant anyone tell me if I missed a step and how do I get the server to recognize the changes as I believe it is these settings that are buggering up my upload script. -SB basically its a design flaw but im too far into it so im going to have to find a way to get this to work. Basically i have an anonymous board, anyone can post as long as they have cookies enabled. Cookies are key because they help bans and keeping track. The problem is the following. The Admin i.e me needs to have the same cookie no matter where i login from. This is to stop the admin being banned by mods. as that cookie key cant be banned. now any new visitor to the site gets assigned a cookie. So if the admin went to the site he would get a cookie. But when he loggs in i want it to get rid of the old cookie and replace it with his admin cookie so say for argument sake. he goes to the site and gets assigned Cookie1 in the login confirm i have setcookie(cook,cookie1, time() -3600); setcookie(cook,$admincook,time() + 60 *24); after i log in as admin and check the cookie $_COOKIE[cook]; it still displays as cookie1 But for some strange reason when i post a thread the value of $admincook gets stored in the database. However this is only for posting a thread and not for any of the other options, such as asking a question etc. the method of getting the cookie value when posting a thread is the EXACT same... i really don't know why it wont work. my project is over several files and over 15 thousand lines of code. so im not sure what parts i should give you. my main problem is that expiring the cookie and resetting it again straight away doesn't seem to work. Hey guys, Been developing a bespoke "helpdesk" system for work and, while it works well on the whole, I am having major problems with base64 encoded email bodies. Admittedly, this might be due to my misunderstanding of imap body parts. It seems in my current setup, the system thinks that all mails are either "type" 0 or 4. As a result, base64 emails don't get decoded and display as an unreadable long string. Here is what my code for the body decoding looks like just now - can provide more on request. $from=$overview[0]->from; $subject=$overview[0]->subject; $subdb=mysql_real_escape_string($subject); $lookingfor=explode("~#",$body); $result=$from; $find=strrpos($ir, $lookingfor[1]); $findreplystream=mysql_query("SELECT * FROM tickets WHERE ticket_md5='$lookingfor[1]'") or die(''.mysql_error().''); $stream=mysql_fetch_array($findreplystream); $now=time(); if($structure->encoding == 0){ $arr1=array("=A3", "=80"); $arr2=array("£", "€"); $newcontent=$explodeunder[0]; define("CHARSET", "ISO-8859-1"); $dbcontenta=str_replace($arr1, $arr2, $newcontent); $r=mb_detect_encoding($dbcontenta); if($r=="UTF-8"){ $dbcontents=mb_convert_encoding($dbcontenta, "ISO-8859-1", "UTF-8"); $dbcontent1=addslashes($dbcontents); $dbcontent2=strip_tags($dbcontent1); } elseif($r=="ASCII"){ $dbcontentb=mb_convert_encoding($dbcontenta, "UTF-8", "ASCII"); $dbcontents=mb_convert_encoding($dbcontentb, "ISO-8859-1", "UTF-8"); $dbcontent1=addslashes($dbcontents); $dbcontentf=strip_tags($dbcontent1); $dbcontent2=quoted_printable_decode($dbcontentf); } } elseif($structure->encoding == 4) { $dbcontent=$explodeunder[0]; $dbcontentf=quoted_printable_decode($dbcontent); $dbcontent2=mb_convert_encoding($dbcontentf, "ISO-8859-1", "UTF-8"); } elseif($structure->encoding == 3) { $dbcontent2=imap_base64($explodeunder[0]); } elseif($structure->encoding == 1){ $dbcontent3=imap_8bit($explodeunder[0]); $dbcontent2=quoted_printable_decode($dbcontent3); } Can anyone advise me with this? I'd be greatful for any assistance at all, as it's causing me nightmares! All the best Hi, I am currently trying to build an Artist's website, the artist wanted a CMS that was completely customized to the site (so no Wordpress, Joomla, Drupel, etc) - because of this I am having to create a CMS completely from scratch.
The problem I am having is with the database connection (hence the topic title), other sites that I have built with this same code work fine - however this particular site does not seem to want to play ball. It keeps giving me this error:
SQLSTATE[HY000] [1045] Access denied for user 'web113-janesart'@'10.0.44.113' (using password: YES)I have tried obvious things such as spelling mistakes, wrong password/username/db name, nothing seems to get rid of this error. Any help on what else this could be would be appreciated. Hi all, Experimenting with this instant search buzz only I cant seem to replicate the function! I think my PHP may be cocking up but Ive been staring for too long to see anything. Could anybody take a quick glance and see if they can see anything? Code: [Select] <?php if(!empty($_GET['q'])) { search(); } function search() { $con = mysql_connect('localhost','login', 'pass'); mysql_select_db('db', $con); $q = htmlspecialchars($_GET['q'],ENT_QUOTES); $sql = mysql_query(" SELECT post_title as post FROM wp_posts WHERE post_title LIKE '%{$q}%' OR post_title LIKE '%{$q}%' "); $results=array(); while($v = mysql_fetch_object($sql)){ $results[] = array( 'title'=>$v->title, 'post'=>$v->post ); } echo json_encode($results); } ?> |