Jump to content

nadhim

Members
  • Posts

    13
  • Joined

  • Last visited

    Never

Profile Information

  • Gender
    Not Telling

nadhim's Achievements

Newbie

Newbie (1/5)

0

Reputation

  1. hi problem solved because the path inside a function and the variable definition outside all i needed to do was adding (global) function to get the things to work like this // this is the variable i want to use as a directory definition $logger=$login_session; class UploadHandler { protected $options; function __construct($options=null) { // global function to allow the variable to work inside the function_construct // use this with any function you wanted the variable to work in global $logger; $this->options = array( 'script_url' => $this->getFullUrl().'/', // i used the variable as a folder path here and works fine 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME'])."/account/".$logger."/",
  2. i modified the code to write the slashes before and after file name like this 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']) . "/"."12345"."/", i did this because i thought the variable might not getting the slashes this works fine but again when i identify 12345 as a variable in the top of the same document its not working s.th like this $path="123445"; the code should be 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']) . "/".$path."/", but its not working why i have no idea any help
  3. it didn't work the code posted by Pikachu2000 is good I'm sure but where should i write the value $path in this document i wrote it directly under <? php do i need a function or any thing else to identify $path or its ok to write it anywhere ? example : $path="12345";
  4. I'll try this and give you the result Thank you pro
  5. I left spaces to show you its not this " ;-)
  6. hello i have a code to get some uploaded files from different folders i have users and i want each user session ( the username ) get his file from the server but simple thing here how to use a variable like $session_user in a path look at this code $FileName = "test.php"; $fh = fopen('./premium/$FileName', 'w') or die("can't open file"); i got this from other site but this doesnt work for me i have the path inside a function see this <?php class UploadHandler { protected $options; function __construct($options=null) { $this->options = array( // mysql connection settings 'database' => "ecf", 'host' => "localhost", 'username' => "root", 'password' => "99801277", 'script_url' => $this->getFullUrl().'/', 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/12345/', 'upload_url' => $this->getFullUrl().'/files/', 'param_name' => 'files', // Set the following option to 'POST', if your server does not support // DELETE requests. This is a parameter sent to the client: 'delete_type' => 'DELETE', // The php.ini settings upload_max_filesize and post_max_size // take precedence over the following max_file_size setting: 'max_file_size' => null, 'min_file_size' => 1, 'accept_file_types' => '/.+$/i', // The maximum number of files for the upload directory: 'max_number_of_files' => null, // Image resolution restrictions: 'max_width' => null, 'max_height' => null, 'min_width' => 1, 'min_height' => 1, // Set the following option to false to enable resumable uploads: 'discard_aborted_uploads' => true, // Set to true to rotate images based on EXIF meta data, if available: 'orient_image' => false, 'image_versions' => array( // Uncomment the following version to restrict the size of // uploaded images. You can also add additional versions with // their own upload directories: /* 'large' => array( 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/files/', 'upload_url' => $this->getFullUrl().'/files/', 'max_width' => 1920, 'max_height' => 1200, 'jpeg_quality' => 95 ), */ 'thumbnail' => array( 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/thumbnails/', 'upload_url' => $this->getFullUrl().'/thumbnails/', 'max_width' => 80, 'max_height' => 80 ) ) ); if ($options) { $this->options = array_replace_recursive($this->options, $options); } } protected function getFullUrl() { $https = !empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off'; return ($https ? 'https://' : 'http://'). (!empty($_SERVER['REMOTE_USER']) ? $_SERVER['REMOTE_USER'].'@' : ''). (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ($_SERVER['SERVER_NAME']. ($https && $_SERVER['SERVER_PORT'] === 443 || $_SERVER['SERVER_PORT'] === 80 ? '' : ':'.$_SERVER['SERVER_PORT']))). substr($_SERVER['SCRIPT_NAME'],0, strrpos($_SERVER['SCRIPT_NAME'], '/')); } protected function set_file_delete_url($file) { $file->delete_url = $this->options['script_url'] .'?file='.rawurlencode($file->name); $file->delete_type = $this->options['delete_type']; if ($file->delete_type !== 'DELETE') { $file->delete_url .= '&_method=DELETE'; } } protected function get_file_object($file_name) { $file_path = $this->options['upload_dir'].$file_name; if (is_file($file_path) && $file_name[0] !== '.') { $file = new stdClass(); $file->name = $file_name; $file->size = filesize($file_path); $file->url = $this->options['upload_url'].rawurlencode($file->name); foreach($this->options['image_versions'] as $version => $options) { if (is_file($options['upload_dir'].$file_name)) { $file->{$version.'_url'} = $options['upload_url'] .rawurlencode($file->name); } } $this->set_file_delete_url($file); return $file; } return null; } protected function get_file_objects() { return array_values(array_filter(array_map( array($this, 'get_file_object'), scandir($this->options['upload_dir']) ))); } protected function create_scaled_image($file_name, $options) { $file_path = $this->options['upload_dir'].$file_name; $new_file_path = $options['upload_dir'].$file_name; list($img_width, $img_height) = @getimagesize($file_path); if (!$img_width || !$img_height) { return false; } $scale = min( $options['max_width'] / $img_width, $options['max_height'] / $img_height ); if ($scale >= 1) { if ($file_path !== $new_file_path) { return copy($file_path, $new_file_path); } return true; } $new_width = $img_width * $scale; $new_height = $img_height * $scale; $new_img = @imagecreatetruecolor($new_width, $new_height); switch (strtolower(substr(strrchr($file_name, '.'), 1))) { case 'jpg': case 'jpeg': $src_img = @imagecreatefromjpeg($file_path); $write_image = 'imagejpeg'; $image_quality = isset($options['jpeg_quality']) ? $options['jpeg_quality'] : 75; break; case 'gif': @imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0)); $src_img = @imagecreatefromgif($file_path); $write_image = 'imagegif'; $image_quality = null; break; case 'png': @imagecolortransparent($new_img, @imagecolorallocate($new_img, 0, 0, 0)); @imagealphablending($new_img, false); @imagesavealpha($new_img, true); $src_img = @imagecreatefrompng($file_path); $write_image = 'imagepng'; $image_quality = isset($options['png_quality']) ? $options['png_quality'] : 9; break; default: $src_img = null; } $success = $src_img && @imagecopyresampled( $new_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $img_width, $img_height ) && $write_image($new_img, $new_file_path, $image_quality); // Free up memory (imagedestroy does not delete files): @imagedestroy($src_img); @imagedestroy($new_img); return $success; } protected function validate($uploaded_file, $file, $error, $index) { if ($error) { $file->error = $error; return false; } if (!$file->name) { $file->error = 'missingFileName'; return false; } if (!preg_match($this->options['accept_file_types'], $file->name)) { $file->error = 'acceptFileTypes'; return false; } if ($uploaded_file && is_uploaded_file($uploaded_file)) { $file_size = filesize($uploaded_file); } else { $file_size = $_SERVER['CONTENT_LENGTH']; } if ($this->options['max_file_size'] && ( $file_size > $this->options['max_file_size'] || $file->size > $this->options['max_file_size']) ) { $file->error = 'maxFileSize'; return false; } if ($this->options['min_file_size'] && $file_size < $this->options['min_file_size']) { $file->error = 'minFileSize'; return false; } if (is_int($this->options['max_number_of_files']) && ( count($this->get_file_objects()) >= $this->options['max_number_of_files']) ) { $file->error = 'maxNumberOfFiles'; return false; } list($img_width, $img_height) = @getimagesize($uploaded_file); if (is_int($img_width)) { if ($this->options['max_width'] && $img_width > $this->options['max_width'] || $this->options['max_height'] && $img_height > $this->options['max_height']) { $file->error = 'maxResolution'; return false; } if ($this->options['min_width'] && $img_width < $this->options['min_width'] || $this->options['min_height'] && $img_height < $this->options['min_height']) { $file->error = 'minResolution'; return false; } } return true; } protected function upcount_name_callback($matches) { $index = isset($matches[1]) ? intval($matches[1]) + 1 : 1; $ext = isset($matches[2]) ? $matches[2] : ''; return ' ('.$index.')'.$ext; } protected function upcount_name($name) { return preg_replace_callback( '/(??: \(([\d]+)\))?(\.[^.]+))?$/', array($this, 'upcount_name_callback'), $name, 1 ); } protected function trim_file_name($name, $type, $index) { // Remove path information and dots around the filename, to prevent uploading // into different directories or replacing hidden system files. // Also remove control characters and spaces (\x00..\x20) around the filename: $file_name = trim(basename(stripslashes($name)), ".\x00..\x20"); // Add missing file extension for known image types: if (strpos($file_name, '.') === false && preg_match('/^image\/(gif|jpe?g|png)/', $type, $matches)) { $file_name .= '.'.$matches[1]; } if ($this->options['discard_aborted_uploads']) { while(is_file($this->options['upload_dir'].$file_name)) { $file_name = $this->upcount_name($file_name); } } return $file_name; } protected function handle_form_data($file, $index) { // Handle form data, e.g. $_REQUEST['description'][$index] } protected function orient_image($file_path) { $exif = @exif_read_data($file_path); if ($exif === false) { return false; } $orientation = intval(@$exif['Orientation']); if (!in_array($orientation, array(3, 6, )) { return false; } $image = @imagecreatefromjpeg($file_path); switch ($orientation) { case 3: $image = @imagerotate($image, 180, 0); break; case 6: $image = @imagerotate($image, 270, 0); break; case 8: $image = @imagerotate($image, 90, 0); break; default: return false; } $success = imagejpeg($image, $file_path); // Free up memory (imagedestroy does not delete files): @imagedestroy($image); return $success; } protected function handle_file_upload($uploaded_file, $name, $size, $type, $error, $index = null) { $file = new stdClass(); $file->name = $this->trim_file_name($name, $type, $index); $file->size = intval($size); $file->type = $type; if ($this->validate($uploaded_file, $file, $error, $index)) { $this->handle_form_data($file, $index); $file_path = $this->options['upload_dir'].$file->name; $append_file = !$this->options['discard_aborted_uploads'] && is_file($file_path) && $file->size > filesize($file_path); clearstatcache(); if ($uploaded_file && is_uploaded_file($uploaded_file)) { // multipart/formdata uploads (POST method uploads) if ($append_file) { file_put_contents( $file_path, fopen($uploaded_file, 'r'), FILE_APPEND ); } else { move_uploaded_file($uploaded_file, $file_path); } } else { // Non-multipart uploads (PUT method support) file_put_contents( $file_path, fopen('php://input', 'r'), $append_file ? FILE_APPEND : 0 ); } $file_size = filesize($file_path); if ($file_size === $file->size) { if ($this->options['orient_image']) { $this->orient_image($file_path); } $file->url = $this->options['upload_url'].rawurlencode($file->name); foreach($this->options['image_versions'] as $version => $options) { if ($this->create_scaled_image($file->name, $options)) { if ($this->options['upload_dir'] !== $options['upload_dir']) { $file->{$version.'_url'} = $options['upload_url'] .rawurlencode($file->name); } else { clearstatcache(); $file_size = filesize($file_path); } } } } else if ($this->options['discard_aborted_uploads']) { unlink($file_path); $file->error = 'abort'; } $file->upload_to_db = $this->add_img($file->name); $file->size = $file_size; $this->set_file_delete_url($file); } return $file; } function query($query) { $database = $this->options['database']; $host = $this->options['host']; $username = $this->options['username']; $password = $this->options['password']; $link = mysql_connect($host,$username,$password); if (!$link) { die(mysql_error()); } $db_selected = mysql_select_db($database); if (!$db_selected) { die(mysql_error()); } $result = mysql_query($query); return $result; mysql_close($link); } function add_img($whichimg) { $add_to_db = $this->query("INSERT INTO uploads (logger,name) VALUES ('79227','files".$whichimg."') ") or die(mysql_error()); return $add_to_db; } function delete_img($delimg) { $delete_from_db = $this->query("DELETE FROM uploads WHERE name = '$delimg'") or die(mysql_error()); return $delete_from_db; } public function get() { $file_name = isset($_REQUEST['file']) ? basename(stripslashes($_REQUEST['file'])) : null; if ($file_name) { $info = $this->get_file_object($file_name); } else { $info = $this->get_file_objects(); } header('Content-type: application/json'); echo json_encode($info); } public function post() { if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') { return $this->delete(); } $upload = isset($_FILES[$this->options['param_name']]) ? $_FILES[$this->options['param_name']] : null; $info = array(); if ($upload && is_array($upload['tmp_name'])) { // param_name is an array identifier like "files[]", // $_FILES is a multi-dimensional array: foreach ($upload['tmp_name'] as $index => $value) { $info[] = $this->handle_file_upload( $upload['tmp_name'][$index], isset($_SERVER['HTTP_X_FILE_NAME']) ? $_SERVER['HTTP_X_FILE_NAME'] : $upload['name'][$index], isset($_SERVER['HTTP_X_FILE_SIZE']) ? $_SERVER['HTTP_X_FILE_SIZE'] : $upload['size'][$index], isset($_SERVER['HTTP_X_FILE_TYPE']) ? $_SERVER['HTTP_X_FILE_TYPE'] : $upload['type'][$index], $upload['error'][$index], $index ); } } elseif ($upload || isset($_SERVER['HTTP_X_FILE_NAME'])) { // param_name is a single object identifier like "file", // $_FILES is a one-dimensional array: $info[] = $this->handle_file_upload( isset($upload['tmp_name']) ? $upload['tmp_name'] : null, isset($_SERVER['HTTP_X_FILE_NAME']) ? $_SERVER['HTTP_X_FILE_NAME'] : (isset($upload['name']) ? $upload['name'] : null), isset($_SERVER['HTTP_X_FILE_SIZE']) ? $_SERVER['HTTP_X_FILE_SIZE'] : (isset($upload['size']) ? $upload['size'] : null), isset($_SERVER['HTTP_X_FILE_TYPE']) ? $_SERVER['HTTP_X_FILE_TYPE'] : (isset($upload['type']) ? $upload['type'] : null), isset($upload['error']) ? $upload['error'] : null ); } header('Vary: Accept'); $json = json_encode($info); $redirect = isset($_REQUEST['redirect']) ? stripslashes($_REQUEST['redirect']) : null; if ($redirect) { header('Location: '.sprintf($redirect, rawurlencode($json))); return; } if (isset($_SERVER['HTTP_ACCEPT']) && (strpos($_SERVER['HTTP_ACCEPT'], 'application/json') !== false)) { header('Content-type: application/json'); } else { header('Content-type: text/plain'); } echo $json; } public function delete() { $file_name = isset($_REQUEST['file']) ? basename(stripslashes($_REQUEST['file'])) : null; $file_path = $this->options['upload_dir'].$file_name; $success = is_file($file_path) && $file_name[0] !== '.' && unlink($file_path); if ($success) { $this->delete_img($file_name); foreach($this->options['image_versions'] as $version => $options) { $file = $options['upload_dir'].$file_name; if (is_file($file)) { unlink($file); } } } header('Content-type: application/json'); echo json_encode($success); } } in this code the important thing is the path to folder (12345) 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).'/12345/', this works perfect and get the data bu now if i use for example $path="/12345/"; how can i put his variable inside the path like this 'upload_dir' => dirname($_SERVER['SCRIPT_FILENAME']).' '.$path.' ', this didn't work how to get this variable inside this path ? please help .
  7. problem solved what i did as some mates said the problem from session_start(); so i added this code to lock.php and remove all the other codes and include this file with every single php thank you very much
  8. The $login_session isnt used any where else Actually im not that good in php im good at html more I used login_session to show the user in external page to say hellow ( user) but i needed the same result to get data from marks table i didnt have any other code with $login_session Im sure i miss understand something in this code and its about this value and this is why i need help because i got sick trying to solve it i really really thank you I will keep trying and inform you and if you want the whole source files i can upload them to you its not website its a school project
  9. oh no it didn't fix it your code is good i replace my code and the whole site works fine but the graph still has the problem any fix
  10. Thank you i will try your codes now Thank you again its great i will return ASAP
  11. and another thing i didnt use session_start(); in Get_marks.php but it gives the result why the other file (mysql_graph_bar.php) can't git it ? is there any effect of including two phps in this php ? i spent masive hours trying to solve this
  12. when i started it it gives an error in the top Notice: A session had already been started - ignoring session_start() in
  13. hello i really need help i cant get session to work in a particular php file but it works with others here are the codes i'm working in mysql tables of student marks i want to allow all students to logon and each one see his greads with a chart i started with login.php login.php <?php include("config.php"); session_start(); if($_SERVER["REQUEST_METHOD"] == "POST") { // username and password sent from Form $myusername=addslashes($_POST['username']); $mypassword=addslashes($_POST['password']); $sql="SELECT id FROM users WHERE username='$myusername' and password='$mypassword'"; $result=mysql_query($sql); $row=mysql_fetch_array($result); $active=$row['active']; $count=mysql_num_rows($result); // If result matched $myusername and $mypassword, table row must be 1 row if($count==1) { session_register("myusername"); $_SESSION['login_user']=$myusername; header("location: users/panel.php"); } else { header("Location: invalid_login.html"); } } ?> then this will start a session in lock.php <?php include('config.php'); session_start(); $user_check=$_SESSION['login_user']; $ses_sql=mysql_query("select username from users where username='$user_check' "); $row=mysql_fetch_array($ses_sql); $login_session=$row['username']; if(!isset($login_session)) { header("Location: login.php"); } ?> then the result will be showed in auth.php which i included in the students' page to say welcome ..user... <?php include('lock.php'); print $login_session; ?> i have a table with the marks and i need to do charts and show marks from that table to show marks i used the following code and then include it in students page to see results get_marks.php <?php include("config.php"); // connect to the mysql server $link = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die ("Could not connect to mysql because ".mysql_error()); // select the database mysql_select_db($mysql_database) or die ("Could not select database because ".mysql_error()); $query = "SELECT id, sno, maths, english, physics, servicew, ast, defstudy, nav, other FROM Marks WHERE sno = '$login_session'"; $result = mysql_query($query); if (mysql_query($query)) { echo ""; } else { echo 'Incorrect Name: ' . mysql_error() . "\n"; } echo "<table border='0' bordercolor='#ffffff' width=200 cellspacing=10 CELLSPACING=0 padding-bottom: 10px style='color:#629fa8 ;font-size:15px ;font-family: Georgia; font-weight:blod; background-color:#ffffff'> <tr> </tr>"; while($row = mysql_fetch_array($result)) { echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: Georgia; border-bottom:non; font-weight:normal; background-color:#ffffff'>English:</td>"; echo "<td>" . $row['english']. "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Mathmatics:</td>"; echo "<td>" . $row['maths'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Physics:</td>"; echo "<td>" . $row['physics'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Servics writing:</td>"; echo "<td>" . $row['servicew'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>AST:</td>"; echo "<td>" . $row['ast'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Navigation:</td>"; echo "<td>" . $row['nav'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Defence Studies:</td>"; echo "<td>" . $row['defstudy'] . "</td>"; echo "</tr>"; echo "<tr>"; echo "<td style='color:#2f2f2f; font-size:15px; font-family: arial; font-weight:normal; background-color:#ffffff'>Other:</td>"; echo "<td>" . $row['other'] . "</td>"; echo "</tr>"; } echo "</table>"; ?> notice this is where i put the session to get the logged student marks from the table row $query = "SELECT id, sno, maths, english, physics, servicew, ast, defstudy, nav, other FROM Marks WHERE sno = '$login_session'"; i used the $login_session to specify the logged student number and get his marks from the table this works fine and the marks showed for everybody logged in by taking his username( which is a number called (sno) in the table ) and get the data from MYSQL but the chart has problems why ? i have no idea the chart includes phpgraphlib.php to configure it and this file : mysql_graph_bar.php <?php include("phpgraphlib.php"); $graph=new PHPGraphLib(320,170); include("config.php"); // connect to the mysql server $link = mysql_connect($mysql_hostname, $mysql_user, $mysql_password) or die ("Could not connect to mysql because ".mysql_error()); // select the database mysql_select_db($mysql_database) or die ("Could not select database because ".mysql_error()); $query = "SELECT id, sno, maths, english, physics, servicew, ast, defstudy, nav, other FROM marks WHERE sno = '$login_session'"; $result = mysql_query($query); if ($result) { while ($row = mysql_fetch_assoc($result)) { $english=$row["english"]; $maths=$row["maths"]; $physics=$row["physics"]; $servicew=$row["servicew"]; $ast=$row["ast"]; $nav=$row["nav"]; $defstudy=$row["defstudy"]; $other=$row["other"]; //add to data areray $dataArray[$english]=$english; $dataArray[$maths]=$maths; $dataArray[$physics]=$physics; $dataArray[$servicew]=$servicew; $dataArray[$ast]=$ast; $dataArray[$nav]=$nav; $dataArray[$defstudy]=$defstudy; $dataArray[$other]=$other; } } //configure graph $graph->addData($dataArray); $graph->setupXAxis(12, 'gray'); $graph->setupYAxis(12, 'gray'); $graph->setTextColor('gray'); $graph->setGridColor('236,236,236'); $graph->setDataValues(false); $graph->setGoalLine('65'); $graph->setGoalLineColor('red'); $graph->setDataFormat('%'); $graph->setGradient("Teal", "Teal"); $graph->setBarOutlineColor("gray"); $graph->setDataValues(false); $graph->createGraph(); and this will be showed as an image in the student page by writing this code <img src="mysql_graph_bar.php" /> the problem when i put the session same as marks after (sno) i wont get anything it fails and give damaged image where the chart should be Example: this doesn't work because i used sno = '$login_session' $query = "SELECT id, sno, maths, english, physics, servicew, ast, defstudy, nav, other FROM marks WHERE sno = '$login_session'"; when i changed the value to a specific student number (sno) from the table (marks) it works example student number 123456 $query = "SELECT id, sno, maths, english, physics, servicew, ast, defstudy, nav, other FROM marks WHERE sno = '123456'"; please help me to get the session result works..
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.