Помощь с пустой страницей php?

Я управляю фэнтезийной лигой. Моя база данных php / sql предназначена для того, чтобы человек, управляющий командой, делал все через сайт – они могут отказаться от игрока, и игрок автоматически переходит в пул FA и т. Д.

Все прошло отлично, примерно неделю назад. В любое время, когда команда собирается подписать игрока, после нажатия «Зарегистрироваться» они получают пустую страницу PHP. Я понятия не имею, почему – я не вносил никаких изменений ни в какие файлы. Это только начало происходить. Ниже приведен код пустой страницы PHP – может ли кто-нибудь помочь?

<?php $username = "me"; $password = "mypassword"; $database = "mydatabase"; mysql_connect(localhost,$username,$password); @mysql_select_db($database) or die( "Unable to select database"); $Team_Offering = $_POST['Team_Name']; $Fields_Counter = $_POST['counterfields']; $Roster_Slots = $_POST['rosterslots']; $Healthy_Roster_Slots = $_POST['healthyrosterslots']; $Type_Of_Action = $_POST['Action']; $queryt="SELECT * FROM nuke_ibl_team_info WHERE team_name = '$Team_Offering' "; $resultt=mysql_query($queryt); $teamid=mysql_result($resultt,0,"teamid"); $Timestamp = intval(time()); // ADD TEAM TOTAL SALARY FOR THIS YEAR $querysalary="SELECT * FROM nuke_iblplyr WHERE teamname = '$Team_Offering' AND retired = 0 "; $results=mysql_query($querysalary); $num=mysql_numrows($results); $z=0; while($z < $num) { $cy=mysql_result($results,$z,"cy"); $cyy = "cy$cy"; $cy2=mysql_result($results,$z,"$cyy"); $TotalSalary = $TotalSalary + $cy2; $z++; } //ENT TEAM TOTAL SALARY FOR THIS YEAR $k=0; $Salary=0; while ($k < $Fields_Counter) { $Type=$_POST['type'.$k]; $Salary=$_POST['cy'.$k]; $Index=$_POST['index'.$k]; $Check=$_POST['check'.$k]; $queryn="SELECT * FROM nuke_iblplyr WHERE pid = '$Index' "; $resultn=mysql_query($queryn); $playername=mysql_result($resultn,0,"name"); $players_team=mysql_result($resultn,0,"tid"); if ($Check == "on") { if ($Type_Of_Action == "drop") { if ($Roster_Slots < 4 and $TotalSalary > 7000) { echo "You have 12 players and are over $70 mill hard cap. Therefore you can't drop a player! <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link."; }else{ $queryi = "UPDATE nuke_iblplyr SET `ordinal` = '1000', `droptime` = '$Timestamp' WHERE `pid` = '$Index' LIMIT 1;"; $resulti=mysql_query($queryi); $topicid=32; $storytitle=$Team_Offering." make waiver cuts"; $hometext="The ".$Team_Offering." cut ".$playername." to waivers."; // ==== PUT ANNOUNCEMENT INTO DATABASE ON NEWS PAGE $timestamp=date('Ymd H:i:s',time()); $querycat="SELECT * FROM nuke_stories_cat WHERE title = 'Waiver Pool Moves'"; $resultcat=mysql_query($querycat); $WPMoves=mysql_result($resultcat,0,"counter"); $catid=mysql_result($resultcat,0,"catid"); $WPMoves=$WPMoves+1; $querycat2="UPDATE nuke_stories_cat SET counter = $WPMoves WHERE title = 'Waiver Pool Moves'"; $resultcat2=mysql_query($querycat2); $querystor="INSERT INTO nuke_stories (catid,aid,title,time,hometext,topic,informant,counter,alanguage) VALUES ('$catid','Associated Press','$storytitle','$timestamp','$hometext','$topicid','Associated Press','0','english')"; $resultstor=mysql_query($querystor); echo "<html><head><title>Waiver Processing</title> </head> <body> Your waiver moves should now be processed. <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link. </body></html>"; } } else { if ($players_team == $teamid) { $queryi = "UPDATE nuke_iblplyr SET `ordinal` = '800', `teamname` = '$Team_Offering', `tid` = '$teamid' WHERE `pid` = '$Index' LIMIT 1;"; $resulti=mysql_query($queryi); $Roster_Slots++; $topicid=33; $storytitle=$Team_Offering." make waiver additions"; $hometext="The ".$Team_Offering." sign ".$playername." from waivers."; // ==== PUT ANNOUNCEMENT INTO DATABASE ON NEWS PAGE $timestamp=date('Ymd H:i:s',time()); $querycat="SELECT * FROM nuke_stories_cat WHERE title = 'Waiver Pool Moves'"; $resultcat=mysql_query($querycat); $WPMoves=mysql_result($resultcat,0,"counter"); $catid=mysql_result($resultcat,0,"catid"); $WPMoves=$WPMoves+1; $querycat2="UPDATE nuke_stories_cat SET counter = $WPMoves WHERE title = 'Waiver Pool Moves'"; $resultcat2=mysql_query($querycat2); $querystor="INSERT INTO nuke_stories (catid,aid,title,time,hometext,topic,informant,counter,alanguage) VALUES ('$catid','Associated Press','$storytitle','$timestamp','$hometext','$topicid','Associated Press','0','english')"; $resultstor=mysql_query($querystor); echo "<html><head><title>Waiver Processing</title> </head> <body> Your waiver moves should now be processed. <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link. </body></html>"; } else { if ($Healthy_Roster_Slots < 4 and $TotalSalary + $Salary > 7000) { echo "You have 12 or more healthy players and this signing will put you over $70. Therefore you can not make this signing. <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link."; } elseif ($Healthy_Roster_Slots > 3 and $TotalSalary + $Salary > 7000 and $Salary > 103) { echo "You are over the hard cap and therefore can only sign players who are making veteran minimum contract! <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link."; } elseif ($Healthy_Roster_Slots < 1) { echo "You have full roster of 15 players. You can't sign another player at this time! <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link."; } else { $queryi = "UPDATE nuke_iblplyr SET `ordinal` = '800', `bird` = '0', `cy` = '1', `cy1` = '$Salary', `teamname` = '$Team_Offering', `tid` = '$teamid' WHERE `pid` = '$Index' LIMIT 1;"; $resulti=mysql_query($queryi); $Roster_Slots++; $topicid=33; $storytitle=$Team_Offering." make waiver additions"; $hometext="The ".$Team_Offering." sign ".$playername." from waivers."; // ==== PUT ANNOUNCEMENT INTO DATABASE ON NEWS PAGE $timestamp=date('Ymd H:i:s',time()); $querycat="SELECT * FROM nuke_stories_cat WHERE title = 'Waiver Pool Moves'"; $resultcat=mysql_query($querycat); $WPMoves=mysql_result($resultcat,0,"counter"); $catid=mysql_result($resultcat,0,"catid"); $WPMoves=$WPMoves+1; $querycat2="UPDATE nuke_stories_cat SET counter = $WPMoves WHERE title = 'Waiver Pool Moves'"; $resultcat2=mysql_query($querycat2); $querystor="INSERT INTO nuke_stories (catid,aid,title,time,hometext,topic,informant,counter,alanguage) VALUES ('$catid','Associated Press','$storytitle','$timestamp','$hometext','$topicid','Associated Press','0','english')"; $resultstor=mysql_query($querystor); echo "<html><head><title>Waiver Processing</title> </head> <body> Your waiver moves should now be processed. <br>You will be automatically redirected to <a href=\"http://www.chibul.com/iblv2\">the main IBL page</a> in a moment. If you are not redirected, click the link. </body></html>"; } } } } $k++; } ?> 

Solutions Collecting From Web of "Помощь с пустой страницей php?"

Положите следующие права после открытого тега PHP:

 error_reporting(E_ALL); ini_set('display_errors', 'On'); 

Если это не работает, возможно, существует ошибка синтаксического анализа, и вам нужно будет проверить журнал ошибок.

Вам также нужно будет избежать значений, которые вы задаете в запросах. Это может привести к сбою запроса MySQL. Если кто-то ставит " в $ _POST ['Team_Name»], ваш первый запрос может выйти из строя.

Еще одна окончательная возможная проблема: уверены ли вы, что она все равно может подключаться к MySQL?

Возможность найти проблему заключается в комментировании больших частей кода, а затем по частям без разбора сектонов.

Edit: Итак, ваша первая проблема – это строка mysql_connect . Его нужно изменить, обратите внимание на кавычки: mysql_connect('localhost',$username,$password); Кроме того, переменная $result и $queryt написаны неправильно в этой строке и используются в правильной орфографии: $resultt=mysql_query($queryt); Я не проверял остальное, но могут быть и другие ошибки, которые заставят ваш скрипт сломаться. Некоторые из списков ошибок важны для исправления, но не нарушат ваш скрипт.

Escaping: ознакомьтесь со следующей страницей: http://php.net/manual/en/function.mysql-escape-string.php Это в основном не позволяет людям удалять всю вашу базу данных.

Проверьте пример кода на этой странице, чтобы узнать, как подключиться к MySQL и проверить, подключены ли вы.

Другое предложение: вы уверены, что ни один из ваших запросов не работает? Вероятно, вы хотите проверить, является ли результат запроса ложным до продолжения, например:

 if ($resultcat2 === false) { trigger_error('query failed ' . $sql, E_USER_ERROR); echo 'Sorry, there was a problem processing your request. Please try again later.'; exit; } 

Поверните отчет об ошибках для PHP в файле php.ini и проверьте, не сообщаются ли какие-либо ошибки или предупреждения. Также попробуйте удалить конечные пробелы в конце файла до последнего?>, Это в прошлом вызывало проблемы.

Добавлены комментарии к некоторым из приведенных выше ответов. Пожалуйста, постарайтесь как можно глубже покончить с собой – я очень к этому не знаком. Я не могу понять, почему он вдруг перестанет работать, хотя, когда я не внес никаких изменений в код.

Если вы не внесли никаких изменений в какие-либо файлы и просто «сломались», это означало бы, что ваш веб-хост прошел через изменение конфигурации, ваша база данных каким-то образом была закрыта или что кто-то еще что-то изменил.

Чтобы помочь выявить преступника, после каждого из этих

 if{ else{ while{ 

или / и после каждых нескольких операторов (завершение операторов заканчивается точкой с запятой;) добавьте это в следующую строку

 print "<br> made it to this label: some_unique_label_name_here"; 

Где вы должны заменять этикетку каждый раз, чтобы помочь вам проследить код. Это будет ваш первый шаг в отладке сценария, чтобы выяснить, насколько далеко продвигается исполнение кода.

Не пропуская свой код слишком подробно, я предлагаю вам искать любые разделы, которые могут зацикливаться в течение длительного времени, без возврата

После включения отчета об ошибках обязательно добавьте в инструкции else, которые соответствуют всем вашим операторам if, чтобы вы могли определить, запускаются ли эти инструкции или нет. Бросьте некоторые эхо.

Кроме того, чтобы уточнить – у меня есть, вероятно, три десятка PHP-файлов на сайте – это ТОЛЬКО, который перестает работать.

В стороне, вы должны изменить каждую переменную из get или post, например:

 $Team_Offering = $_POST['Team_Name']; 

в

 $Team_Offering = mysql_real_escape_string($_POST['Team_Name']); 

прежде чем использовать его в запросе mysql, в противном случае вы можете прибегать к атакам SQL-инъекций.

Вот где я получил … все, что ниже строки печати, не появится, если я поставлю линию печати ниже нее.

 $k=0; $Salary=0; print "<br> made it to this label: some_unique_label_name_here"; while ($k < $Fields_Counter) { $Type=$_POST['type'.$k]; $Salary=$_POST['cy'.$k]; $Index=$_POST['index'.$k]; $Check=$_POST['check'.$k]; $queryn="SELECT * FROM nuke_iblplyr WHERE pid = '$Index' "; $resultn=mysql_query($queryn); $playername=mysql_result($resultn,0,"name"); $players_team=mysql_result($resultn,0,"tid"); 

Так что обновление … ничего. лол

Если вы просмотрите этот код:

 $k=0; 

$ Зарплата = 0;

Распечатать "
сделал это на этом ярлыке: some_unique_label_name_here ";

while ($ k <$ Fields_Counter)

{

$ Тип = $ _ POST [ 'типа' $ к.];

$ Зарплата = $ _ POST [ 'CY' $ к.];

Индекс $ = $ _ POST [ 'индекс' $ к.];

$ Check = $ _ POST [ 'проверить' $ к.];

$ queryn = "SELECT * FROM nuke_iblplyr WHERE pid = '$ Index'"; $ Resultn = mysql_query ($ queryn);

$ PlayerName = mysql_result ($ resultn, 0, "имя");

$ Players_team = mysql_result ($ resultn, 0, "TID");

Если я поставлю инструкцию печати ниже, страница будет пустой, и она не появится. Если заявление на печать до этого показывается, заявление появляется, но на странице не производится никаких действий. Конечным результатом является то, что при запуске этой страницы игрок, выбранный на предыдущей странице, должен быть удален из Free Agents, добавлен в команду пользователя, и рассказ должен быть опубликован на первой странице, объявив об этом. Очевидно, никто из них здесь не происходит.