Plik PHP po aktualizacji kodu nie wyświetla się (biała strona)

Witam. Dostałem za zadanie aktualizacje pliku php, a dokłaniej miałem zmienić i dodać linijki kodu strony, która wyświetla siępo złożeniu zamówienia na sklepie internetowym. Gdy to zrobiłem i wrzuciłem wszystko na serwer okazało się, że wyświetla się biała strona, maile nie dochodzą ani do klienta, ani do biura. Jestem w tym zielony, pracuję jako grafik, lecz zostałem poproszony, aby to zrobić. Proszę o jak najszybszą pomoc, ze względu na to, że bez tego sklep normalnie nie funkcjonuje.

Edit : Na serwerze (CPanel) zainstalowany jest phpMyAdmin, MySql, Wersja serwera Apache 2.4.33, Wersja PHP 5.6.36, Wersja oprogramowania Perl 5.16.3.

Wiesz że z taką ilością informacji jakie podałeś, pomóc może tylko wróżka? Przede wszystkim - dlaczego zgodziłeś się zabrać za coś, o czym nie masz zielonego pojęcia?

szklana

1 polubienie

Cofnij zmiany i powiedz, że jesteś grafikiem a nie programistą. Niech zatrudnią do tego programistę.

2 polubienia

Zostałem o to poproszony. Co mam podać?

Przydałby się kod który nie działa.

<?php header('Content-Type: text/html; charset=UTF-8'); if(isset($_POST['email'])) { function clean_string($string) { $bad = array("content-type","bcc:","to:","cc:","href"); return str_replace($bad,"",$string); } $paczk = 12.6; $przel = 13; $grat = 0; // EDIT THE 2 LINES BELOW AS REQUIRED $email_to = "biuro@shn.pl"; $email_subject = "Nowe zamówienie ze sklepu internetowego"; $first_name = $_POST['first_name']; // required $last_name = $_POST['last_name']; // required $street = $_POST['street']; // required $strnmbr = $_POST['strnmbr']; // required $postal = $_POST['postal']; // required $town = $_POST['town']; // required $email_from = $_POST['email']; // required $telephone = $_POST['telephone']; // required $comments = $_POST['comments']; // not required $s1900 = $_POST['s1900']; // required $s2900 = $_POST['s2900']; // required $s3900 = $_POST['s3900']; // required $s4900 = $_POST['s4900']; // required $s1400 = $_POST['s1400']; // required $s2400 = $_POST['s2400']; // required $s3400 = $_POST['s3400']; // required $s4400 = $_POST['s4400']; // required $colsm = $_POST['colsm']; // required $col200 = $_POST['col200']; // required $colbl = $_POST['colbl']; // required $polarm = $_POST['polarm']; // required $kremdzien = $_POST['kremdzien']; // required $kremnoc = $_POST['kremnoc']; // required $serum = $_POST['serum']; // required $oczy = $_POST['oczy']; // required $selectoption = $_POST['selectoption']; $inpost = $_POST['inpost']; $brutto = $_POST['brutto']; // required $sum = $s1900+$s2900+$s3900+$s4900+$s1400+$s2400+$s3400+$s4400+$col200+$colsm+$polarm+$kremdzien+$kremnoc+$serum+$oczy+$colbl; $email_message = "Dane z formularza:\n\n"; $email_message .= "Imię: ".clean_string($first_name)."\n"; $email_message .= "Nazwisko: ".clean_string($last_name)."\n"; $email_message .= "Ulica: ".clean_string($street)."\n"; $email_message .= "Numer domu/mieszkania: ".clean_string($strnmbr)."\n"; $email_message .= "Kod pocztowy: ".clean_string($postal)."\n"; $email_message .= "Miejscowość: ".clean_string($town)."\n"; $email_message .= "Email: ".clean_string($email_from)."\n"; $email_message .= "Numer telefonu: ".clean_string($telephone)."\n"; $email_message .= "Komentarz do zamówienia: ".clean_string($comments)."\n\n"; $email_message .= "Smilk 1 900g: ".clean_string($s1900)."\n"; $email_message .= "Smilk 2 900g: ".clean_string($s2900)."\n"; $email_message .= "Smilk 3 900g: ".clean_string($s3900)."\n"; $email_message .= "Smilk 4 900g: ".clean_string($s4900)."\n\n"; $email_message .= "Smilk 1 400g: ".clean_string($s1400)."\n"; $email_message .= "Smilk 2 400g: ".clean_string($s2400)."\n"; $email_message .= "Smilk 3 400g: ".clean_string($s3400)."\n"; $email_message .= "Smilk 4 400g: ".clean_string($s4400)."\n\n"; $email_message .= "Colostrum 200g: ".clean_string($col200)."\n"; $email_message .= "Colostrum Śmietankowe 200g: ".clean_string($colsm)."\n"; $email_message .= "Colostrum Bez Laktozy 200g: ".clean_string($colbl)."\n\n"; $email_message .= "Polish Army 350g: ".clean_string($polarm)."\n\n"; $email_message .= "Colostrum+ Dzień: ".clean_string($kremdzien)."\n"; $email_message .= "Colostrum+ Noc: ".clean_string($kremnoc)."\n"; $email_message .= "Colostrum+ Serum: ".clean_string($serum)."\n"; $email_message .= "Colostrum+ Pod oczy: ".clean_string($oczy)."\n\n"; $email_message .= "Rodzaj Przesyłki: ".clean_string($selectoption)."\n\n"; case 'przelew': if ($sum>=4) { $email_message .= "Kwota Brutto: ".clean_string(round($brutto,2))." zł\n"; $email_message .= "Przesyłka gratis.\n"; $cal=$brutto+0; $email_message .= "Kwota całkowita: ".clean_string(round($cal,2))." zł\n"; } else { $email_message .= "Kwota Brutto: ".clean_string(round($brutto,2))." zł\n"; $email_message .= "Cena przesyłki: ".clean_string($przel)." zł\n"; $cal=$brutto+$przel; $email_message .= "Kwota całkowita: ".clean_string(round($cal,2))." zł\n"; } break; case 'pobranie': $email_message .= "Kwota Brutto: ".clean_string(round($brutto,2))." zł\n"; $email_message .= "Cena przesyłki: ".clean_string($pobr)." zł\n"; $cal=$brutto+$pobr; $email_message .= "Kwota całkowita: ".clean_string(round($cal,2))." zł\n"; break; case 'gratis': $email_message .= "Kwota Brutto: ".clean_string(round($brutto,2))." zł\n"; $email_message .= "Cena przesyłki: ".clean_string($grat)." zł\n"; $cal=$brutto+$grat; $email_message .= "Kwota całkowita: ".clean_string(round($cal,2))." zł\n"; break; default: echo ""; } // create email headers $headers = 'From: '.$email_from."\r\n". 'Reply-To: '.$email_from."\r\n" . 'X-Mailer: PHP/' . phpversion(); mail($email_to, $email_subject, $email_message, $headers); $subject = "Zamówienie w realizacji - Proszki Mleczne"; $message = "Dzień dobry, \r\n dziękujemy za złożenie zamówienia w naszym sklepie internetowym. \r\n Jeśli zależy Państwu na szybkiej wysyłce, proszę o przesłanie potwierdzenia przelewu na aleksandra@shn.pl \r\n\r\n Pozdrawiam serdecznie! \r\n\r\n P.W. Proszki Mlecznie \r\n ul. Hallera 3 \r\n 89-100 Nakło nad Notecią \r\n www.shn.pl"; $header = 'From: '.$email_to."\r\n". 'Reply-To: '.$email_to."\r\n" . 'X-Mailer: PHP/' . phpversion(); mail ($email_from, $subject, $message, $header); ?> P.W. Proszki Mleczne - Dziękujemy!
  <link rel="stylesheet" href="css/style.css">

  <style type="text/css">

  body,td,th {

font-family: HelveticaNeue-Light, "Helvetica Neue Light", "Helvetica Neue", Helvetica, Arial, sans-serif;

}

  a:link {

text-decoration: none;

}

a:visited {

text-decoration: none;

}

a:hover {

text-decoration: underline;

}

a:active {

text-decoration: none;

}

  </style>

Dziękujemy za złożenie zamówienia!

<?php switch ($selectoption) { case 'przelew': if ($sum>=4) { echo "Cena za zakupy to " . round($brutto,2) . " zł.
"; echo "Przesyłka zostanie nadana po wpłynięciu pieniędzy na nasze konto.
Dane do przelewu bankowego:

P.W. Proszki Mleczne
Gen. Hallera 11
89-100 Nakło nad Notecią
NUMER KONTA: 14 1160 2202 0000 0003 1367 7600
Tytuł przelewu: " . $first_name . " " . $last_name . "

"; } else { $zprzes=$brutto+13; echo "Cena za zakupy to " . round($zprzes,2) . " zł.
"; echo "(Zakupy: " . round($brutto,2) . " zł + przesyłka: 13 zł)

"; echo "Przesyłka zostanie nadana po wpłynięciu pieniędzy na nasze konto.
Dane do przelewu bankowego:

P.W. Proszki Mleczne
Gen. Hallera 11
89-100 Nakło nad Notecią
NUMER KONTA: 14 1160 2202 0000 0003 1367 7600
Tytuł przelewu: " . $first_name . " " . $last_name . "

"; } break; case 'pobranie': $brutto; echo "Cena za wysyłkę to " . round($zprzes,2) . " zł.
"; echo "Zakupy: " . round($brutto,2) . " zł
"; echo "Produkty zostaną wysłane w ciągu jednego dnia roboczego.

"; break; case 'gratis': echo "Zakupy: " . round($brutto,2) . " zł
"; echo "Przesyłka zostanie nadana po wpłynięciu pieniędzy na nasze konto.
Dane do przelewu bankowego:

P.W. Proszki Mleczne
Gen. Hallera 11
89-100 Nakło nad Notecią
NUMER KONTA: 14 1160 2202 0000 0003 1367 7600
Tytuł przelewu: " . $first_name . " " . $last_name . "

"; break; default: echo "Nope"; } ?>

Zapraszamy do ponownych zakupów!

Sformatuj to poprawnie albo wrzuć na jakąś wklejkę. I napisz co dodałeś.

2 polubienia

wrzuć na jakąś wklejkę?

https://pastebin.com/uq9DkBeL

Zmieniłem wcześniejszy “odbiór osobisty” na “przesyłka gratis”
Dodałem nowy produkt “colbl”

W nic nie zmieniałem

Dodam tylko, że kod ostatni raz zmieniany był w 2017 r

A zaprojektowany został chyba w 2002 roku… Szczerze mówiąc to jakaś programistyczna masakra. Biała strona oznacza błąd serwera. Musisz dostać się do logów błędów PHP albo włączyć wyświetlanie ich na stronie. Wtedy dowiesz się co jest nie tak. Ale szczerze mówiąc całość powinna być przepisana na nowo :confused:

1 polubienie

Okej, sprawdzę te błędy i się odezwe

Jak zostaniesz poproszony byś wszedł do palącego się budynku sprawdzić czy serwery jeszcze pracują wejdziesz?

Szczerze to bym się zdziwił gdyby sklep internetowy bez możliwości zamawiania działał poprawnie …

Poza tym:

  1. przed wgraniem zmian na serwer należy zawsze je przetestować
  2. skoro nie działa to od razu powinieneś przywrócić poprzedni stan strony, a nie prosić o szybką pomoc
  3. jak się na czymś nie znasz to się za to nie bierz, a zwłaszcza jeśli to coś zarabia pieniądze, tak naprawdę zlecający może Cię obciążyć w tym momencie stratami jakie poniósł przez Twoje zmiany
    Jak ktoś się topi, a Ty nie umiesz pływać to raczej nie rzucasz się mu na pomoc bo obaj się utopicie…

Co powinieneś zrobić (wersja racjonalna):

  1. przywrócić stronę do działającej wersji
  2. powiedzieć, że się tego nie podejmiesz bo się na tym nie znasz

Mniej racjonalne co powinieneś zrobić:

  1. włączyć wyświetlanie błędów na stronie w konfiguracji php lub .htaccess zależnie gdzie zostały wyłączone; jeśli nie chcesz ich włączać to sprawdzić plik z błędami
  2. naprawić błędy jakie są w kodzie

EDIT:
Na podstawie kodu i tego co napisałeś obstawiam, że nie dodałeś do końca produktu ponieważ musi on zostać też przesłany metodą post z prawdopodobnie formularza. Błąd raczej będzie w linii 130, a produkty trzeba pewnie też dodawać w pozostałych plikach ponieważ tak jak @hindus napisał kod to masakra chyba z końcówki lat 90.

2 polubienia

Moją pierwszą myślą też było to, że wartość jest nullem, ale… to nie powinno niczego wysypać dzięki “inteligencji” PHP. Bo przy dodawaniu null jest traktowany jako 0, a przy str_replace też nie ma problemu. Więcej nie chciało mi się analizować, ale na 99% błąd powie wprost co tam jeszcze nie działa.

To jest tablica więc będziesz miał undefined index.

Ale to tylko notice