|
Now I'm using EasyPHP 5.3.5.0.
|
|
|
|
|
So I'm writing an index page that calls a header file within a different folder. The pages that seem to not work are the index pages WITHIN other folders and using ../ to get back to the root folder and back into the include folder, if the pages are within the root folder and call the header by going through the include folder, it works.
Kind of hard to explain..
But I'm getting these errors..
Warning: main(paul_menubar_test/menubar_test_filesavail.php) [function.main]: failed to open stream: No such file or directory in /home/new2/include/headers.php on line 190
Warning: main() [function.include]: Failed opening 'paul_menubar_test/menubar_test_filesavail.php' for inclusion (include_path='.:/usr/php4/lib/php') in /home/new2/include/headers.php on line 190
And that's an index file that's within a different folder in the root folder.
I have an index file in the root folder that does the call for the include/header and it works.
If you need any clarification, please ask.. I don't know how else to word it.
I've checked google and people just say "lol check ur pointers," I did, like a 100 times. I've tried all sorts of "/," "../" and all that. I've also read that I may need to change the permissions of the folder or something? I'm not sure how to do that.. but the other problem is every single page calls the FOOTER file, which is also in the "include folder," has no problem.
-Paul
|
|
|
|
|
lol, check your pointers!
just kidding
can you give an example of the file structure and explain how pages are called from one to the next? I have an idea you may have an issue related to your includes as it pertains to the current local directory and the use of relative paths.
Chris J
www.redash.org
|
|
|
|
|
if you include other files, the relative path back to root is from the first file.
so if page A is /A/index.php, which does a require_once('B/header.php') (in other words requires /A/B/header.php), then if /A/B/header.php wants to require_once /C/D/miniheader.php it needs to
require_once('../C/D/miniheader.php');
i.e. only one folder up (all the requires are relative to /A/index.php, the first script that ran)
|
|
|
|
|
if it is in the root of the site try
"{$_SERVER['DOCUMENT_ROOT]}/paul_menubar_test/menubar_test_filesavail.php";
|
|
|
|
|
hello
my work internet computer has been blocked by fortiguard web filter and i can't access half of the websites
i don't have admin user and i cant download any progrem including programming compailers
can someone help me please?
thanks in advenced
|
|
|
|
|
Do or do not, there is no "try"
|
|
|
|
|
|
|
How can I send variable to another form without include ?
|
|
|
|
|
Depends...is this second form on the same page or a different page?
Chris J
www.redash.org
|
|
|
|
|
|
|
$_POST and $_GET just for input type but my variable isn't that.this is my code I want when user click on button insert data to database but I can't access to variable
$row[lsname],$row[teachername],...even this page and other page?another my question is why variable like$_POST[t] isn't recognaize in function?!!!even I write global
$_POST[t] but it's error
<?php
session_start();
echo ($_SESSION[users]);
echo "$_POST[t]";
?>
<html>
<form method="post" action="reqire.php">
<?php
require_once ('db.php');
$db = new db("root","","regstudent","localhost");
function aa()
{
require_once ('db.php');
$db = new db("root","","regstudent","localhost");
$db->query("INSERT INTO register(`user`, `lsname`, `teachername`, `classday`, `starttime`, `endtime`, `examtime`)VALUES('$_SESSION[user]','$row[lsname]','$row[teachername]','$row[classday]','$row[starttime]','$row[endtime]','$row[examtime]') ");
echo "one record added";
}
echo "<table border='4' bordercolor='CC0099' width=100% height=20% >";
echo "<tr><th>Name</th><th>Professor</th><th>Capacity</th><th>Exam</th><th colspan='3'>classtime</th></tr>";
$result = mysql_query("SELECT * FROM class");
while($row = mysql_fetch_assoc($result))
{
if($_POST[t]==$row[lsname])
{
foreach($row as $key=>$var2)
{
echo "<td align='center'>$var2 </td>";
}
echo "<td align='center'><input type='submit' value='Register' onclick='aa()'></td> ";
}
echo "</tr>";
}
echo"</table>";
?>
</form>
</html>
please help me I mystify in my project :(
|
|
|
|
|
if you mean what I think you mean:
first page:
<?php
$sSomething='378923';
echo '<input type="hidden" name="something" value="'.htmlentities($sSomething).'">';
?>
second page:
<?php
$sSomething=(isset($_POST['something']) ? $_POST['something'] : '');
?>
|
|
|
|
|
When I must debug post, get or session variables I use this at the top of the target page.
<?php
session_start();
echo "<pre>";
print_r($_POST);
print_r($_SESSION);
echo "</pre>";
?>
This will allow you to see what is being passed to your target page so you will know if the data is making it or not.
I see that you defined your function aa()...but where is it called from?
Chris J
www.redash.org
|
|
|
|
|
I called it when I define submit button onclick attributes
echo "<td align='center'><input type='submit' value='Register' onclick='aa()'></td> ";
|
|
|
|
|
no you are calling a javascript function called aa() and that I'm guessing does not exist?
remeber php is executed on the server. The onclick is a javascript event that is triggered on the users browser. So you are most likely getting a undefined from the browser if the form submits to itself (i.e. - the scripts name is "reqire.php") But the error I think is wiped as the page reloads.
The php function aa() is never called.
On a side note, its really bad to:
1) have a database connection based on root, to much access for what is needed.
2) display a password in a forum, big security hole.
Chris J
www.redash.org
|
|
|
|
|
The function aa() work but I can't access the variable my big problem is I don't know user click in which button to insert data I agree with you but I can't insert in javascript!I think I should solve this problem in another way what's your suggestion?
|
|
|
|
|
This is what I have issues with in your code..
<?php
session_start();
echo ($_SESSION[users]);
echo "$_POST[t]";
?>
<html>
<form method="post" action="reqire.php">
<?php
require_once ('db.php');
$db = new db("root","","regstudent","localhost");
function aa()
{
require_once ('db.php');
$db = new db("root","","regstudent","localhost");
$db->query("INSERT INTO register(`user`, `lsname`, `teachername`, `classday`, `starttime`, `endtime`, `examtime`)VALUES('$_SESSION[user]','$row[lsname]','$row[teachername]','$row[classday]','$row[starttime]','$row[endtime]','$row[examtime]') ");
echo "one record added";
}
echo "<table border='4' bordercolor='CC0099' width=100% height=20% >";
echo "<tr><th>Name</th><th>Professor</th><th>Capacity</th><th>Exam</th><th colspan='3'>classtime</th></tr>";
$result = mysql_query("SELECT * FROM class");
$result = mysql_query("SELECT * FROM class") or die("<br>...LINE ".__LINE__."<br>...SQL: ".$sql."<br>...ERROR: ".mysql_error()."<br>");
while($row = mysql_fetch_assoc($result))
{
if($_POST[t]==$row[lsname])
{
foreach($row as $key=>$var2)
{
echo "<td align='center'>$var2 </td>";
}
echo "<td align='center'><input type='submit' value='Register' onclick='aa()'></td> ";
}
echo "</tr>";
}
echo"</table>";
?>
</form>
This is a framework of how I would structure the same thing...
<?php
session_start();
include("resources.php");
$dbh=dbconn();
if(isset($_POST['action']))
{
}
echo "<form action='reqire.php' method='post'>\n";
echo "</form>\n";
?>
Chris J
www.redash.org
|
|
|
|
|
Thanks alot for your help
|
|
|
|
|
To remove a file from php use the unlink() function. You can enter either the full path or the relative path to the file. You can see the examples below. All of them are valid.
unlink('deleteme.txt');
unlink('/home/arman/public_html/deleteme.txt');
unlink('./deleteme.txt');
unlink('../deleteme.txt');
PHP will give you a warning if the file you want to remove doesn't exist so you may want to force php to be quiet using the '@' character like this :
@unlink('./deleteme.txt');
Or you can first test if the file exist or not like thigs
$fileToRemove = '/home/arman/public_html/deleteme.txt';
if (file_exists($fileToRemove))) {
// yes the file does exist
unlink($fileToRemove);
} else {
// the file is not found, do something about it???
}
PHP will also give you a warning if you don't have enough permission to delete the file. It would be better if your code check if the file is removed successfully or not like show below
$fileToRemove = '/home/arman/public_html/deleteme.txt';
if (file_exists($fileToRemove)) {
// yes the file does exist
if (@unlink($fileToRemove) === true) {
// the file successfully removed
} else {
// something is wrong, we may not have enough permission
// to delete this file
}
} else {
// the file is not found, do something about it???
}
|
|
|
|
|
You should post those things in the tips/tricks forum...
Or even better you could make an article with a bunch of php tools...
|
|
|
|
|
Profile your code to pinpoint bottlenecks
Hoare's dictum states that Premature optimization is the root of all evil, an important thing to keep in mind when trying to make your web sites faster. Before changing your code, you'll need to determine what is causing it to be slow. You may go through this guide, and many others on optimizing PHP, when the issue might instead be database-related or network-related. By profiling your PHP code, you can try to pinpoint bottlenecks.
Upgrade your version of PHP
The team of developers who maintain the PHP engine have made a number of significant performance improvements over the years. If your web server is still running an older version, such as PHP 3 or PHP 4, you may want to investigate upgrading before you try to optimize your code.
Migrating from PHP 4 to PHP 5.0.x
Migrating from PHP 5.0.x to PHP 5.1.x
Migrating from PHP 5.1.x to PHP 5.2.x
Use caching
Making use of a caching module, such as Memcache, or a templating system which supports caching, such as Smarty, can help to improve the performance of your website by caching database results and rendered pages.
Use output buffering
PHP uses a memory buffer to store all of the data that your script tries to print. This buffer can make your pages seem slow, because your users have to wait for the buffer to fill up before it sends them any data. Fortunately, you can make some changes that will force PHP to flush the output buffers sooner, and more often, making your site feel faster to your users.
Output Buffering Control
Avoid writing naive setters and getters
When writing classes in PHP, you can save time and speed up your scripts by working with object properties directly, rather than writing naive setters and getters. In the following example, the dog class uses the setName() and getName() methods for accessing the name property.
class dog {
public $name = '';
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
Notice that setName() and getName() do nothing more than store and return the name property, respectively.
$rover = new dog();
$rover->setName('rover');
echo $rover->getName();
Setting and calling the name property directly can run up to 100% faster, as well as cutting down on development time.
$rover = new dog();
$rover->name = 'rover';
echo $rover->name;
Don't copy variables for no reason
Sometimes PHP novices attempt to make their code "cleaner" by copying predefined variables to variables with shorter names before working with them. What this actually results in is doubled memory consumption (when the variable is altered), and therefore, slow scripts. In the following example, if a user had inserted 512KB worth of characters into a textarea field. This implementation would result in nearly 1MB of memory being used.
$description = strip_tags($_POST['description']);
echo $description;
There's no reason to copy the variable above. You can simply do this operation inline and avoid the extra memory consumption:
echo strip_tags($_POST['description']);
Avoid doing SQL queries within a loop
A common mistake is placing a SQL query inside of a loop. This results in multiple round trips to the database, and significantly slower scripts. In the example below, you can change the loop to build a single SQL query and insert all of your users at once.
foreach ($userList as $user) {
$query = 'INSERT INTO users (first_name,last_name) VALUES("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
mysql_query($query);
}
Produces:
INSERT INTO users (first_name,last_name) VALUES("John", "Doe")
Instead of using a loop, you can combine the data into a single database query.
$userData = array();
foreach ($userList as $user) {
$userData[] = '("' . $user['first_name'] . '", "' . $user['last_name'] . '")';
}
$query = 'INSERT INTO users (first_name,last_name) VALUES' . implode(',', $userData);
mysql_query($query);
Produces:
INSERT INTO users (first_name,last_name) VALUES("John", "Doe"),("Jane", "Doe")...
|
|
|
|
|
Author: Eric Higgins, Google Webmaster
Recommended experience: Beginner to intermediate PHP knowledge
PHP is a very popular scripting language, used on many popular sites across the web. In this article, we hope to help you to improve the performance of your PHP scripts with some changes that you can make very quickly and painlessly. Please keep in mind that your own performance gains may vary greatly, depending on which version of PHP you are running, your web server environment, and the complexity of your code.
|
|
|
|
|