include_once πρόβλημα

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από sibas » 02 Δεκ 2005 04:08

Γεια χαρά σας
Δεν γνωρίζω πολλά από php αλλά συναντάω αυτό το πρόβλημα με το include_once.
Δοκιμάζω το <?php @include_once("some.php");?> και λειτουργεί μια χαρά
όταν όμως βάζω στην ίδια σελίδα το <?php @include_once("another.php");?> τότε το 2 δεν λειτουργεί.
Σκέφτηκα να γράψω στο http://nl2.php.net/include_once για το πρόβλημα,
αλλά μετά θυμήθηκα ότι δεν έχω ιδέα από php και μπορεί να με παίρνανε στο ψιλό. :hammer:

Έχει κανείς κάποια ιδέα για το πού είναι το πρόβλημα.

Άβαταρ μέλους
ThyClub
Honorary Member
Δημοσιεύσεις: 5312
Εγγραφή: 17 Νοέμ 2003 00:21
Τοποθεσία: Hell's Kitchen
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από ThyClub » 02 Δεκ 2005 05:26

Το another.php απο πού το καταλαβαίνεις οτι δεν δουλεύει; Προσπάθησε να βγάλεις το @ απο το Include και κάνε paste εδώ το σφάλμα που σου βγάζει.

Το : another.php υπάρχει;
Είναι στον ίδιο φάκελο με το : some.php;

Δώσε λίγο ακόμα κώδικα να δούμε.. και βάλε τα κανονικά ονόματα των αρχείων :wink:

Άβαταρ μέλους
skeftomilos
Script Master
Δημοσιεύσεις: 2888
Εγγραφή: 07 Ιαν 2005 07:22
Τοποθεσία: Αθήνα

include_once πρόβλημα

Δημοσίευση από skeftomilos » 02 Δεκ 2005 07:23

Το παπάκι μπροστά από τις εντολές είναι το error-handling της PHP!

Δοκίμασες με σκέτο include() ή require();
The pure and simple truth is rarely pure and never simple. Ο μη νους δε σκέπτεται μη σκέψεις για το τίποτα.

Άβαταρ μέλους
cherouvim
Script Master
Δημοσιεύσεις: 3137
Εγγραφή: 13 Ιούλ 2005 22:56
Τοποθεσία: Athens, Greece
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από cherouvim » 02 Δεκ 2005 07:26

Και πάντα error_reporting(E_ALL); κατά την ανάπτυξη του κώδικα.

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από Rapid-eraser » 02 Δεκ 2005 09:40

Na pw kati ...

As arxisoume me tnv diafora tou include / require

Eivai pavomiotipes constracts tis php me tnv movi diaforaoti av lipei to arxeio n require 8a stamatisei
tnv ektelesi tou script se parse time evo to include
8a dosei eva warring se run time kai 8a sivexisei tnv ektelesi.

twra orizovtas to _once kai stis dio constracts 8a kavei kati poli aplo.
8a se stamatisei apo to va ksava evsomatoseis
tov IDIO kodika dio fores.
dld afto pou se prostatebei eivai to redefine tou idiou kodika. px eva link stnv mysql eva define mias function kai tetoia pragmata.

Κώδικας: Επιλογή όλων

<?
require&#40;'test.php'&#41;;
...
...
...
...
require&#40;'test.php'&#41;;
?>
Afto kata avagki dev eivai la8os ... ti 8a givei
stnv periptosi omos pou kai ta dio exouv mesa

test.php

Κώδικας: Επιλογή όλων

<?
function testarw&#40;&#41;&#123;
echo time&#40;&#41;;
&#125;
?>
8a baresei eva error me redefine tis function.
Fisika afto simbevei otav exoume parapoles grames
kodika kai dev mporoume va 8imi8oume ti includes/requires
exoume kavei pio psila.
Bazovtas include_once / require_once n php 8a frovtisei va stamatisei tnv pros8iki defteris foras tou idiou source.
grafovtas
Avtika8istovtas ta include/require me ta _once tous dld
8a mas prostatepsei arxitektovika apo to idio la8os.

Ara egw kataligo sto simperasma oti apla kaveis include to idio arxeio kai oxi diaforetiko arxeio.
(H exouv akribos to idio source)
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από sibas » 02 Δεκ 2005 14:06

Έχουμε και λέμε το some.php είναι ένα counter το οποίο το βρήκα μετά από πολύ ψάξιμο για τις ανάγκες μου από εδώ
http://www.free-php-scripts.net/downloa ... t.php?id=3
είναι κάτω από LGPL οπότε δεν υπάρχει πρόβλημα να δείξω τον κώδικα εδώ ;)
Ο κώδικας είναι

Κώδικας: Επιλογή όλων

<?php
/*********************************************************
This Free Script was downloaded at			
Free-php-Scripts.net &#40;HelpPHP.net&#41;			
This script is produced under the LGPL license		
Which is included with your download?			
Not like you are going to read it, but it mostly	
States that you are free to do whatever you want	
With this script!						
*********************************************************/

//Site defines
//Set count type&#58;
// 1 --> unique, only count each ip one time
// 2 --> All, count hits, ip not a problem

$type = 1;
$IP_FILE = 'ips.txt'; 
$COUNTER_FILE = 'counter.txt'; 

//Function to get user ip &#40;stolen from phpskills.com &#58;&#41;
function get_user_ip&#40;&#41;&#123;       
	$ipParts = explode&#40;".", $_SERVER&#91;'REMOTE_ADDR'&#93;&#41;;
	if &#40;$ipParts&#91;0&#93; == "165" && $ipParts&#91;1&#93; == "21"&#41; &#123;    
    	if &#40;getenv&#40;"HTTP_CLIENT_IP"&#41;&#41; &#123;
        	$ip = getenv&#40;"HTTP_CLIENT_IP"&#41;;
        &#125; elseif &#40;getenv&#40;"HTTP_X_FORWARDED_FOR"&#41;&#41; &#123;
            $ip = getenv&#40;"HTTP_X_FORWARDED_FOR"&#41;;
        &#125; elseif &#40;getenv&#40;"REMOTE_ADDR"&#41;&#41; &#123;
            $ip = getenv&#40;"REMOTE_ADDR"&#41;;
        &#125;
    &#125; else &#123;
       return $_SERVER&#91;'REMOTE_ADDR'&#93;;
   	&#125;
   	return $ip;
&#125;



// Use this to check that the ip was already entered into the database &#40;no entry is made&#41;
$user_ip = get_user_ip&#40;&#41;;
$match = false;

//Open Ip file, if does not exist creat one, and see if we have a match
if&#40;!is_file&#40;'ips.txt'&#41;&#41;&#123;
	$file = fopen&#40;$IP_FILE,'w+'&#41;;
	fwrite&#40;$file,$user_ip."\n"&#41;;
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = @fopen&#40;$IP_FILE, "r"&#41;; 
	$ip_list = fread&#40;$file, filesize&#40;$IP_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;
	if&#40;eregi&#40;$user_ip,$ip_list&#41;&#41;&#123;
		$match = true;
	&#125; else &#123;
		$file = fopen&#40;$IP_FILE,'a'&#41;;
		fwrite&#40;$file,$user_ip."\n"&#41;;
		fclose&#40;$file&#41;;		
	&#125;
&#125;		

// Check Type Kind		
if&#40;$type == 2 || &#40;$type == 1 && $match == false&#41;&#41;&#123;
	$file = fopen&#40;$COUNTER_FILE,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;	

	$hitcount++;

	$file = fopen&#40;$COUNTER_FILE,'w+'&#41;;
	fwrite &#40;$file, $hitcount &#41;;
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = fopen&#40;$COUNTER_FILE,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;	
&#125;

// It is safe to change these information to your needs
if&#40;$type == 2&#41;&#123;
	echo 'Page\'s Total hits&#58; ' . $hitcount;
&#125; else &#123;
	echo 'This Page Has&#58; ' . $hitcount . ' Unique hits!';
&#125;
echo "<!--
/*********************************************************
This Free Script was downloaded at			
Free-php-Scripts.net &#40;HelpPHP.net&#41;			
This script is produced under the LGPL license		
Which is included with your download?			
Not like you are going to read it, but it mostly	
States that you are free to do whatever you want	
With this script!						
*********************************************************/
-->";
?>

Το script έχει την δυνατότητα όπως βλέπετε να παρουσιάζει μέτρημα σε 2 μορφές είτε σε Unique επισκέπτες είτε σε συνολικούς επισκέπτες,
εγώ όμως θέλω να παρουσιάζει και τα 2,
έτσι λοιπόν έκανα άλλο ένα php και είχα counterUnique.php και counterAll.php
τα οποία τα καλούσα όπως λέει στο readme του script δηλαδή
<?php @include_once("counterUnique.php");?>
<?php @include_once("counterAll.php");?>
Το αποτέλεσμα είναι να μην λειτουργεί πάντα το 2 σε σειρά script
τα δοκίμασα αντιστρέφοντας και πάλι το 2 σε σειρά δεν λειτουργούσε. :hammer:

Δεν δοκίμασα το παρακάτω (θα το δω το απόγευμα)
για πείτε την γνώμη σας (πειράματα από άσχετο με το θέμα)

Κώδικας: Επιλογή όλων

<?php

//Set count type&#58;
// 1 --> unique, only count each ip one time
// 2 --> All, count hits, ip not a problem

$type = 1;
$IP_FILE = 'ips.txt'; 
$COUNTER_FILE = 'counter.txt'; 

function get_user_ip&#40;&#41;&#123;       
	$ipParts = explode&#40;".", $_SERVER&#91;'REMOTE_ADDR'&#93;&#41;;
	if &#40;$ipParts&#91;0&#93; == "165" && $ipParts&#91;1&#93; == "21"&#41; &#123;    
    	if &#40;getenv&#40;"HTTP_CLIENT_IP"&#41;&#41; &#123;
        	$ip = getenv&#40;"HTTP_CLIENT_IP"&#41;;
        &#125; elseif &#40;getenv&#40;"HTTP_X_FORWARDED_FOR"&#41;&#41; &#123;
            $ip = getenv&#40;"HTTP_X_FORWARDED_FOR"&#41;;
        &#125; elseif &#40;getenv&#40;"REMOTE_ADDR"&#41;&#41; &#123;
            $ip = getenv&#40;"REMOTE_ADDR"&#41;;
        &#125;
    &#125; else &#123;
       return $_SERVER&#91;'REMOTE_ADDR'&#93;;
   	&#125;
   	return $ip;
&#125;
// diko mou add
$language = $HTTP_ACCEPT_LANGUAGE;

// Use this to check that the ip was already entered into the database &#40;no entry is made&#41;
$user_ip = get_user_ip&#40;&#41;;
$match = false;

//Open Ip file, if does not exist creat one, and see if we have a match
if&#40;!is_file&#40;'ips.txt'&#41;&#41;&#123;
	$file = fopen&#40;$IP_FILE,'w+'&#41;;
	fwrite&#40;$file,$user_ip,$language."\n"&#41;; //language diko mou add
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = @fopen&#40;$IP_FILE, "r"&#41;; 
	$ip_list = fread&#40;$file, filesize&#40;$IP_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;
	if&#40;eregi&#40;$user_ip,$ip_list&#41;&#41;&#123;
		$match = true;
	&#125; else &#123;
		$file = fopen&#40;$IP_FILE,'a'&#41;;
		fwrite&#40;$file,$user_ip."\n"&#41;;
		fclose&#40;$file&#41;;		
	&#125;
&#125;		

// Check Type Kind		
if&#40;$type == 2 || &#40;$type == 1 && $match == false&#41;&#41;&#123;
	$file = fopen&#40;$COUNTER_FILE,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;	

	$hitcount++;

	$file = fopen&#40;$COUNTER_FILE,'w+'&#41;;
	fwrite &#40;$file, $hitcount &#41;;
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = fopen&#40;$COUNTER_FILE,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE&#41;&#41;; 
	fclose&#40;$file&#41;;	
&#125;

// It is safe to change these information to your needs
if&#40;$type == 2&#41;&#123;
	echo '-2-total' . $hitcount;
&#125; else &#123;
	echo '-1-Unique episkeptes' . $hitcount;
&#125;

//========diko mou add =======

$type = 4;
$IP_FILE2 = 'Allips.txt'; //Chmod to 777 &#40;and place it outside of public_html&#41;
$COUNTER_FILE2 = 'Allcounter.txt'; //Chmod to 777 &#40;and place it outside of public_html&#41;

$user_ip = get_user_ip&#40;&#41;;
$match = false;

//Open Ip file, if does not exist creat one, and see if we have a match
if&#40;!is_file&#40;'Allips.txt'&#41;&#41;&#123;
	$file = fopen&#40;$IP_FILE2,'w+'&#41;;
	fwrite&#40;$file,$user_ip,$language."\n"&#41;; //language diko mou add
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = @fopen&#40;$IP_FILE2, "r"&#41;; 
	$ip_list = fread&#40;$file, filesize&#40;$IP_FILE2&#41;&#41;; 
	fclose&#40;$file&#41;;
	if&#40;eregi&#40;$user_ip,$ip_list&#41;&#41;&#123;
		$match = true;
	&#125; else &#123;
		$file = fopen&#40;$IP_FILE2,'a'&#41;;
		fwrite&#40;$file,$user_ip."\n"&#41;;
		fclose&#40;$file&#41;;		
	&#125;
&#125;		

// Check Type Kind		
if&#40;$type == 4 || &#40;$type == 3 && $match == false&#41;&#41;&#123;
	$file = fopen&#40;$COUNTER_FILE2,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE2&#41;&#41;; 
	fclose&#40;$file&#41;;	

	$hitcount++;

	$file = fopen&#40;$COUNTER_FILE2,'w+'&#41;;
	fwrite &#40;$file, $hitcount &#41;;
	fclose&#40;$file&#41;;
&#125; else &#123;
	$file = fopen&#40;$COUNTER_FILE2,'r'&#41;;
	$hitcount = fread&#40;$file, filesize&#40;$COUNTER_FILE2&#41;&#41;; 
	fclose&#40;$file&#41;;	
&#125;

// It is safe to change these information to your needs
if&#40;$type == 4&#41;&#123;
	echo '-4-total episketes' . $hitcount;
&#125; else &#123;
	echo '-3-'. $hitcount;
&#125;


?>

επίσης σκέφτομαι αν καταφέρω και το κάνω να λειτουργήσει να προσθέσω από το topic
http://www.freestuff.gr/forums/viewtopic.php?t=13923
ήδη πρόσθεσα το lang :o

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από sibas » 02 Δεκ 2005 14:31

παρεμπιπτόντως το script λειτουργεί (δοκιμαστικά) στην original μορφή του
στην σελίδα simply4all του www.simply4all.net

Άβαταρ μέλους
Rapid-eraser
WebDev Moderator
Δημοσιεύσεις: 6851
Εγγραφή: 05 Απρ 2003 17:50
Τοποθεσία: Πειραιάς
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από Rapid-eraser » 02 Δεκ 2005 14:54

Opos blepeis mesa stov kodika sou kaveis define tnv idia function 2 fores giafto kai sou zitaei va baleis to @ mprosta apo to include ( kai giafto se avagkazei va baleis include kai oxi require mias to opoio 8a ntav to pio sosto gia afti tnv periptosi )

Epidi to source eivai akribos to idio apla allazeis eva var
xtipaei to source part tou include_once

dior8ose lipov ta once kai kavta se include()

Fisika 8a mporouse va givei kati poli pio aplo dior8ovovtas ligo tov kodika oste va doulebei taftoxrova kai ta dio parts.
Cu, Rapid-eraser, Tα αγαθά copies κτώνται.
Love is like oxygen, You get too much you get too high
Not enough and you're gonna die, Love gets you high

sibas
Honorary Member
Δημοσιεύσεις: 1853
Εγγραφή: 21 Φεβ 2003 01:21
Τοποθεσία: Μια εδώ.. Μια εκεί.. Σήμερα είμαι εδώ!!!
Επικοινωνία:

include_once πρόβλημα

Δημοσίευση από sibas » 02 Δεκ 2005 15:18

θα το δοκιμάσω με σκέτο include να δω τι θα γίνει.
Ναι είμαι σίγουρος ότι μπορεί να γίνει πιο απλό,
αλλά χρειάζεται να ξέρεις και λίγη php όχι σαν και μένα. :hammer:

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης