Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

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

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

Απάντηση
bobolak
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2014 10:27

Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

Δημοσίευση από bobolak » 21 Μάιος 2014 10:33

Kalimera sas

Douleuw panw se mia web efarmogh pou san kurio stoxo exei na apothukeuei melh mia etairias se mia bash,analoga ta posta kai ergasies na ta xrewnei me kapoia poso pou prepei na plhrwnoun.

Otan mpei kainourgios mhnas loipon tha prepei na ginote kapoies energeies stin bash kai kapoioi elegxoi gia na eleksoume an xrwstane kai an einai energoi

H efarmogh einai se .php kai uparxei sundesh me tin bash.
Tha ithela na mou protinete tropous wste na ekteleite kapoios kwdikas stin prwth mera kathe mhna.kai pws mporei na ginei auto kathws logika tha prepei kapois na anoiksei tin efarmogh prwta.

Euxaristw polu ek twn proterwn,
Filika,
Spiros

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

Δημοσίευση από burnmind » 21 Μάιος 2014 13:26

1) Greeklish;! :P

2) Αν ο server σου είναι linux-based, τότε λογικά θα σε βολέψουν τα crons.

bobolak
Δημοσιεύσεις: 4
Εγγραφή: 21 Μάιος 2014 10:27

Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

Δημοσίευση από bobolak » 21 Μάιος 2014 14:54

1) Ζητω συγνωμη για τα greeklish. Πρωτο ποστ δεν γνωριζα

2) Σε linux server δουλευουμε απλα δεν εχω καθολου ασχολιθει προηγουμενα με crons.ΑΝ μπορεις να βοηθισεις λιγο πιο αναλυτικα ... :)


Και οποιαδηποτε αλλη λυση ειναι ευπροσδεκτη!!

Άβαταρ μέλους
burnmind
Script Master
Δημοσιεύσεις: 954
Εγγραφή: 26 Σεπ 2009 02:14
Τοποθεσία: UK
Επικοινωνία:

Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

Δημοσίευση από burnmind » 21 Μάιος 2014 15:09

Η λογική των crons είναι πολύ απλή: Δημιουργείς ένα script που θες να κάνει μια συγκεκριμένη δουλειά (πχ να απενεργοποιεί χρήστες που δεν έχουν πληρώσει) κι έπειτα δημιουργείς ένα cron job που του ορίζεις κάτι του στυλ "τρέξε αυτό το script κάθε πρώτη του μηνός στη μία το βράδυ".

Αν πχ χρησιμοποιείς cpanel, υπάρχει η επιλογή "Cron jobs" στο οποίο μπορείς να ορίσεις κάθε πότε θα τρέχει το cron και ποια εντολή να τρέξει (όπως θα την έτρεχες από το command line του server σου).

Άβαταρ μέλους
DataHellas
Δημοσιεύσεις: 39
Εγγραφή: 24 Μάιος 2005 08:57
Τοποθεσία: Αθήνα
Επικοινωνία:

Ektelesh entolwn otan mpei o mhnas se mia web efarmogh

Δημοσίευση από DataHellas » 05 Ιουν 2014 23:14

Τα cron jobs είναι η καλύτερη λύση. Ως εναλλακτική λύση για όσους δεν έχουν κάτι τέτοιο στη διάθεσή τους ή δεν θέλουν το script τους να εξαρτάται από το server μπορούν να φτιάξουν "ψεύδο-cron" που "πυροδοτούνται" από τους χρήστες που επισκέπτονται το site. Η χρονική ακρίβεια εκτέλεσης δεν θα είναι μεγάλη, ειδικά αν το site δεν έχει σοβαρή επισκεψιμότητα, αλλά θα δουλέψει ικανοποιητικά στις περισσότερες περιπτώσεις. Στην δικιά σου περίπτωση θα δουλέψει άψογα αφού θες να τρέχει μόνο μία φορά το μήνα.

Μία λοιπόν πολύ απλή λύση στην περίπτωσή σου είναι η παρακάτω.

Ελέγχεις αν έχουμε πρώτη του μηνός:

if (date('d') == 1) {
//do something
}

Επειδή θέλουμε ο κώδικας να εκτελείται μόνο μία φορά και όχι συνέχεια σε κάθε κλικ την πρώτη του μηνός, φτιάχνουμε ένα κενό αρχείο και ελέγχουμε την ημερομηνία τροποποίησής του. Αν αυτή είναι πάνω από μία μέρα (στο πρώτο κλικ θα είναι ηλικίας ενός μηνός) τότε τρέχουμε τον κώδικά μας αλλιώς όχι. Έστω αυτό το αρχείο lastrun.txt

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

$checkfile = '/path/to/lastrun.txt';
$run = false;
if (date('d') == 1) {
	if (file_exists($checkfile)) {
    	if (time() - filemtime($checkfile)) > 100000) {
    		$run = true; 
    		touch($checkfile);
    	}
	} else {
		$fp = fopen($checkfile,'w');
		fwrite($fp,'blah blah');
		fclose($fp);
		$run = true;
	}
}

if ($run) {
	//βάλε τον κώδικά σου εδώ που θες να εκτελείται μία φορά κάθε πρώτη του μηνός
}

Απάντηση

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

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

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