PHP - Php5 Oop Crash Course!
I think this is the absolute best are to post this question. I hope it's not moved.
Can you guys recommend any books that would give a very solid crash course in PHP5 OOP? Anything you've read and feel is worth it. I don't want to just go and pickup any first book i see. Thanks! Similar TutorialsI have a small php upload/download script, it always worked on older php4 -5 but not on php5.3 ,gobal varitables must be on , I dont know to much about php and was hoping someone will look at at and let me know what to change to make it work on php5.3 or higher..............................THANKS! for any help in fixing this issue
<body link="#FFFF00" vlink="#FF0000" alink="#FFFF00"><? $extlimit = "yes"; //Do you want to limit the extensions of files uploaded $limitedext = array(".zip",".sim",".car",".jpg",".gif"); //Extensions you want files uploaded limited to. $sizelimit = "no"; //Do you want a size limit, yes or no? $sizebytes = "30033000"; //size limit in bytes $dl = "xxxxxxxxxxx"; //url where files are uploaded $absolute_path = "xxxxxxxxxxx"; //Absolute path to where files are uploaded $websiteurl = "xxxxxxxx"; //Url to you website $websitename = "Car File Manger"; if (!isset($action)) { $action = ""; } switch($action) { default: echo" <html> <head> <title>Upload Or Download</title> </head> <body> <a href=$PHP_SELF?action=upload>Upload</a> | <a href=$PHP_SELF?action=download>Download</a> | <a href=$websiteurl>Return to $websitename</a> <br><br> </body> </html>"; break; case "download": echo " <html> <head> <title>File Download</title> </head> <body><a href=$PHP_SELF?action=upload>Upload File</a> | <a href=$websiteurl>Return to $websitename</a>"; $list = "<table width=500 border=0 bordercolor=#000000 style=\"border-collapse: collapse\">"; $list .= "<tr><td width=500><center><b>Click To Download</b></center></td></tr>"; $dir = opendir($absolute_path); while($file = readdir($dir)) { if (($file != "..") and ($file != ".")) { //Download files with spaces fix by Kokesh $list .= "<tr><td width=700><a href='$dl/$file'>$file</a></center></td></tr>"; } } $list .= "</table>"; echo $list; echo" <br><br> </body> </html>"; break; case "upload": echo" <html> <head> <title>File Upload</title> </head> <body> <form method=POST action=$PHP_SELF?action=doupload enctype=multipart/form-data> <p>File to upload:<br> <input type=file name=file size=30> <p><button name=submit type=submit> Upload </button> </form> <br><br> </body> </html>"; break; //File Upload case "doupload": $dir = "dir"; if ($file != "") { if (file_exists("$absolute_path/$file_name")) { die("File already exists"); } if (($sizelimit == "yes") && ($file_size > $sizebytes)) { die("File is to big. It must be $sizebytes bytes or less."); } $ext = strrchr($file_name,'.'); if (($extlimit == "yes") && (!in_array($ext,$limitedext))) { die("The file you are uploading doesn't have the correct extension."); } @copy($file, "$absolute_path/$file_name") or die("The file you are trying to upload couldn't be copied to the server"); } else { die("Must select file to upload"); } echo " <html> <head> <title>File Uploaded</title> </head> <body>"; echo $file_name." was uploaded"; echo "<br> <a href=$PHP_SELF?action=upload>Upload </a> | <a href=$PHP_SELF?action=download> Download </a> | <a href=$websiteurl> Return to $websitename</a><br><br> </body> </html>"; break; } ?> Edited by Ch0cu3r, 01 September 2014 - 06:05 AM. I'm running one of those really dense zend-based frameworks with masses of recursion (Magento), and I'm getting a problem with reading/writing the session, before I deal with that I'm trying to find some feedback on where the issue is happening. I've got everything ( i know of ) switched on, error_reporting(E_ALL); ini_set('display_errors', 1); ini_set('display_startup_errors', 1); + I'm using PHPStorm with Xdebug and I've got Php Exception breakpoint set, I'm watching the Phpstorm Output/Console/Terminal (don't quite know the difference) +var/log/Exception.log, but....It just hangs without telling me which line. Is this someting I've got to take on the chin with Php (I'm a relative newbie)? Or is there some way else? Debian/Php 7.3 Hi, I'm Chris, first time here, I usually post on stackoverflow but I think that this is a little bit more complex than usual.
I believe I really need a PHP expert to solve this issue. We have an application which is crawling the web. There's 2 main PHP scripts that are doing the work, using using proc_open, and exec() and running over a circular reference. Both scripts that compose the main structure are saving all and every single error on a custom error log, defined this way:
//error_log @ini_set('error_reporting', -1); @ini_set('log_errors','On'); @ini_set('display_errors','On'); @ini_set('error_log','/var/www/vhosts/xxx/xxx/resonance/such_a_mess'); The problem is simple, after running for some hours or days, the application stops crawling. And there's no error information at all on the error_logs that could explain the problem or the reason why it stopped. I've been trying to get more details using Newrelic and XHProf, no luck.- There's no HTTP server involved on the execution of the scripts as they are being executed like I mentioned, using exec() and proc_open: exec("sh -c \"$cmd | logger\" > /dev/null &"); It has been around 3 months on the same situation... and to be honest the only thing I want at this point is to see a fatal error on the logs, to understand what's going on... Hi I am select something from the DB and counting it. On the localhost on my own computer it works but on my server it crashes. Most likely for different versions of mysql / php!? Here is the code, is there some other ways to write this? so the server doesnt crash: $num = mysql_num_rows($result); $i=1; if($i < $num) { echo "<table border='1' width='100%'>"; echo "<tr><th>#</th><th>" . ucf(translate('country')) . "</th><th>" . ucf(translate('navn')) . "</th><th>" . translate('date') . "</th><th>" . ucf(translate('bodyweight')) . "</th><th>". translate('lifted') ."</th></tr>"; // keeps getting the next row until there are no more to get while ($row = mysql_fetch_array( $result )) { // Print out the contents of each row into a table echo "<tr><td align='center'>"; echo $i++; // Krasj?? echo "</td><td align='center'>"; echo "<div><img src='img/flags/16/". strtolower($row['user_country']) .".png' /></div> " . translate(ucf(getCountryName(strtolower($row['user_country'])))) . ""; echo "</td><td align='center'>"; echo "<a href='index.php?action=profile&sub=show&tid=". $row['training_id'] ."'>" . getNameFromId($row['user_id']) . "</a>"; echo "</td><td align='center'>"; echo formatDate($row['date'], $dateformat); echo "</td><td align='center'>"; echo r_nr2(calcFromKg($row['bodyweight'])). $w_metric; echo "</td><td align='center'>"; echo r_nr(calcFromKg($row['kg'])). $w_metric; echo "</td></tr>"; } echo "</table> <div class='fixed'> </div> </div> </div> <div class='fixed'> </div> <div id='footer'> <a id='gotop' href='#' onclick='MGJS.goTop();return false;'>" . translate('top') . "</a> <div align='center' id='copyright'>© " . translate('copyrightyear') . " " . translate('header_text'). " - " . translate('curversion') ." - <a href='index.php?action=contact'>" . translate('contact') ."</a> - <a href='index.php?action=about'>" . translate('about') . "</a> - " . translate('onlineusers'). ": " . getActiveUsers() . "<br /> </div>"; exit; } else { blablabla Versions: Local: php mysql 5.3 mysql 5.1.36 Server: php 5.29 mysql 5.0.87 I hope there is someone who sees something I have not seen he P hehe .. Thanks for the reply Hello, i've been coding a CLI php mailer which i'm using with a webshell. My problem shows up when i execute my mailer, the hole server crash or in the best case scenario it slows down a lot. In the same folder that my script was executing a huge error log appears with this error repeated: Quote PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20060613/sqlite.so' - /usr/local/lib/php/extensions/no-debug-zts-20060613/sqlite.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20060613/pdo_mysql.so' - /usr/local/lib/php/extensions/no-debug-zts-20060613/pdo_mysql.so: cannot open shared object file: No such file or directory in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/lib/php/extensions/no-debug-zts-20060613/ixed.5.2ts.lin' - /usr/local/lib/php/extensions/no-debug-zts-20060613/ixed.5.2ts.lin: cannot open shared object file: No such file or directory in Unknown on line 0 I'm not getting why this happens since i just use normal functions like mail(), fread(), etc. I'm not using any sql function or anything like that. Any clues? Another non related thing i wanted to ask was: Is it possible to make an "interactive" cli script? I mean using a similar function like getc() in C or something. Here is one of those purely conceptual questions, which involves no code. I'm trying to create a select query which among other things, allows a user of a website to search other members who fall within a particular age range. I have a column in the table where the members' information are stored which records their ages. Which brings us to the problem. On any given day, a member's age may increase by one year compared to what it was the previous day, hence the need to update this column periodically. I can't think of any way to automatically update this column on a daily basis. So my solution is to run an initial update query every time a member tries to search other members based on age, which updates the age column for all other members, before running the select query which eventually retrieves the desired age range. This leads to the second problem. Imagine there are thousands of users using the website. At any given instance, there could be hundreds of members, trying to search others based on age. This means hundreds of users will be updating a single column (the age column) in one table at the same time. Is this feasible? Can it cause the server to crash? Or is there really a more reasonable way to do all of this? Thank you all for taking your time to read this. Appreciate any responses. Helo, I need big help how to adjust this code to new PHP 5.3 that dont support egeri any more public static function blacklist(&$query) { return eregi(self::$_blacklist, $query) ? true : false; } HELP ! ! ! I need to produce 4 byte CRC32 checksums for UDP packets sent to an rcon tool for an online game. The (brief) specification for formatting these UDP packets is he http://www.battleye.com/downloads/BERConProtocol.txt I have been converting the results of the CRC32() to hex and inserting it successfully in the correct part of the packet. The checksum result however is different from one that I packet captured from a working rcon tool. I have tried various methods of converting the int that CRC32 produces but have been unsuccessful in producing the correct checksum. For reference below is the captured correct packet from the working tool. All data is the same as the packets my tool produces except for the checksum. The checksum is bytes 3,4,5 & 6. and is formed (to my understanding) by performing a CRC32 check on the subsequent bytes. (From Smartsniff) 00000000 42 45 D5 C3 FB ED FF 00 61 62 63 64 65 31 32 BE...... abcde12 If anyone has a working CRC32 class that could reproduce the successful hash above or has any pointers in the correct direction I would be very thankful. I am setting up php5 on ubuntu 10.10 I can visit pages but they come up with errors Code: [Select] Notice: Undefined index: id in /var/www/alphawebpro.com/htdocs/index.php on line 5 Notice: Undefined index: action in /var/www/alphawebpro.com/htdocs/index.php on line 9 Warning: include(/var/www/alphawebpro.com/htdocs/home.php): failed to open stream: Permission denied in /var/www/alphawebpro.com/htdocs/index.php on line 105 Warning: include(): Failed opening 'home.php' for inclusion (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/alphawebpro.com/htdocs/index.php on line 105 Any idea as to how I fix this? Hi... I could really do with some help, I have some form code I have been using for a very long time. how every my server company will not install php4 anymore Can someone have a look at this code and let me know why its not php5 compatible. Thanks <?php /* $sendto is the email where form results are sent to */ $sendto = "........"; /* $ccto is the email where form results can be carbon copied to */ $ccto = "..........."; /* O P T I O N A L V A R I A B L E S */ /* TO POST PHP ERRORS TO PAGE FOR DEBUGING SET: $report_errors = "ALL"; TO REMOVE PHP ERRORS FROM POSTING TO THE PAGE FOR USE SET: $report_errors = "NONE"; */ $report_errors = "NONE"; $setokurl = "1"; $okurls = "http://www.dwcontractors.com"; if ($report_errors == "NONE") { error_reporting(0); }else{ error_reporting(E_ALL); } /* --- I F S E T O K U R L = 1 ----- */ if ($setokurl == "1"){ $found_url = "0"; $referer =$_SERVER["HTTP_REFERER"]; $referer = str_replace("://", "[CS]", $referer); $referer_sp = explode("/", $referer); $referer = "$referer_sp[0]"; $referer .= "/"; $referer = str_replace("[CS]", "://", $referer); $referer = strtolower($referer); $okurls = split(",", $okurls); foreach ($okurls as $myokurls) { $myokurls = strtolower($myokurls); if ($referer == strtolower($myokurls)) { $found_url = "1"; } } if ($found_url == "0") { $ERROR_action = "bad_okurl"; include("$PATH_error$PAGE_error"); } } /* --- E N D I F S E T O K U R L = 1 --- */ /* check to see if posted */ if ($HTTP_GET_VARS || ! $HTTP_POST_VARS || $_GET || ! $_POST) { include("nverror.php4"); no_pst(); }else{ /* IF OLDER VERSION OF PHP CONVERT TO NEWER VARIABLES */ if (! $_POST) { $_POST = "$HTTP_POST_VARS"; } if (! $_SERVER) { $_SERVER = "$HTTP_SERVER_VARS"; } $year = date("Y"); $month = date("m"); $day = date("d"); $hour = date("h"); $min = date("i"); $tod = date("a"); $ip=$_SERVER["REMOTE_ADDR"]; $SEND_prnt = "The form below was submited by " . $_POST{"email"} . " from Ip address: $ip on $monthnameactual $month/$day/$year at $hour:$min $tod \n"; $SEND_prnt .= "--- DW Contractors ---\n\n"; /* CHECK TO SEE IF $_POST{"required"} IS SET */ if ($_POST{"required"}){ $post_required = $_POST{"required"}; $required = split(",", $post_required); $reqnum = count($required); for ($req=0; $req < $reqnum; $req++) { $REQ_name = $required[$req]; $REQ_value = $POST{"$REQ_name"}; if ($REQ_name == "email") { $goodem = ereg("^[^@ ]+@[^@ ]+\.[^@ \.]+$", $_POST{"email"}, $trashed); if (! $goodem) { include("nverror.php4"); msng_email(); } /* end ! $goodem */ } elseif (! $_POST{"$REQ_name"}) { $isreqe = "1"; $REQ_error .= "<li> $REQ_name "; } /* end ! req val */ } /* end REQ for loop */ /* IF THERE ARE ANY REQUIRED FIELDS NOT FILLED IN */ if ($isreqe == "1") { include("nverror.php4"); msng_required(); } } /* END CHECK TO SEE IF $_POST{"required"} IS SET */ /* END IF THERE ARE ANY REQUIRED FIELDS NOT FILLED IN */ /* GET POSTED VARIABLES */ foreach ($_POST as $NVPOST_name => $NVPOST_value) { $NVPOST_value = str_replace("\n", "", $NVPOST_value); $NVPOST_value = str_replace("\r", "", $NVPOST_value); $NVPOST_value = preg_replace("'\cc:'si", "Cc ", $NVPOST_value); $NVPOST_value = preg_replace("'\bcc:'si", "bcc ", $NVPOST_value); $NVPOST_value = preg_replace("'\to:'si", "to ", $NVPOST_value); $NVPOST_value = preg_replace("'\bc:'si", "bc ", $NVPOST_value); if (strtolower($NVPOST_name) == "subject") { $NVPOST_value = str_replace(":", ";", $NVPOST_value); } /* G E T E M A I L */ if (strtolower($NVPOST_name) == "email") { $SEND_email = "$NVPOST_value"; $SEND_email = str_replace(":", "", $SEND_email); $SEND_email = str_replace(" ", "", $SEND_email); } /* END GET LEADS EMAIL */ if (! $_POST{"sort"}) { /* CHECK TO SEE IF CONFIG FIELD */ if ($NVPOST_name == "subject" || $NVPOST_name == "sort" || $NVPOST_name == "required" || $NVPOST_name == "success_page"){}else{ $SEND_prnt .= "$NVPOST_name: $NVPOST_value \n\n"; } } /* end ! sort */ } /* end foreach */ /* END GET POSTED VARIABLES */ if ($_POST{"sort"}) { /* SORT VARIABLES */ $sortvars = split(",", $_POST{"sort"}); $sortnum = count($sortvars); for ($num=0; $num < $sortnum; $num++) { $SEND_prnt .= "$sortvars[$num]: " . $_POST{"$sortvars[$num]"} . " \n\n"; } } /* END SORT VARIABLES */ /* send mail */ if (! $ccto) { $header = "From: $SEND_email\r\nReply-to: $SEND_email"; }else{ $header = "From: $SEND_email\r\nReply-to: $SEND_email\r\nCc: $ccto"; } mail($sendto, $_POST{"subject"}, $SEND_prnt, $header); /* END sendmail */ /* CHECK TO SEE IF FORM SPECIFYS A SUCCESS PAGE */ if (! $_POST{"success_page"}) { include("nverror.php4"); default_success(); }else{ $successpage=$_POST{"success_page"}; header("Location: $successpage"); /* redirect */ exit; } } /* END IF POSTED */ ?> I have not been here for a long time, but just recently my php5.ini and .htaccess file got deleted while trying to install a new script. I have shared linux hosting at godaddy, but I cannot seem to get the code required inside these two files that would be standard or basic.
Does anyone have a sample code I can use on these two files?
Thanks in advance!
I'm sure this issue has been addressed before, but as I can't find anything on google OR bing, I've resorted to asking it he Since, ereg and eregi are deprecated in PHP5, how do you test strings using regular expressions? Is there a new function for this? EDIT: I also looked on php.net, but all it says is its deprecated in PHP5. I didn't see any links to the new function(s) that have replaced the former. I just finished (or so I thought) a project. But my client's server runs PHP4, so I need to adapt my code. Here's what stopped working: Code: [Select] $localClasses = new DOMDocument; $localClasses -> load("file.xml"); $localClasses -> get_elements_by_tagname('Title') -> item(0) -> firstChild -> nodeValue Here's my petty attempt at trying to adapt this code to run in PHP4: Code: [Select] $file = file_get_contents("localClasses.xml"); $localClasses = new DOMDocument($file); $test = $localClasses -> get_elements_by_tagname('Title'); $testText = $test -> item[0] -> firstChild -> nodeValue; print $testText; This doesn't give me any errors, but nothing shows up. Any help would be appreciated. Thanks for reading! I had a website running a XML script which worked perfectly but I have updated it by using XMLReader and PHP 5. However, there is a security update on PHP 5 which prevents me from accessing files on my server. Someone has suggested I add a php.ini file with the following: allow_url_fopen = on allow_url_include = on However I have also read that the whole purpose of the security update is to prevent this. Can someone advise me how I can get around this issue so that my server can read files and still operate by the PHP5 security update. Any help would be greatly appreciated. I'm working on a website (for free) and the website owner has shared hosting w/ cPanel. When logged in to cPanel, the PHP version can be set to PHP5.5. So I did that. When logged in via SSH, scripts are still running on PHP5.3.
I found that /opt/alt/php55/usr/bin/php is a location of php5.5, but when I run my script, it gives an error that mysqli is not found.
As far as I know, this is probably just a typical cPanel install. If anyone can point me to the right way to run PHP5.5 from the command line, I'd appreciate it.
Been using these includes in php4 for a long time, but they don't work in php5. Page loads, but included code is blank. Code: [Select] <?php include("http://www.xxxxxxxx.org/header.php"); ?> I am trying to convert a php4 app to php5 and am getting this error (Fatal error: Cannot re-assign $this in ) when I call this class. $this = $this->createUnique($new); is the line that generates the error. I try to rename $this to $_this but it does not help. I think I lose the reference to the object later on in the code. Then I will get an error like (Fatal error: Call to a member function createUnique() on a non-object in) Is there another way to reference the current instance of an object in php5? Any help appreciated... Code Example: Code: [Select] class imageobject{ var $handle; var $height=0; var $width=0; var $directory; var $filename; //constructor function imageobject($directory,$filename,$width=0,$height=0,$color="FFFFFF") { $this->directory = $directory; $this->filename = $filename; if ($filename=="" && $width>0 && $height>0){ $new = $this->createImage($width,$height); $this = $this->createUnique($new); }elseif (file_exists($directory.$filename)){ $size = GetImageSize($directory.$filename); if ($size) $this->handle = $this->getHandle($directory.$filename,$size[2]); $this->width = $size[0]; $this->height = $size[1]; } function createUnique($imgnew) { $this->type = substr($this->output,0,3); $unique_str = $this->uniqueName(); switch ($this->type){ case "png": imagepng($imgnew,RES_DIR.$unique_str); break; default: imagejpeg($imgnew,RES_DIR.$unique_str,$this->quality); break; } $this->handle && imagedestroy($this->handle); $newobject = new imageobject(RES_DIR,$unique_str,$this->type); return $newobject; } )//end class Hello everyone. I have a problem with the local server (localhost connection). Until yesterday I used an old version of XAMPP's (version 1.6.4 with PHP 5.2.4) and last night I finally found the time to install XAMPP 1.7.3 with PHP 5.3.1. But some things that I worked under the old XAMPP-om, which are working perfectly now no longer work, and I do not know why. Please find enclosed pics that were under php4 and that now works. So I wonder where is the error and where possible errors. Also under my new PHP-om non-stop is done refresh the page and print portions of the code (as you can see from the picture). I am enable short tags support in php.ini. Thank you. PHP 5.3.1 PHP 5.2.4 Most of my website is written in php4. My hosting server has support for both 4 and 5 just by changing file extension. .php which is the default supports 4, .php5 of course supports 5. The problem I am having is that the pages with the .php5 extensions are not recognizing session variables. Is there something I should be doing differently in 5 for my session variables? For example a variable request like this returns 0 print $_SESSION['FULLNAME']; Please Help!! Thank you in advance? |