[ pakito @ 14.10.2020. 12:03 ] @
Gotovo jednu deceniju kao programer sluhista razvijam aplikaciju pod PHP 5.* i shvatam da ću sa njom zaglaviti na otpadu ako ne preradim kod na PHP 7.*
Instalirao sam XAMPP čiji je Control Panel 3.24, a PHP verzija 7.4.10
Uspeo sam da preradim oko 90% koda, ali ono što me buni jeste suštinsko pitanje koliko je XAMPP stvarno verodostojna zamena za server na kome je aplikacija?
Pitam zbog toga što mi XAMPP ne učitava fajl u koji sam stavio sve one JS funkcije koje su mi potrebne u velikom broju posebnih php fajlova!

Moje je pitanje, dakle, koliko je XAMPP u ovom konkrentom slučaju stvarna simulacija servera, i da li me čekaju neka iznenađenja kad budem preneo prepravljeni kod na pravi server?

[ Zlatni_bg @ 14.10.2020. 12:16 ] @
Pa isti su servisi/serveri, zavisi ti od konfiguracije najvise. Apache, PHP i MySQL ti je isti svuda, sam biras verzije i podesavanja na dev i prod okruzenju. Probaj Laragon, meni je 50x bolji.
[ Tpojka @ 14.10.2020. 12:20 ] @
Citat:
pakito
Moje je pitanje, dakle, koliko je XAMPP u ovom konkrentom slučaju stvarna simulacija servera, i da li me čekaju neka iznenađenja kad budem preneo prepravljeni kod na pravi server?


Ovo nije za sekiraciju. Developeri XAMPP-a razvijaju aplikaciju duplo duže a redovnije prate trend.

Citat:
pakito
Pitam zbog toga što mi XAMPP ne učitava fajl u koji sam stavio sve one JS funkcije koje su mi potrebne u velikom broju posebnih php fajlova!


Ovo je ustvari konkretan problem koji bi se vjerovatno mog'o riješiti a ukol'ko bi dobili detaljniji opis manifestacije samog problema.
[ pakito @ 14.10.2020. 15:51 ] @
Evo jednog konkretnog primera koji me najviše brine.

HTML kod fajla "novarec.php:

Code:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-utf8">
<title>Unos nove reci</title>
</head>
<body>
<form name="novarec" method="post" action="unesirec.php?go">
                <a href="javascript:void(0);" onclick="replaceText('Ă', document.novarec.uneta_rec); return false;">
                <img border="0" src="vlcod/a1_veliko.gif" alt="muklo a" width="23" height="22" align="absbottom"></a>
                <a href="javascript:void(0);" onclick="[b]replaceText[/b]('Ḑ', document.novarec.uneta_rec); return false;">
                <img border="0" src="vlcod/dz_veliko.gif" alt="dz" width="23" height="22" align="absbottom"></a>
      <!------>
      <input  type="text" name="uneta_rec" id="rec1" style="novarec1" >
      <input  type="submit" name="submit1" value="Traži">
</form>   
</body>
</html>


Sledi PHP kod sa funkcijama Java Script.
Ima ih dosta ali ja citiram samo ovu "replaceTect()" koja mi u input "uneta_rec" ubacuje karakteristične vlaške matrakuke, kojih nema korosnik na svojoj tastaturi.
Prethodno sa "include" unesem fajl "funkcije.php", i kad pregledam izvorni kod stranice "novarec.php", sve funcije iz tog fajla su vidljive.
Ali, funkcija na "onclick" ne radi ništa. Aktivna bude tek kad je kao <script> unesem u sam fajl "novarec.php".
Da podsetim, ovo mi se događa u radu sa XAMPP-om, na svim mestim gde se poziva bilo koja funkcija iz "includovanog" fajla "funkcije.php".
Da li je to neka zminta samo u XAMPPu ili će tako biti u PHP7 kad prenesem prerađeni kod moje aplikacije?

Code:

fajl funkcije.php
<script type="text/javascript">
function replaceText(text, textarea)
{
    // Attempt to create a text range (IE).
    if (typeof(textarea.caretPos) != "undefined" && textarea.createTextRange)
    {
        var caretPos = textarea.caretPos;
        caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? text + ' ' : text;
        caretPos.select();
    }
    // Mozilla text range replace.
    else if (typeof(textarea.selectionStart) != "undefined")
    {

        var begin = textarea.value.substr(0, textarea.selectionStart);
        var end = textarea.value.substr(textarea.selectionEnd);
        var scrollPos = textarea.scrollTop;
        textarea.value = begin + text + end;
        if (textarea.setSelectionRange)
        {
            textarea.focus();
            textarea.setSelectionRange(begin.length + text.length, begin.length + text.length);
        }
        textarea.scrollTop = scrollPos;
    }
    // Just put it on the end.
    else
    {
        textarea.value += text;
        textarea.focus(textarea.value.length - 1);
    }
}
</script>
[ pakito @ 14.10.2020. 17:46 ] @
Hm!
Temeljnom proverom fajla "funkcije.php" koji se učitava ali se funkcije ne izvršvaju, ustanovio sam da ispravno deluju sve funkcije do grupe funkcija ovoga tipa:

Code:

<script>
function open_winFrazeSpel()
{
    var levo =  window.screenX+230;
    var gore = window.screenY+100;

window.open("celarec-frazesve-ucimovlaski.php?id=<?php echo $id; ?>","_blank",
"toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, top="+gore+", left="+levo+", copyhistory=yes, width=750, height=650");
}
</script>


Isto blokliraju delovanje funkcija kad im sklonim učitavanje vrednosti iz PHP varijable "<?php echo $id; ?>" !
[ agvozden @ 15.10.2020. 13:52 ] @
Ja u ovom gornjem primeru ne vidim php.
Imas samo php koji printa js, a to ce raditi bez obzira na verziju.
[ mjanjic @ 15.10.2020. 16:23 ] @
Moraš da proveri debagerom šta je problem, eventualno štampanjem vrednosti na konzoli (u JS), ali je bolje debagerom pa da ideš liniju po liniju. Pitanje je koju vrednost prosleđuješ.

I proveri za one Unicode karaktere (tipa: Ă), da li se to prosleđuje ili na bilo koji način ima dodira sa PHP-om, sećam se pre nekoliko godina problema sa unetim podacima u formi koje potom obrađuje PHP, nije bila predviđena podrška za UTF-8 pa je bilo "malo" problema (ne sećam se šta se dešavalo, da li zakuca ili u bazu prosledi kao one ASCII brljotine.
Uglavnom, ako je kojim slučajem to problem, pogledaj: https://phptherightway.com/#php_and_utf8