![]() |
Misteriöse PHP Malfunction
Hi,
ich habe mir ein kleines php script gebastelt (ein namegenerator). wenn ich den lokal bei mir teste, funzt alles einwandfrei. wenn ich das script jedoch auf meinen server hochlade, bricht die ausgabe des scriptes einfach ab. keine fehlermeldung, kein garnichts, nur die generierten namenw erden nicht mehr ausgegeben! woran könnte das liegen? ich vermutete schon dass die rechenzeit überschritten wird, aber das wiederum würde eine fehlermeldung erzeugen! ich habe aber keine... *MFG* |
Re: Misteriöse PHP Malfunction
Zeig mal das Skript. Vielleicht sind auf deinem Server nicht alle PHP Module freigeschaltet... Kannst du aber überprüfen mit phpinfo().
|
Re: Misteriöse PHP Malfunction
edit: ein modul ist eher nicht verantwortlich, da hab ich lokal weniger als auf dem richtigen server!
ok: hier mit html
Code:
und hier ohne:
<?php $action = $_GET["action"];
$quant = $_GET["quant"]; $factor = $_GET["factor"]; $who = $_GET["who"]; if($action == "generate") { $dateiname = "counter.txt"; $datei = fopen($dateiname,"r"); $zahl = fgets($datei,100); fclose($datei); $zahl = $zahl + $quant; $datei = fopen($dateiname,"w"); fwrite($datei, $zahl); fclose($datei); } function ConvertToName($string) { for($i = 1; $i < strlen($string); $i++) { $string[$i] = strtolower($string[$i]); } return $string; } function FuzzyLogic($seed) { if(($seed <=99) AND ($seed >= 50)) { return $seed - rand(1,10); } if(($seed >= 0) AND ($seed <= 49)) { return $seed + rand(1,10); } if(($seed >=100)) { return $seed + rand(-20,20); } } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Random Name Generator</title> <style type="text/css"> <!-- .style1 { color: #FFFFFF; font-weight: bold; } body,td,th { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 10px; } .style2 {color: #CCCCCC} a:link { color: #666666; text-decoration: none; } a:visited { text-decoration: none; color: #999999; } a:hover { text-decoration: underline; color: #000000; } a:active { text-decoration: none; } .style3 {font-size: 12px} --> </style> </head> <body> <table width="500" border="0" cellspacing="0" cellpadding="5"> <tr> <td bgcolor="#000000" class="style1">[img]stern.gif[/img] Random Name Generator </td> </tr> <tr> <td style="border: solid black 1px">Use this generator to create random names for your games, books, fake ids, movies and whatever you need it for! <form name="form1" method="GET" action="index.php"> Create <input name="who" type="radio" value="male"> Male <input name="who" type="radio" value="female"> Female <input name="who" type="radio" value="both" checked> Both names How Many? <select name="quant" id="quant"> <option value="1">1</option> <option value="2">2</option> <option value="3">3</option> <option value="4">4</option> <option value="5" selected>5</option> <option value="10">10</option> <option value="20">20</option> <option value="30">30</option> <option value="50">50</option> <option value="100">100</option> </select> Obscurity factor: <input name="factor" type="text" id="factor" value="20" size="6" maxlength="2"> (1: Common, 99: totally obscure) <input name="action" type="hidden" id="action" value="generate"> <input type="submit" name="Submit" value="Generate random Name(s)"> </form> </td> </tr> </table> <? if($action == "generate") { ?><table width="500" border="0" cellspacing="0" cellpadding="5"> <tr> <td bgcolor="#000000" class="style1">[img]stern.gif[/img] Results</td> </tr> <tr> <td align="left" style="border: solid black 1px"><span class="style3"><? $nachnamen = file("lastnames.txt"); $vornamen = file("malefirstnames.txt"); $vornamen_w = file("femalefirstnames.txt"); for ($i = 0; $i < count($nachnamen); $i++) { $nachnamen[$i] = trim($nachnamen[$i]); } for ($i = 0; $i < count($vornamen); $i++) { $vornamen[$i] = trim($vornamen[$i]); } for ($i = 0; $i < $quant; $i++) { if($who == "male") { $list = $vornamen; $rand_vorname = rand(0,12); } if($who == "female") { $list = $vornamen_w; $rand_vorname = rand(0,43); } if($who == "both") { $rand = rand(1,2); if($rand == 1) { $list = $vornamen; $rand_vorname = rand(0,12); } if($rand == 2) { $list = $vornamen_w; $rand_vorname = rand(0,43); } }; $rand_nachname = rand(0,897); $rand_nachname = $rand_nachname * FuzzyLogic($factor); $str_nachname = $nachnamen[$rand_nachname]; $str_nachname = explode("\t", $str_nachname); $str_nachname = ($str_nachname[0]); $str_nachname = ConvertToName($str_nachname); $rand_vorname = $rand_vorname * FuzzyLogic($factor); $str_vorname = $list[$rand_vorname]; $str_vorname = explode("\t", $str_vorname); $str_vorname = ($str_vorname[0]); $str_vorname = ConvertToName($str_vorname); $name = $str_vorname." ".$str_nachname; echo $name." \n"; } ?></span></td> </tr> </table> <? } ?> <span class="style2"> This service is still in [b]BETA[/b] phase! Report bugs to [email="bugs@namegenerator.acira.net"]bugs@namegenerator.acira.net[/email] This service is powered by [url="http://www.acira.net"][b]acira.net[/b][/url] which is a member of the [url="http://www.sqs-entertainment.de"][b]SQS Group[/b][/url].</span> <span class="style2">Random names served: <? $dateiname = "counter.txt"; $datei = fopen($dateiname,"r"); $zeile = fgets($datei,100); echo "[b]".number_format($zeile)."[/b]"; fclose($datei); ?> </span> </body> </html>
Code:
<?php $action = $_GET["action"];
$quant = $_GET["quant"]; $factor = $_GET["factor"]; $who = $_GET["who"]; if($action == "generate") { $dateiname = "counter.txt"; $datei = fopen($dateiname,"r"); $zahl = fgets($datei,100); fclose($datei); $zahl = $zahl + $quant; $datei = fopen($dateiname,"w"); fwrite($datei, $zahl); fclose($datei); } function ConvertToName($string) { for($i = 1; $i < strlen($string); $i++) { $string[$i] = strtolower($string[$i]); } return $string; } function FuzzyLogic($seed) { if(($seed <=99) AND ($seed >= 50)) { return $seed - rand(1,10); } if(($seed >= 0) AND ($seed <= 49)) { return $seed + rand(1,10); } if(($seed >=100)) { return $seed + rand(-20,20); } } ?> ... <? $nachnamen = file("lastnames.txt"); $vornamen = file("malefirstnames.txt"); $vornamen_w = file("femalefirstnames.txt"); for ($i = 0; $i < count($nachnamen); $i++) { $nachnamen[$i] = trim($nachnamen[$i]); } for ($i = 0; $i < count($vornamen); $i++) { $vornamen[$i] = trim($vornamen[$i]); } for ($i = 0; $i < $quant; $i++) { if($who == "male") { $list = $vornamen; $rand_vorname = rand(0,12); } if($who == "female") { $list = $vornamen_w; $rand_vorname = rand(0,43); } if($who == "both") { $rand = rand(1,2); if($rand == 1) { $list = $vornamen; $rand_vorname = rand(0,12); } if($rand == 2) { $list = $vornamen_w; $rand_vorname = rand(0,43); } }; $rand_nachname = rand(0,897); $rand_nachname = $rand_nachname * FuzzyLogic($factor); $str_nachname = $nachnamen[$rand_nachname]; $str_nachname = explode("\t", $str_nachname); $str_nachname = ($str_nachname[0]); $str_nachname = ConvertToName($str_nachname); $rand_vorname = $rand_vorname * FuzzyLogic($factor); $str_vorname = $list[$rand_vorname]; $str_vorname = explode("\t", $str_vorname); $str_vorname = ($str_vorname[0]); $str_vorname = ConvertToName($str_vorname); $name = $str_vorname." ".$str_nachname; echo $name." \n"; } ?> <? $dateiname = "counter.txt"; $datei = fopen($dateiname,"r"); $zeile = fgets($datei,100); echo "[b]".number_format($zeile)."[/b]"; fclose($datei); ?> |
Re: Misteriöse PHP Malfunction
Liegt es vielleicht an der rand-Funktion. Da gabs Änderungen ab der PHP Version 3.0.7.
![]() |
Re: Misteriöse PHP Malfunction
daran kanns auch nicht liegen. ich hab 4.3.3, der webserver nutzt 4.2.3
|
Re: Misteriöse PHP Malfunction
Dann weiss ich auch nicht mehr weiter. Höchstens noch Groß-Klein Schreibung bei den Dateinamen (unterschiedliches Verhalten bei Windows und Linux)... Sind alle txt-Dateien auf dem Server vorhanden?
Sorry, mehr fällt mir dazu nicht mehr ein. Bin nicht der PHP-Guru und hab nur rudimentäre Kenntnisse´. :| |
Re: Misteriöse PHP Malfunction
ich bin auch ziemlich ratlos :( die datein sind hochgeladen, dateinamen sind alle kleingeschrieben. aber auch hier müsste ein datei - nicht - gefunden - fehler kommen... es ist zum :kotz: en...
|
Re: Misteriöse PHP Malfunction
Hi!
Schreib mal ein error_reporting(E_ALL); als erste PHP-Zeile. Dann werden dir alle Fehlermeldungen und Warnungen ausgegeben. Vielleicht ist der Webserver so eingestellt, dass gar keine Fehler ausgegeben werden. Dann bleibt die Seite bei einem Fehler weiß. Mamphil |
Re: Misteriöse PHP Malfunction
Zitat:
|
Re: Misteriöse PHP Malfunction
Wenn es ein Unix Server ist, würd ich mal CHMOD für alle Dateien auf 777 setzen und nochmal testen...
|
Re: Misteriöse PHP Malfunction
Zitat:
|
Re: Misteriöse PHP Malfunction
noch mal push * :( *
|
Re: Misteriöse PHP Malfunction
Entferne doch mal einzelne Teile des Scripts und schränke so den Fehler ein, damit wir nicht mehr die Nadel im Heuhaufen suchen müssen ... :zwinker:
|
Superglobals
|
Re: Misteriöse PHP Malfunction
Zitat:
Zitat:
|
Re: Misteriöse PHP Malfunction
Zitat:
|
Re: Misteriöse PHP Malfunction
Hi Meflin,
ich habe öfters die obskursten Probleme wegen unterschiedlichen PHP-Versionen/Konfigurationen auf den verschiedenen Servern. Wenns nicht hilft, auch egal... mfg Strophi |
Re: Misteriöse PHP Malfunction
Hab gesehen das Du an einigen Stellen im Script die kurze Tag-Version <? statt <?php verwendest, nicht das dies das Problem ist...
Andererseits kann der Safe Mode aktiv sein, die Datei muss also Deiner UserID gehören wenn Du auf diese zugreifst. Ebenso könnten durch die Einstellung disable_functions in der php.ini bestimmte Funktionen deaktivert worden sein, z.b. für den Dateizugriff. Gruß, Marcel |
Re: Misteriöse PHP Malfunction
Ich kenn mich zwar überhaupt nicht aus mit php aber du hast ja gesagt des keine Fehlermeldung kommt ==> es passiert auch vieleicht gar keiner. Meine Überlegung ist nähmlich die des beim generieren oder des die Eingabe oder Ausgabe nicht stimmt. (z.b. des du des fertige Produkt in einer Variablen hast aber vergisst auszugeben (Ist mir schon passiert :oops: )) wenn des sich auch nichts bringt dann fang neu an ist manchmal des beste!
|
Re: Misteriöse PHP Malfunction
Zitat:
Zitat:
|
Re: Misteriöse PHP Malfunction
ok, inzwischen kann ichs konkretisieren. der abbruch erfolgt nur aufgrund des opens der lastnames.txt, die ist 1,25 MB groß, scheinbar zu groß... muss ich wohl irgendwie ein workaround entwickeln :(
|
Re: Misteriöse PHP Malfunction
Zitat:
Zitat:
|
Re: Misteriöse PHP Malfunction
Zitat:
|
Re: Misteriöse PHP Malfunction
Zitat:
|
Re: Misteriöse PHP Malfunction
so, das ganze liegt inzwischen auf einem anderen server und funzt dort auch einwandfrei. muss wohl die limitierung gewesen sein...
|
Re: Misteriöse PHP Malfunction
lass mal all deine variablen ( die, die das skript bekommt ) ausgeben
wenns sie leer sind, ersetze $_GET mit $_REQUEST |
Re: Misteriöse PHP Malfunction
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz