(PPH(WIN)Script bringt Rechner auf 100% CPU Auslastung!!!
Mortimer
- webserver
HAtte das jemand schonmal von euch? =/
System:
WinXP (+sp1)
Wampp2:
Apache/2.0.46 (Win32) mod_perl/1.99_10-dev Perl/v5.8.0 PHP/4.3.2 mod_ssl/2.0.46 OpenSSL/0.9.7b
\wampp2\mysql\bin\mysqld Ver 4.0.13-max-debug for Win95/Win98 on i32 0
ICh weiss nämlich auch garnicht woran das liegen könnte.
Ich habe eine ganze Zeit programmiert und als der Fehler auftrat dachte ich "Könnte an meiner letzten ausarbeitung liegen" und holte ein altes backup rein und da kam der selbe fehler =/
Der Fehler ist genau dieser:
Ich starte das Script. Ein php-script welchen ein weiteres PHP-script included.
Alle Seiten meines Projekts laufen gut... bis auf das programmierte Forum... starte ich diese Seite fällt alles den bach runter... das script schmiert ab und ich sehe einen ladebalken mit einem kästchen und nichts gehr mehr....
Ich liess die beiden seiten auch schonmal einzeln laufen... keine fehler... jedoch viel dort auch die gesamte mysql-struktur aus ... es müsste also dort liegen...
MAnchmal ist es bei meinen scripts dass eine whileschleife kein ende findet (ais versehen weil ich wiedermal vergass $counter++; zu setzen). Da schiesst jedoch immer das RAM meines Rechners explodierend in die höhe...
Hilfe wäre nett... Ich habe hier code von 5 Tagen arbeit und ständig geht mein system ins nirvana...
ciao
Schickst du mir die Glaskugel oder muss ich mir selber eine kaufen um zu sehen was du da programmiert hast?
Mein Vorschlag wäre du nimmst mal die betreffenden Scripte, machst nen Backup davon und fängst dann an wie wild einzelne Teile aus den Scripten zu löschen und jedes mal testen ob der Fehler auftritt. Und wenn du so weit bist das du die Scripte bei denen das Problem auftritt auf etwa 20 Zeilen gekürzt hast und sicher bist das der Fehler in diesesn Zeilen liegen muss (oder aber du sicher bist das der Fehler nicht an den einzelnen Scripten liegt sondern ganz sicher am Parser selbst - wenn zum beispiel ein echo "Hallo" genau den gleichen fehler verursacht) dann postest du mal diese betreffenden Zeilen und dann kann ich dir vielleicht auch helfen.
Beliebter Fehler in der Richtung ist übrigens ein gegenseitiges include (Script 1 includet Script 2, das includet wieder Script 1 und so weiter)
Marc
Das habe ich gerade auch angefangen.
Ziemlich doof nur weil er bei jedem mal wenn der fehler auftritt neu gestartet werden muss.
Da merkt man erst mal wie lange so ein pc braucht =/
Wenn es nurnoch 20 Zeilen sind und er mir eine fehlermeldung ausgibt werde ich es auch evtl. noch hinbekommen.
Ich dachte nur das wäre vielleicht ein schonaml bekanntes problem dass man ... Keine Ahnung... ab Includes grösser als 192KB sich PHP aufhängt =)
ciao
Ich dachte nur das wäre vielleicht ein schonaml bekanntes problem dass man ... Keine Ahnung... ab Includes grösser als 192KB sich PHP aufhängt =)
Sicher nicht. Wie gesagt mein erster Tip wäre eine Include Schleife. Allerdings stürzt bei mir dann PHP sang und Klanglos ab und nicht der komplette Rechner.
Marc
Hi, <-- (Anrede)
HAtte das jemand schonmal von euch? =/
Ja. Ich hatte mal eine Art CMS (selbstgeschrieben), der lediglich auf Textdateien basierte, und der lief auf dem Server wunderbar - und dann habe ich das wieder heruntergeladen (damit ich mit dem aktuellen Datenbestand arbeiten kann) und PHP hat sich irgendwie immer wieder aufgehängt. Identischer Code, identische Daten!
E7
Nach dem ausknipsen der einzelnen funktionen kristalisierte sich sehr schnell heraus dass es an einer funkltion haperte...
(BTW: Ich musste fortan nichtmehr den rechner neu starten sondern konnte im taskmanager die APACHE.EXE mit 99% auslastung im prozess beenden.)
Führt dieses Script mal bei euch aus: Was kommt da bei euch?
<?PHP
function Get_Space_After_Xchars($string,$chars) {
#Checkt wann nach 25 Zeichen die erste Leerstelle kommt und bricht dort ab!
#Zum testen können die 2 mit # Versehenden ECHOS freigeschaltet werden.
if (strlen($string)<=$chars) {
return $FORUM_cutten_string=$string;
}else{
$FORUM_counter_action=1; //Genreller ON-OFF Schalter
while($FORUM_counter_action!=0){
if ($string{$FORUM_counter_find_space}==" "){
#echo "HAHAHAAA!... $FORUM_counter_find_space wars!";
$FORUM_counter_action=0;
return $FORUM_cutten_string= substr($string,0,$chars)."...";
}else{
#echo "nö.. $FORUM_counter_find_space war ein ".$FORUM_cut_string{$FORUM_counter_find_space}."<br>";
$FORUM_counter_find_space++;
}
}
}
}
$test['4']="Ich will dieses T-Shirt anziehen";
$FORUM_cutten_string = Get_Space_After_Xchars($test['4'],25);
echo $FORUM_cutten_string;
?>
ich kann mir denken dass es ein dummer fehler ist... so ein dummer... dass ich ihn einfach nicht sehe...
also?
Der erste der es sagt darf sich eine Anrede ausdenken mit der ich ihn dann einen monat anspreche =)
ciao
Holladiewaldfee,
Dat is doch mal was feines ...
Lustiges Buchstabenzählen:
$test['4']="Ich will dieses T-Shirt anziehen";
1234567890123456789012345
Ergebnis: Nach 25 Zeichen kommt keine Leerstelle mehr.
Da Deine Schleife keine Abbruchbedingung nach dem Ende des Strings besitzt, versucht PHP, in der Unendlichkeit des Strings weitere Leerzeichen zu entdecken ... findet aber keine ;-)
Sprich: Du hast den Spezialfall vergessen, daß der String länger als 25 Zeichen ist, nach dem 25. Zeichen aber keine Leerzeichen mehr enthält. Dann rennst Du in eine Endlosschleife -> 100% Auslastung.
Probiere doch mal testhalber "Ich will genau dieses T-Shirt anziehen". Jede Wette, daß es da funktioniert.
Und weil ich's erraten habe darfst Du mich jetzt einen Monat lang "Harry" oder "Waldfee" nennen ;-)
Ciao,
Harry
Holladiewaldfee,
Dat is doch mal was feines ...
nü? Denk ich auch =)
Und weil ich's erraten habe darfst Du mich jetzt einen Monat lang "Harry" oder "Waldfee" nennen ;-)
Vielen Dank Waldfee... =)
ciao
Hi Harry,
Sprich: Du hast den Spezialfall vergessen, daß der String länger als 25 Zeichen ist, nach dem 25. Zeichen aber keine Leerzeichen mehr enthält. Dann rennst Du in eine Endlosschleife -> 100% Auslastung.
Aber in der Standard-Konfiguration nur für 30 Sekunden. Da muss er also was kaputtgefummelt haben, dass der Rechner sich ganz verabschiedet.
Grüße aus Barsinghausen,
Fabian