Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
kalender spinnt [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr
brauche Webseite ideal für Vereine und Firmen
- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
kalender spinnt


 
BugBite
15-08-2006, 14:38 
 
hallo,

hab da nen Kalender: www.alternativeplans.de/office/dyn.php
eigentlich funktioniert da alles bis auf die kleinigkeit, dass im August,
unabhängig vom momentanen datum, tag 31 verschluckt wird -.-

also ich bekomme meine anzahl der maximalen tage über:

if(!isset($month))
{
$total_days =date('t');
}
else
{
$total_days =date('t',$mktime);
}

pro kalendertag schleif ich ein $d++ mit, also von 1 bis 30 oder 31

dann kommt jedesmal ein

if(isset($d))
{
if($d<$total_days)
{$d++;}
else
{unset($d);unset($current_day);}
}
und je nach dem wird eben der kalender tag geschrieben oder nich..
ABER: das alles funktionier in jedem monat, außer dem august -.-

irgendwelche ideen :confused: :confused:

 
BugBite
15-08-2006, 14:41 
 
ach lol jetz spinnt mein provider... -.-
ich /push dann nacher mal

 
BugBite
15-08-2006, 14:53 
 
boing es lag nur an meinem wampp aufm webserver gehts
lololol

 
BugBite
15-08-2006, 19:17 
 
hallo

ich hab da so ne funktion, die mir ne tagesübersicht liefert
siehe: http://www.alternativeplans.de/office

wenn ich die funktion in der wochenansicht aufrufe, also mit:

for($i=1;$i<=7;$i++){ showday($i); }

sollten eben 7 solcher ansichten nebeneinander dastehn...

klappt soweit auf meinem wampp super,ABER auf meinem webspace
nicht -.-
da bleibt er nur irgendwie hängen :confused:

da es bei mir aber nich aufm webspace geht, tipp ich mal auf n
performance problem, oder hab ich vielleicht nur doof programmiert? =]

 
BugBite
15-08-2006, 19:37 
 
hallo

ich hab da so ne funktion, die mir ne tagesübersicht liefert
siehe: http://www.alternativeplans.de/office

wenn ich die funktion in der wochenansicht aufrufe, also mit:


for($i=1;$i<=7;$i++){ showday($i); }



sollten eben 7 solcher ansichten nebeneinander dastehn...

klappt soweit auf meinem wampp super,ABER auf meinem webspace
nicht -.-
da bleibt er nur irgendwie hängen

da es bei mir aber nich aufm webspace geht, tipp ich mal auf n
performance problem, oder hab ich vielleicht nur doof programmiert? =]

 
TobiaZ
15-08-2006, 19:39 
 
miss doch mal die zeit. wobei ich eher glaube, dass du irgendwo mist programmiert hast.

betreib mal debugging.

 
BugBite
15-08-2006, 19:40 
 
meinste auf meinem wampp? mit microtime()?

 
TobiaZ
15-08-2006, 19:42 
 
in erster linie wäre live interessanter. aber beim laden der tagesansicht konnte ich keine großen zeiten feststellen.

also mal debuggen, wo es hängt. vermutlich beim zweiten durchlauf.

setz die schleife mal auf einen durchlauf. klappts?
setzt die schleife mal auf zwei durchläufe, klappt nicht mehr.

jetzt solltest du in der lage sein, deinen fehler zu finden.

 
TobiaZ
15-08-2006, 19:45 
 
gewöhn dir das crossposting bitte gleich wieder ab. :teach:

 
BugBite
15-08-2006, 19:55 
 
sry wegen dem xpost, aber ich dachte der thread geht unter ;)

nuja ich hab $i<=1 gestellt, und damit isses ja der gleiche aufruf, wie
der auf der startseite...
und immer noch der gleiche fehler... wampp meckert auch nich...
es is ja keine endlosschleife, aber woran kanns noch liegen, dass er
endlos lädt und dann ma abbricht?

hmm wenn ich die schleife aufs aktuelle datum stell also $i=15 gehts...
mal weiter rummanschen...

 
TobiaZ
15-08-2006, 19:59 
 
Wie siehst denn jetzt aus mit dem Debugging?

Du hast den Code vor deiner Nase. Also arbeite damit. Ich kann nur raten. Und das ist wenig erfolgversprechend.

 
BugBite
15-08-2006, 20:09 
 
also sobald ich $i=1 setz, spinnt er... 0 geht auch nur die 1 mag nich
und der einzige codeabschnitt der mit $i zu tun hat ist:
function showday($tag){..}
showday($i)

$sql=mysql_query("SELECT * FROM termine WHERE tag='".$tag."'")
or die(mysql_error());


while($row=mysql_fetch_assoc($sql))
{

$zeit_anfang_raw = explode(":",$row['zeit']);
$i= $zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$k= $zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$zeit_anfang[$i]=$zeit_anfang_raw[0]*60+$zeit_anfang_raw[1];
$inhalt[$i]['name']=$row['name'];
$inhalt[$i]['zeit']=$row['zeit'];
$inhalt[$i]['zeitende']=$row['zeitende'];

$zeit_ende_raw = explode(":",$row['zeitende']);
$i= $zeit_ende_raw[0]*60;
$zeit_ende[$k][]=$zeit_ende_raw[0]*60+$zeit_ende_raw[1];

}

 
TobiaZ
15-08-2006, 20:14 
 
was ist das?

 
3DMax
16-08-2006, 02:28 
 
BugBite
ach lol jetz spinnt mein provider... -.-
...
boing es lag nur an meinem wampp aufm webserver gehts
lololol

LOL
ganz nebenbei: bist du eine zangenbeburt?

 
BugBite
16-08-2006, 13:09 
 
1. was ist denn ne zangengeburt?
2. wie wärs mit einer warmen tasse shut the fuck up?

 
jahlives
16-08-2006, 13:18 
 
hmm wenn ich die schleife aufs aktuelle datum stell also $i=15 gehts...
mal weiter rummanschen...

Was ist denn der Wertebereich den $i= $zeit_ende_raw[0]*60; im Maximum ergibt ? Nicht zufällig grösser 7 und damit ein Grund die Schleife abzubrechen ? error_reporting(E_ALL); am Anfang deines Scripts gesetzt ?

Gruss

tobi

 
BugBite
16-08-2006, 13:34 
 
sry dass ich die variablen so blöd gesetzt hab =)
also
aufruf mit: showday($i) für function showday ($tag){..}
$i ist ja dann in der funktion $tag oder?

naja E_ALL schön und gut aber mein problem is, dass das script
einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt UND das nur aufm webserver

edit3: ich habs grad wieder auf 1 gestellt
kann man sich auf http://alternativeplans.de/office anschaun

 
uwe59
16-08-2006, 13:39 
 
Original geschrieben von BugBite
aufruf mit: show_day($i) für function showday ($tag){..}
$i ist ja dann in der funktion $tag oder?
Ähm, mit einem simplen echo in der Funktion könntest du das selber herausfinden. Das sind Grundlagen, die man sich auch gerne mal alleine erabeiten darf.
Original geschrieben von BugBite
naja E_ALL schön und gut aber mein problem is, dass das script
einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt
Dann läuft das Script einfach zu lange. Warum das so ist, keine Ahnung, da man das komplette Script nicht kennt. Eine optimierung wäre wohl angebracht.

Gruß
Uwe

 
jahlives
16-08-2006, 13:41 
 
...einfach im ladezustandhängen bleibt und dann irgendwann den fehler
"...exceeded 30 seconds..." an einer beliebigen stelle im script ausspuckt

Du weisst aber schon, dass das PHP nicht zum Spass macht. In 99,99999% der Fälle liegt ein Programmierfehler vor ;)
Du übergibst also das $i, welches aus der Fkt showday() kommt an show_day() ?
Hat das $i denn immer die erwarteten Werte ? Ggf direkt nach der Fkt Definition von show_day() einen var_dump($i) machen. Sind es immer die von Dir erwarteten Werte ?

Gruss

tobi

 
BugBite
16-08-2006, 13:45 
 
nein =]

das $i kommt aus der for schleife :D
und is in der funktion die nich geht $tag =)

wieso sollte aber n programmierfehler vorliegen wenns auf meinem
wampp geht? versteh ich nich

und es funktioniert nur $i=1 nich 0 und alle anderen werte gehen

edit: oops ja die fkt is showday() nich show_day()

 
uwe59
16-08-2006, 13:48 
 
Nur mal so als Tipp:

Richtig debuggen
1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

Gruß
Uwe

 
BugBite
16-08-2006, 14:00 
 
schonmal danke für die tipps uwe, aber sei dir sicher das ich jegliche
debug möglichkeiten ausgeschöpft hätte...

1. die übergebene variable aus der for schleife, also $tag,
wird nur ein einziges mal verwendet nämlich in dem, in der fkt liegenden query. die variable stimmt auch...
2. mit jedem wert außer 1 funktioniert das script und baut mir die tabelle, deren aufbau durch eine statische for schleife geschieht, in millisekunden auf
3. das skript funktioniert auf meinem server bestens

könnte es also sein das der webserver schuld is ? o.O

danke für eure geduld :rolleyes:

 
uwe59
16-08-2006, 14:08 
 
Wie lange läuft das Script denn bei dir? Auch über 30 Sekunden? Sind beide Datenbanken mit identisch vielen Datensätzen bestückt?

Gruß
Uwe

 
BugBite
16-08-2006, 14:12 
 
also bei mir daheim wird das script in 0.x sekunden aufgebaut
aufm webserver läufts ewig, hab nur mal auf nem screenshot
von nem freund diese 30 seconds fehlermeldung gelesen...
auf beiden datenbanken sind nich mehr als 20 termine gespeichert

 
BugBite
16-08-2006, 14:19 
 
aaah danke uwe x)
in der db war ein fehlerhafter eintrag, eben genau am ersten
und zwar weil der eintrag von einer frühreren version geschrieben wurde...
naja hilft das ganze debugging nich wenn man den wald vor lauter
bäumen nich sieht ;]

und auch danke an die leute die sich mit newbie fragen abgeben!

 
uwe59
16-08-2006, 14:20 
 
Da wird dir nichts anderes übrig bleiben, als massenhaft echo's einzubauen und anhand der Ausgabe zu versuchen, das Problem einzukreisen. Beachte, dass du flush einbauen musst, um tatsächlich eine Ausgabe in diesem Fall zu bekommen. Da flush aber manchmal Probleme macht, solltest du im Falle eines Falles die zahlreichen Beispiele in der Doku beachten.

Gruß
Uwe

 
TobiaZ
16-08-2006, 16:36 
 
naja hilft das ganze debugging nich wenn man den wald vor lauter doch eigentlich schon. :rolleyes:

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 18:14 Uhr.