Is V8’s ignition a compiler or line by line interpreter?

I have tried looking into some of the V8 blogs to understand this, but it seems they use compiler and interpreter interchangeably. I want to know if ignition converts/compiles to bytecode and then it converts/interprets it and execute the resulting machine code, line by line. Or does it stop its work at generating bytecode. Then, what component interprets line by line? Also I think turbofan only compiles hot functions to optimise the execution.

How does Ignition and turbofan work together? Is it like ignition creates bytecode and also interprets and runs line by line a few times, and information about execution, like data types are profiled. Next, using this information, wherever possible turbofan optimizes code by generating machine code for hot functions. So ignition interprets line by line the non hot functions and the hot functions’ machine code is just executed.
Where unexpected data type change is encountered the optimized code fails and engine reverts back to line by line interpretation again by ignition. Is this how it all works?

How can I create a newsletter signup similar to smartwater?

Sorry in advance if this is a dumb question.

I’m a beginner coder and having trouble creating a newsletter signup similar to Smartwater or Monster Energy Drink. They have their sign-up located in the footer, and once you enter your information, it gives you a confirmation message without redirecting you to a different page. I am trying to emulate that design but am stuck with the Javascript and CSS transitions.

HTML:

<section class="footerForm" style="padding: 10px;" id="newsletterSignup">
            
                
                <form action="welcome.php" method="post">
            <fieldset>
                <legend><h1 style="color:#443627;">Come Along!</h1>Sign Up to our newsletter to hear our latest updates, promotions, and more.</legend><br>
                
                <label for="email">Email Address*</label><br>
                <input type="email" name="email" id="email" required="required"><br>
                
                <label for="dob">Date Of Birth*</label><br>
                <select name="dob" size="1" required="required" id="month">
                    <option></option>
                    <option>January</option>
                    <option>Febuary</option>
                    <option>March</option>
                    <option>Abril</option>
                    <option>May</option>
                    <option>June</option>
                    <option>July</option>
                    <option>August</option>
                    <option>September</option>
                    <option>October</option>
                    <option>November</option>
                    <option>December</option>
                </select>
                <select name="dob" size="1" required="required" id="day">
                    <option></option>
                    <option>01</option>
                    <option>02</option>
                    <option>03</option>
                    <option>04</option>
                    <option>05</option>
                    <option>06</option>
                    <option>07</option>
                    <option>08</option>
                    <option>09</option>
                    <option>10</option>
                    <option>11</option>
                    <option>12</option>
                    <option>13</option>
                    <option>14</option>
                    <option>15</option>
                    <option>16</option>
                    <option>17</option>
                    <option>18</option>
                    <option>19</option>
                    <option>20</option>
                    <option>21</option>
                    <option>22</option>
                    <option>23</option>
                    <option>24</option>
                    <option>25</option>
                    <option>26</option>
                    <option>27</option>
                    <option>28</option>
                    <option>29</option>
                    <option>30</option>
                    <option>31</option>
                </select>
                
                <select name="dob" size="1" required="required" id="year">
                    <option>2023</option>
                    <option>2022</option>
                    <option>2021</option>
                    <option>2020</option>
                    <option>2019</option>
                    <option>2018</option>
                    <option>2017</option>
                    <option>2016</option>
                    <option>2015</option>
                    <option>2014</option>
                    <option>2013</option>
                    <option>2012</option>
                    <option>2011</option>
                    <option>2010</option>
                    <option>2009</option>
                    <option>2008</option>
                    <option>2007</option>
                    <option>2006</option>
                    <option>2005</option>
                    <option>2004</option>
                    <option>2003</option>
                    <option>2002</option>
                    <option>2001</option>
                    <option>2000</option>
                    <option>1999</option>
                    <option>1998</option>
                    <option>1997</option>
                    <option>1996</option>
                    <option>1995</option>
                    <option>1994</option>
                    <option>1993</option>
                    <option>1992</option>
                    <option>1991</option>
                    <option>1990</option>
                    <option>1989</option>
                    <option>1988</option>
                    <option>1987</option>
                    <option>1986</option>
                    <option>1985</option>
                    <option>1984</option>
                    <option>1983</option>
                    <option>1982</option>
                    <option>1981</option>
                    <option>1980</option>
                    <option>1979</option>
                    <option>1978</option>
                    <option>1977</option>
                    <option>1976</option>
                    <option>1975</option>
                    <option>1974</option>
                    <option>1973</option>
                    <option>1972</option>
                    <option>1971</option>
                    <option>1970</option>
                    <option>1969</option>
                    <option>1968</option>
                    <option>1967</option>
                    <option>1966</option>
                    <option>1965</option>
                    <option>1964</option>
                    <option>1963</option>
                    <option>1962</option>
                </select><br><br>
                <label for="tos">I agree to the Terms of Use and Privacy Policy of AguaVida</label>
                <input type="checkbox" id="tos" name="tos"> <br>
                    
            </fieldset>
                <input type="button" value="Submit" class="button" id="newsletterButton">
            </form>
            
            <div class="confirmationNews">
                        <h3>You're all set! Wait for a confirmation email.</h3>
                    </div>
        </section>

CSS:

@keyframes disappear{
    from{
        opacity: 100%;
        display: block;
    }
    to{
        opacity: 0%;
        display:none;
    }
}

@keyframes appear{
    from{
        opacity: 0%;
        display:none;
    }
    to{
        opacity: 100%;
        display: flex;
    }
}

So far this is what I have. I have tried removing the action of “welcome.php”, but it still attempts to redirect the user to a page that doesn’t exist. I am stuck creating an appropiate css animation or javascript file that can allow me to show a confirmation message without changing the page. I want to confirm that they signed up while they aren’t redirected to a different page (if that makes sense, my wording isn’t the best).

All the help is appreciated.

“Unable to Initialize React App: Getting mkdir When Trying to Create a New React Application”

C:Program FilesReact>npx create-react-app todoapp
node:fs:1378
const result = binding.mkdir(
^

Error: EPERM: operation not permitted, mkdir ‘C:Program FilesReacttodoapp’
at Object.mkdirSync (node:fs:1378:26)
at module.exports.makeDirSync (C:UsersUserAppDataRoamingnpmnode_modulescreate-react-appnode_modulesfs-extralibmkdirsmake-dir.js:23:13)
at createApp (C:UsersUserAppDataRoamingnpmnode_modulescreate-react-appcreateReactApp.js:257:6)
at C:UsersUserAppDataRoamingnpmnode_modulescreate-react-appcreateReactApp.js:223:9
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
errno: -4048,
code: ‘EPERM’,
syscall: ‘mkdir’,
path: ‘C:Program FilesReacttodoapp’
}

Node.js v21.5.0

Please solve me

Plaese help me to create react app

I want to understand what this is , and why!? code in JS => localStorage [closed]

Code

window.localStorage.fontWeight = “bold”;
console.log(window.localStorage);

Console

Storage
CacheStorageVersion
:
“3b”
RTC_CALL_SUMMARY_summary
:
“{“__t”:1617896712596,”__v”:{}}”
Session
:
“g2eueu:1617896743725”
banzai:last_storage_flush
:
“1617896712593.58”
color
:
“#F00”
falco_queue_critical^$f228e825a8d880c
:
“{“items”:[{“name”:”bd_pdc_signals”,”rate”:1,”time”:1617896711527.58,”extra”:{“asid”:”6dc50464-ed08-4e81-b3bf-7c7019766988″,”ct”:1610735172,”rt”:1024,”sjd”:”Hk2Lfld9qlxPOUraLIWAa3Bmgl/LSdxRkZh47k+Jgnn/HAyY4/5CNuNOHTNSesWAN2WODPIg6s+x18xpRlD2R4Yh9ZzeH5Y/NUff7Nx6BsC6W176j9phqJbsk76TtOb+ZCaOb5F365VfijcdMZmSAcL9ySNKASmyd43j/mdG1cGY2WaPdo/aZWSARXGWXkObgzdDYQrlyZ4=”,”sid”:12}},{“name”:”ods_web_batch”,”rate”:1,”time”:1617896713036.345,”extra”:{“batch”:{“1678”:{“www_client_navigations”:{“NAVIGATE”:[1,null]}}}}}],”ts”:1617896713036.465}”
falco_queue_immediately^$f673af5016449
:
“{“items”:[{“name”:”perf”,”rate”:1,”time”:1617896711353.615,”extra”:{“marker_id”:29818883,”action_id”:2,”instance_id”:0,”sample_rate”:1,”method”:”random_sampling”,”duration_ns”:”462000000″,”points”:[{“name”:”htmlStart”,”timeSinceStart”:11},{“name”:”tierOne”,”timeSinceStart”:340},{“name”:”tierTwo”,”timeSinceStart”:372},{“name”:”tierThree”,”timeSinceStart”:461},{“name”:”earlyFlush”,”timeSinceStart”:26},{“name”:”cometPageRender”,”timeSinceStart”:252},{“name”:”preloaderStart”,”timeSinceStart”:252},{“name”:”responseStart”,”timeSinceStart”:1},{“name”:”responseEnd”,”timeSinceStart”:462}],”metadata”:{“application_analytics”:{“time_since_qpl_module_init”:-2086.72509765625},”memory_stats”:{“total_mem”:4294967296},”network_stats”:{“downlink_megabits”:10,”network_subtype”:”4g”,”rtt_ms”:100},”sitedata_info”:{“client_push_phase”:”C3″,”client_revision”:1003215383,”server_revision”:1003215383},”locale_info”:{“locale”:”ar_AR”,”isRTL”:1}},”marker_type”:1,”annotations”:{“tracePolicy”:”comet.mediaviewer.photo”,”interactionId”:”33192dc2-7316-4bcb-beaf-ef330e7fbea6″,”interactionClass”:”contingent”,”navigationType”:”navigate”,”pkg_cohort”:”EXP2:comet_pkg”},”annotations_int”:{“darkMode”:0,”revisit”:0,”hidden”:0,”navStartOffset”:0,”redirectCount”:0,”encodedBodySize”:0,”decodedBodySize”:0,”pageload_css_cacheCount”:0,”pageload_css_encodedBodySize”:95615,”pageload_css_totalCount”:2,”pageload_css_transferSize”:96292,”pageload_js_cacheCount”:0,”pageload_js_encodedBodySize”:1506344,”pageload_js_totalCount”:14,”pageload_js_transferSize”:1508507},”annotations_string_array”:{“CometTags”:[“hyp_on”,”comet_aa_coinflip:false”,”lightspeed”,”lastServerTagFlushed”]}}},{“name”:”perf”,”rate”:1,”time”:1617896711373.45,”extra”:{“marker_id”:29818881,”action_id”:2,”instance_id”:1,”sample_rate”:1,”method”:”random_sampling”,”duration_ns”:”2647979980″,”points”:[{“name”:”traceStart”,”timeSinceStart”:2570},{“name”:”navigationStart”,”timeSinceStart”:0},{“name”:”fetchStart”,”timeSinceStart”:38},{“name”:”domainLookupStart”,”timeSinceStart”:38},{“name”:”domainLookupEnd”,”timeSinceStart”:38},{“name”:”connectStart”,”timeSinceStart”:38},{“name”:”connectEnd”,”timeSinceStart”:38},{“name”:”requestStart”,”timeSinceStart”:38},{“name”:”responseStart”,”timeSinceStart”:38},{“name”:”responseEnd”,”timeSinceStart”:1551},{“name”:”domLoading”,”timeSinceStart”:1334},{“name”:”domInteractive”,”timeSinceStart”:1813},{“name”:”domContentLoadedEventStart”,”timeSinceStart”:1813},{“name”:”domContentLoadedEventEnd”,”timeSinceStart”:1813},{“name”:”server_requestStart”,”timeSinceStart”:25},{“name”:”server_htmlStart”,”timeSinceStart”:36},{“name”:”server_tierOne”,”timeSinceStart”:365},{“name”:”server_tierTwo”,”timeSinceStart”:397},{“name”:”server_tierThree”,”timeSinceStart”:486},{“name”:”server_earlyFlush”,”timeSinceStart”:51},{“name”:”server_cometPageRender”,”timeSinceStart”:277},{“name”:”server_preloaderStart”,”timeSinceStart”:277},{“name”:”server_responseStart”,”timeSinceStart”:26},{“name”:”server_responseEnd”,”timeSinceStart”:487},{“name”:”htmlStart_InlineInit”,”timeSinceStart”:1519,”data”:{“string”:{“__key”:”{“bytes”:43827,”bytesCompressed”:9690}”}}},{“name”:”htmlStart_LastResourceStart”,”timeSinceStart”:1512},{“name”:”htmlStart_ResourceDone”,”timeSinceStart”:2460},{“name”:”htmlStart_DownloadStart”,”timeSinceStart”:1507},{“name”:”tierOne_InlineInit”,”timeSinceStart”:1782,”data”:{“string”:{“__key”:”{“bytes”:263498,”bytesCompressed”:61155}”}}},{“name”:”tierOne_LastResourceStart”,”timeSinceStart”:1508},{“name”:”tierOne_ResourceDone”,”timeSinceStart”:2398},{“name”:”tierOneEnd_InlineInit”,”timeSinceStart”:1791},{“name”:”tierTwo_InlineInit”,”timeSinceStart”:1791,”data”:{“string”:{“__key”:”{“bytes”:181910,”bytesCompressed”:15594}”}}},{“name”:”tierTwo_LastResourceStart”,”timeSinceStart”:1512},{“name”:”tierTwo_ResourceDone”,”timeSinceStart”:2460},{“name”:”tierTwoEnd_InlineInit”,”timeSinceStart”:1797},{“name”:”tierThree_InlineInit”,”timeSinceStart”:1797},{“name”:”tierThree_LastResourceStart”,”timeSinceStart”:1938},{“name”:”tierThree_ResourceDone”,”timeSinceStart”:2579},{“name”:”tierThree_DownloadStart”,”timeSinceStart”:1544},{“name”:”tierThreeEnd_InlineInit”,”timeSinceStart”:1812},{“name”:”tierTwoBeforeScheduler_InlineInit”,”timeSinceStart”:1864},{“name”:”tierTwoInsideScheduler_InlineInit”,”timeSinceStart”:1864},{“name”:”tierOneBeforeScheduler_InlineInit”,”timeSinceStart”:1865},{“name”:”tierOneInsideScheduler_InlineInit”,”timeSinceStart”:1884},{“name”:”tierThreeBeforeScheduler_InlineInit”,”timeSinceStart”:1984},{“name”:”tierThreeInsideScheduler_InlineInit”,”timeSinceStart”:1986,”data”:{“string”:{“__key”:”{“bytes”:-489235,”bytesCompressed”:-86439}”}}},{“name”:”logVC”,”timeSinceStart”:2640},{“name”:”TTFB”,”timeSinceStart”:38}],”metadata”:{“application_analytics”:{“time_since_qpl_module_init”:74.2548828125},”memory_stats”:{“total_mem”:4294967296},”network_stats”:{“downlink_megabits”:10,”network_subtype”:”4g”,”rtt_ms”:100},”sitedata_info”:{“client_push_phase”:”C3″,”client_revision”:1003215383,”server_revision”:1003215383},”locale_info”:{“locale”:”ar_AR”,”isRTL”:1}},”marker_type”:1,”annotations”:{“tracePolicy”:”comet.mediaviewer.photo”,”interactionId”:”33192dc2-7316-4bcb-beaf-ef330e7fbea6″,”interactionClass”:”contingent”,”navigationType”:”navigate”,”pkg_cohort”:”EXP2:comet_pkg”,”loomRefId”:”11fd29e3-097b-4fd7-a06d-5f74f6de71ec_1″},”annotations_int”:{“numReactCommit”:0,”darkMode”:0,”revisit”:0,”hidden”:0,”navStartOffset”:0,”redirectCount”:0,”encodedBodySize”:0,”decodedBodySize”:0,”pageload_css_cacheCount”:0,”pageload_css_encodedBodySize”:95615,”pageload_css_totalCount”:2,”pageload_css_transferSize”:96292,”pageload_js_cacheCount”:0,”pageload_js_encodedBodySize”:1506344,”pageload_js_totalCount”:14,”pageload_js_transferSize”:1508507,”height”:865,”width”:1280,”scrollY”:0,”finalScrollY”:0,”initialScrollY”:0,”overhead”:0,”navSequence”:1,”css_cacheCount”:0,”css_encodedBodySize”:0,”css_totalCount”:0,”css_transferSize”:0,”img_cacheCount”:0,”img_encodedBodySize”:0,”img_totalCount”:0,”img_transferSize”:0,”js_cacheCount”:0,”js_encodedBodySize”:0,”js_totalCount”:0,”js_transferSize”:0,”bootload_downloaded_js_encodedBodySize”:0,”bootload_downloaded_js_transferSize”:0,”bootload_downloaded_js_totalCount”:0,”bootload_downloaded_js_cacheCount”:0,”bootload_inline_js_decodedBodySize”:0,”bootload_downloaded_css_encodedBodySize”:0,”bootload_downloaded_css_transferSize”:0,”bootload_downloaded_css_totalCount”:0,”bootload_downloaded_css_cacheCount”:0,”bootload_inline_css_decodedBodySize”:0,”bootload_downloaded_t1_encodedBodySize”:0,”bootload_downloaded_t1_transferSize”:0,”bootload_downloaded_t1_totalCount”:0,”bootload_downloaded_t1_cacheCount”:0,”bootload_inline_t1_decodedBodySize”:0,”bootload_downloaded_t2_encodedBodySize”:0,”bootload_downloaded_t2_transferSize”:0,”bootload_downloaded_t2_totalCount”:0,”bootload_downloaded_t2_cacheCount”:0,”bootload_inline_t2_decodedBodySize”:0,”bootload_downloaded_t3_encodedBodySize”:0,”bootload_downloaded_t3_transferSize”:0,”bootload_downloaded_t3_totalCount”:0,”bootload_downloaded_t3_cacheCount”:0,”bootload_inline_t3_decodedBodySize”:0,”relay3d_downloaded_js_encodedBodySize”:0,”relay3d_downloaded_js_transferSize”:0,”relay3d_downloaded_js_totalCount”:0,”relay3d_downloaded_js_cacheCount”:0,”relay3d_inline_js_decodedBodySize”:0,”relay3d_downloaded_css_encodedBodySize”:0,”relay3d_downloaded_css_transferSize”:0,”relay3d_downloaded_css_totalCount”:0,”relay3d_downloaded_css_cacheCount”:0,”relay3d_inline_css_decodedBodySize”:0,”relay3d_downloaded_untiered_encodedBodySize”:0,”relay3d_downloaded_untiered_transferSize”:0,”relay3d_downloaded_untiered_totalCount”:0,”relay3d_downloaded_untiered_cacheCount”:0,”relay3d_inline_untiered_decodedBodySize”:0},”annotations_bool”:{“hadLateMutation”:false,”hadLateMutationLegacy”:false,”hadLateMutationExpected”:false,”hadLateMutationUnexpected”:false},”annotations_string_array”:{“CometTags”:[“hyp_on”,”comet_aa_coinflip:false”,”lightspeed”,”lastServerTagFlushed”],”loomProviders”:[“InteractionTracing”]}}},{“name”:”perf”,”rate”:1,”time”:1617896711373.72,”extra”:{“marker_id”:53542916,”action_id”:2,”instance_id”:1,”sample_rate”:1,”method”:”random_sampling”,”duration_ns”:”2648580078″,”points”:[{“name”:”traceStart”,”timeSinceStart”:2570},{“name”:”TTFB”,”timeSinceStart”:38}],”metadata”:{“application_analytics”:{“time_since_qpl_module_init”:74.85498046875},”memory_stats”:{“total_mem”:4294967296},”network_stats”:{“downlink_megabits”:10,”network_subtype”:”4g”,”rtt_ms”:100},”sitedata_info”:{“client_push_phase”:”C3″,”client_revision”:1003215383,”server_revision”:1003215383},”locale_info”:{“locale”:”ar_AR”,”isRTL”:1}},”marker_type”:1,”annotations”:{“tracePolicy”:”comet.mediaviewer.photo”},”annotations_int”:{“revisit”:0,”hidden”:0,”height”:865,”scrollY”:0,”navSequence”:1}}}],”ts”:1617896713034.365}”
falco_queue_log^$f9bbeee8eba9e8
:
“{“items”:[{“name”:”bd_pdc_signals”,”rate”:1,”time”:1617896711590.605,”extra”:{“asid”:”6dc50464-ed08-4e81-b3bf-7c7019766988″,”ct”:1610735172,”rt”:1024,”sjd”:”sUEUEmQ1U3fRpmb03tSPTCvKQnjb8tOVyAjTmrK9hb3WCSrcFzuC5Wa2XhRpeUFHYna4/g4FjbC7Z7xi4/Oa/UbKXcGvRVyfJ37sCdMuIvTd60FqRzFiydom7OiuGDHmfX4B+WXqgvnd/oBDTfzBZKtp6TjsrnBBfDsGpZkjhLkOUWvQgF8KTWutFWgm3uDMwk8dvI0omtoS2fhby78D9cJa6tlM3PER+upNr2IHruHqlnAkhC8IlUfooXSr5TYoc/nCo9mAs92iyrY+nWDj8qTk8BM4GpKr9tcrNyKztBllb6viuVlmQPrYXnJm9NyAZZg32VfERJ9GxC6EQpyeDlHKkkCJRlfrPy5SSHOmmATIVzJFQuZ3Vc+sEHcJmC4E2a1YgFmlHy6C1To7/IT+DLZP9jzKJzGyp3Rc8gdDIY+QcIjsqTdP/fFoxcz7t7PmTPFUb9afvA9nqNK+8510DcPPJJ+brCOUfvnCymupaQYr75oZWI/8a51h9Zvu81tVOYue/oeDfsTzDqCrgSIBu0waWaNHpnAeLT75X4bQfR8qaQMZTNfa6MOmve/gj7d2opxvrOOsgriuMED6Xt/V8gIJYs3IDDcJGEPLc8nQF8UH5M5iPHGMaMbuDqK6h73OWKui2RvN5eNt9uOjHeYoo/sIKLZOiz06qEaKJ5GUgaBnv/qhWMiOBluuj83aHeEEJOP6+yzGlyblzzNZi+jyYHcrM1k2OGs9vptB6tVlX5KfsgOtED+D03ahApFC2Msi98RZkHqJ5CVZro6b85+KoWSkpQZlJAlyF7n4kaDynnGqUb962rV1GMPMtKDLVpkRG0mX3QWPZVy5AxCAZ8xeOaHH0b9np0X4cjYUEXCXJffeRH7Whet5yuILkkdZdsEAXmwr2PL1Nf/mG9lQu/b2U76wxnn8rrZTcGbQmzRC7h+f3DC04vD/4O2ztZYVsw4s6zVfBkxpCMorTPVt+Qck5lOMWlYlELKziTASU8MF+lBiE6WaNnW6Cpd/2IPmfu1B22mzaSRAvC+CjizDBshnxO6GnHT47v8wbZsnGqyDCKEKqOOawS/svAoAzqHEeViw4Y1FuNQf+1UPoEmowmal/fVzq9DaciwbqzsIBiS/iPn+Zwi+iKHEBMKzhD4r7NiHOPHMvzduwm0MrPYEhhziVCV0ho/i9xhSRqtvONb9xBL8wMeD96oh7lC+k2PaX0+3ZjAFzy/DZYRltJFhbUeeSGaE13DOIpdvpkhPMgD1Gm1P9wyK6tBWKB4uEJjY30O8Mq+XUZUWRImzMX5BEMuZ0QuJ2Sn4mClT”,”sid”:12}}],”ts”:1617896713034.035}”
fontSize
:
“20px”
fontWeight
:
“bold”
goog_pem_mod
:
“573”
google_experiment_mod34
:
“253”
google_experiment_mod36
:
“538”
google_experiment_mod37
:
“226”
google_experiment_mod44
:
“674”
google_experiment_mod47
:
“488”
google_experiment_mod53
:
“598”
hb_timestamp
:
“1617896711528”
pusherTransportTLS
:
“{“timestamp”:1611245777878,”transport”:”ws”,”latency”:1216}”
signal_flush_timestamp
:
“1617896711591”
_lfa_DzLR5a59gj6aBoQ2
:
“LF1.1.a558f5fbfc2219b8.1599032023077”
_lfa_expiry
:
“2022-09-02T07:36:16.794Z”
length
:
22

I haven’t tried it .

Learn programming language [closed]

The best website or application for learning programming languages ??

Python – SQL – php – JavaScript

I want your best experience in learning programming languages

The best programming languages, and can artificial intelligence be replaced by writing codes?

Share with me your favorite sources.

Why is this Element not covering the Whole Height of the body?

I am creating a section of a page where I have to fetch the Movie Details and fill into these cards as user types but I encountered a problem, Where this section isn’t covering the whole height space available.

Any Help on how to resolve this would be greatly appreciated.


<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Movie</title>
    <link rel="stylesheet" href="style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css" integrity="sha512-DTOQO9RWCH3ppGqcWaEA1BIZOC6xxalwEsw9c2QQeAIftl+Vegovlnee1c9QX4TctnWMn13TZye+giMm8e2LwA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body>
<div class="blac-cont">
        <div class="inpt"><input type="text" id="tx" placeholder="Enter Keyword to search">
        <span class="cls-overly" id="clovr"><i class="fa-regular fa-circle-xmark"></i></span>
        </div>

        <div class="crdmn">
            <div class="crds">
                <div class="hvractv">
                  <span class="txtp">
                    Movie
                  </span>
                  <span class="txdtl">
                    <span class="txmn flwr">
                      All Quiet Among the Western Front
                    </span>
                    <span class="txsesn">
                      <i class="fas fa-circle"></i>
                      2005
                    </span>
                    <span class="txdur">
                      <i class="fas fa-circle"></i>
                      225min
                    </span>
                  </span>
                  <span class="icna">
                    <a href="https://google.com">
                      <i class="fas fa-play"></i>
                    </a>
                  </span>
                </div>
              </div>

          <div class="crds">
            <div class="hvractv">
              <span class="txtp">
                Movie
              </span>
              <span class="txdtl">
                <span class="txmn flwr">
                  All Quiet Among the Western Front
                </span>
                <span class="txsesn">
                  <i class="fas fa-circle"></i>
                  2005
                </span>
                <span class="txdur">
                  <i class="fas fa-circle"></i>
                  225min
                </span>
              </span>
              <span class="icna">
                <a href="https://google.com">
                  <i class="fas fa-play"></i>
                </a>
              </span>
            </div>
          </div>

          <div class="crds">
            <div class="hvractv">
              <span class="txtp">
                Movie
              </span>
              <span class="txdtl">
                <span class="txmn flwr">
                  All Quiet Among the Western Front
                </span>
                <span class="txsesn">
                  <i class="fas fa-circle"></i>
                  2005
                </span>
                <span class="txdur">
                  <i class="fas fa-circle"></i>
                  225min
                </span>
              </span>
              <span class="icna">
                <a href="https://google.com">
                  <i class="fas fa-play"></i>
                </a>
              </span>
            </div>
          </div>

          <div class="crds">
            <div class="hvractv">
              <span class="txtp">
                Movie
              </span>
              <span class="txdtl">
                <span class="txmn flwr">
                  All Quiet Among the Western Front
                </span>
                <span class="txsesn">
                  <i class="fas fa-circle"></i>
                  2005
                </span>
                <span class="txdur">
                  <i class="fas fa-circle"></i>
                  225min
                </span>
              </span>
              <span class="icna">
                <a href="https://google.com">
                  <i class="fas fa-play"></i>
                </a>
              </span>
            </div>
          </div>
    </div>

</body>
</html>

CSS

* {
  margin: 0;
  padding: 0;
}

body {
  height: 100vh;
  background-color: #3fa885;
  font-family: Arial, sans-serif;
  overflow-x: hidden;
}


.blac-cont {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  background-color: black;
  width: 100%;
  height: 100%;
  padding: 18px;
  box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  z-index: 10;
}

.inpt {
  display: flex;
  margin: 12px 13px auto;
  gap: 12px;
  width: 95%;
  height: 11%;
}

#tx {
  display: flex;
  flex-grow: 0.97;
  border: none;
  outline: none;
  caret-color: white;
  font-size: 18px;
  color: white;
  border-bottom: 2px solid #c1c1c1;
  background-color: transparent;
  padding: 10px;
}

.cls-overly{
  display: flex;
  background: #fff;
  padding: 10px;
  border-radius: 49%;
  font-size: 1.6rem;
  height: max-content;
  cursor: pointer;
}

.crdmn {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  justify-content: space-between;
  align-items: center;
  padding: 5px;
  width: 89%;
  height: 98%;
  gap: 10px;
}

.crds {
  overflow: hidden;
  position: relative;
  margin: 10px auto;
  cursor: pointer;
  background: url("https://image.tmdb.org/t/p/w300//2IRjbi9cADuDMKmHdLK7LaqQDKA.jpg");
  background-size: 101% 100%;
  background-repeat: no-repeat;
  border-radius: 12px;
  box-shadow: rgba(0, 0, 0, 0.5) 1px 25px 44px,
    rgba(0, 0, 0, 0.29) 1px 19px 16px;
  padding: 10px;
  width: 14.85rem;
  height: 46.15vh;
  display: flex;
  flex-wrap: wrap;
  flex-direction: column;
  justify-content: space-between;
}

.hvractv {
  overflow: hidden;
  background: blue;
  border-radius: 12px;
  position: absolute;
  left: 0;
  right: 0;
  width: 100%;
  display: none;
  justify-content: space-between;
  flex-direction: column;
  height: 100%;
}

.crds:hover .hvractv {
  animation: bottom 1.3s ease-in forwards;
  display: flex;
}

@keyframes bottom {
  from {
    bottom: -85%;
    opacity: 0;
  }
  to {
    bottom: 0%;
    opacity: 1;
    
  }
}

.txtp {
  padding: 6px;
  border: 2px solid #050;
  width: max-content;
  border-radius: 10px;
  margin: 3px auto;
  font-size: 16px;
  background-color: black;
  color: white;
}

.txdtl {
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
  gap: 7px;
  width: 96%;
  margin: 1px auto;
  background: rgba(92, 168, 126, 0.23);
  border-radius: 12px;
  box-shadow: 0 4px 30px rgba(0, 0, 0, 0.2);
  backdrop-filter: blur(8.2px);
  -webkit-backdrop-filter: blur(8.2px);
  border: 1px solid rgba(92, 168, 126, 0.33);
  justify-content: space-between;
}
.txmn {
  margin: 2px auto;
  overflow-wrap: break-word;
  text-align: center;
  font-size: 18px;
  font-style: italic;
  font-weight: bold;
}
.txmn:hover {
  transform: scale(1.01) translateY(-0.5px);
}

.txsesn {
  font-size: 16px;
  margin: 5px auto;
  font-weight: bold;
  text-align: center;
}

.txsesn:hover {
  transform: scale(1.1) translateY(-1px);
}

.txdur {
  font-size: 16px;
  margin: 6px auto;
  text-align: center;
  font-weight: bold;
}

.txdur:hover {
  transform: scale(1.1) translateY(-1px);
}

.icna {
  margin: 47px auto;
  border-radius: 50%;
  background-color: #ffe300;
  padding: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  align-content: center;
  flex-wrap: wrap;
  width: 44px;
  height: 44px;
  box-shadow: rgba(0, 0, 0, 0.5) 1px 25px 44px,
    rgba(0, 0, 0, 0.29) 1px 19px 16px;
}

.icna:hover {
  transform: scale(1.1) translateY(-1px);
}

.flwr {
  display: flex;
  flex-wrap: wrap;
}

.fa-circle {
  text-align: center;
  font-size: 6.2px !important;
  color: black !important;
}

As You can see cards don’t seamlessly integrate with the rest of the space available in the div. I’ve tried adjusting various CSS properties, but I’m unable to pinpoint the exact issue.

Console.log((hello); is wrong

Why is the output not: “Merry Christmas”

 let one = 1;
 let two = 2;

 if(one < two){
 console.log("Hello  you are a                 
 f*****);
 }


 if(one < two){
 console.log("Hello  you are a                 
 f*****);
 }`

Javascript ok but why hi

SSL Websocket can’t establish a connection since today

I wish all readers Merry Christmas and nice gifts,
My christmas gift was a connection error with my websocket project.

Backend is a Ubuntu Linux virtual instance with an apache server and python 3.10 with websockets as lib.
Frontend is a Ubuntu Linux virtual instance with an apache server and a builded webgl appliance.

Since today i cant create a connection with the same code.
JS:

const socket = new WebSocket("wss://domain:port");
..

Python:

...
ssl_context = ssl.SSLContext(ssl.PROTOCOL_TLS_SERVER)
ssl_context.load_cert_chain(certfile="./cert.pem", keyfile="./privkey.pem")


async def main():
    async with websockets.serve(server, "", port, ssl=ssl_context):
        await asyncio.Future()  # run forever

asyncio.run(main())

The frontend is on a diferent webserver as the websocket server.
I can create a connection with ws. The port is open (i checked it in my cloud overview and over ufw and nmap)
I have ssl certs for my frontend and backend with differenz domains/ips created over lets encrypt and these are valid today.

Have anybody an idea why this sucks up today ?

What i did:
Restarted my pc
Restarted my cloud pc
Drank a beer
Reseted my code to a date who i know 1oo% that was working
Tested it without ssl

Expected result: connection can created over ssl..

Problem with connection java script and PHP

I have a very small knowledge of PHP. I have a form in html. When the form submits it is supposed to send an email to specific mail. I have my errors defined in JS ,when the form is not valid. I am using php mailer for the form submit. The problem that I am facing is when I remove the js file from the html the mail is send(the errors are not shown) and when I put it back the mail is not send. I do not know how to connect the three files, so when there is a empty input the error to appear and when the form is valid a mail to be received. In the PHP file I am using $$$ in the mail to hide the real info.

   <form action="./send-mail.php" method="post">
            <div class="b-form__inputWrap">
                <label for="name">Name</label>
                <input name="name" id="name">
                <div class="error hidden">Please enter name</div>
            </div>

            <div class="b-form__inputWrap">
                <label for="email">Email</label>
                <input name="email" id="email">
                <div class="error hidden">Please enter email</div>
            </div>

            <div class="b-form__inputWrap">
                <label for="text">Phone</label>
                <input name="phone" id="phone" placeholder="+">
                <div class="error hidden">Please enter phone number</div>
            </div>

            <div class="b-form__inputWrap">
                <label for="subject">Subject</label>
                <input name="subject" id="subject">
            </div>

            <div class="b-form__inputWrap">
                <label for="message">Message</label>
                <textarea name="message" id="message" name="message"></textarea>
                <div class="error hidden">Please enter message</div>
            </div>

            <button class="b-form__btn" type="submit" name="submit">Send</button>
        </form>

JAVA SCRIPT

        const form = document.querySelector('form');
        const firstName = document.getElementById('name');
        const email = document.getElementById('email');
        const phone = document.getElementById('phone');
        const textMessage = document.getElementById('message');

       const error = document.querySelectorAll('.error');
       const errorOther = document.querySelector('.errorOther');
       const message = document.querySelector('.b-form__message');

      let validationOn = false;
      let formValid = false;

        const isValidEmail = () =>{
         const patern= /^(([^<>()[]\.,;:s@"]+(.[^<>()[]\.,;:s@"]+)*)|(".+"))@(([[0- 
         9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}])|(([a-zA-Z-0-9]+.)+[a-zA-Z]{2,}))$/;
         return String(email.value).toLowerCase().match(patern);
         }

       const isValidPhone = () =>{
        const patern = /^[+]?[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4,6}$/im;
         return String(phone.value).toLowerCase().match(patern);
         }

         const displayErrors = (el) =>{
          el.nextElementSibling.classList.remove('hidden');
         el.classList.add('invalid');
         }

         const resetInput = (el) =>{
         el.nextElementSibling.classList.add('hidden');
         el.classList.remove('invalid');
          }

       const isValid = () =>{
       formValid = true;
       if(!validationOn) return;
       resetInput(firstName);
       resetInput(email);
       resetInput(phone);
       resetInput(textMessage);
 
       if(firstName.value === '' || firstName.value === null){
       displayErrors(firstName);
       formValid =false;
       }

       if(!isValidEmail(email.value)){
       displayErrors(email);
      formValid = false;
        }

      if(!isValidPhone(phone.value)){
      displayErrors(phone);
      formValid = false;
      }

if(textMessage.value === '' || textMessage.value === null){
    displayErrors(textMessage);
    formValid = false;
}
}

     const inputs = [firstName,email,phone,textMessage];


     form.addEventListener('submit', (e) => {
     e.preventDefault();
     validationOn = true;
     isValid();
     validationOn = false;

if (formValid) {
    const formData = new FormData(form);

    fetch('./send-mail.php', {
        method: 'POST',
        body: formData
    })
    .then(response => response.text())
    .then(data => {
        console.log('hello'); // Log the response from the server
        // Handle the response as needed
    })
    .catch(error => {
        console.error('Error:', error);
    });
    
    form.remove();
    message.classList.remove('hidden');
}
  });

    inputs.forEach((inp) =>{
     inp.addEventListener('input', ()=>{
     isValid();
     })
  })

PHP

    <?php

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

 use PHPMailerPHPMailerPHPMailer;
 use PHPMailerPHPMailerException;

require 'vendor/phpmailer/phpmailer/src/Exception.php';
require 'vendor/phpmailer/phpmailer/src/PHPMailer.php';
require 'vendor/phpmailer/phpmailer/src/SMTP.php';

 if (isset($_POST["submit"])) {
try {
    $mail = new PHPMailer(true);

    $mail->isSMTP();
    $mail->Host = 'smtp-relay.brevo.com'; // Use Sendinblue's SMTP server
    $mail->SMTPAuth = true;
    $mail->CharSet = 'UTF-8';
    $mail->Username = '$$$$$'; // Replace with your Sendinblue username
    $mail->Password = '$$$$$'; // Replace with your Sendinblue password
    $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; // Use STARTTLS
    $mail->Port = 587;   

    // Set the sender's email address and name
    $mail->addAddress('$$$$$');
    $mail->setFrom($_POST['email']);
    $mail->addReplyTo($_POST['email']);
    
    $mail->isHTML(true);

    $mail->Subject = $_POST["subject"];
    $mail->Body = "This is the message from" . $_POST["message"];

    $mail->send();
    echo 'Email sent successfully!';
} catch (Exception $e) {
    echo "Message could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
}

?>

Send data from html form to php file that will send it to email in cpanel

i got regular form with name, email and message , when submit button is pressed i want to send that data to email, i know i can send it with php file, i found this code on youtube enter image description here

i want to change $to=(mail entered in form) , $message=(from form), $name(from form). how do i pass those data from html file

this is what my for looks like in html.

<form id="survey-form">
                    <div class="form-group">
                      <label id="name-label" for="name">Name</label>
                      <input
                        type="text"
                        name="name"
                        id="name"
                        class="form-control"
                        placeholder="Enter your name"
                        required
                      />
                    </div>
                    <div class="form-group">
                      <label id="email-label" for="email">Email</label>
                      <input
                        type="email"
                        name="email"
                        id="email"
                        class="form-control"
                        placeholder="Enter your Email"
                        required
                      />
                    </div>
                    <div class="form-group">
                      <label id="number-label" for="phnumber"
                        >Phone</label
                      >
                      <input
                        name="fphone"
                        id="phnumber"
                        placeholder="number"
                      />
                    </div>
                    <div class="form-group">
                      <p style="color: white; font-family:'Quantico',monospace ;">Text us</p>
                      <textarea
                        id="comments"
                        class="input-textarea"
                        name="comment"
                        placeholder="Your message..."
                      ></textarea>
                    </div>
                
                    <div class="form-group">
                      <button type="submit" id="submit" class="submit-button">
                        Submit
                      </button>
                    </div>
                  </form>

what should i write in script in html file and how would i rewrite that php code to make it work ?(if there is better way to do it let me know)

Next.Js 14 : Token not getting passed to session callback (next-auth)

I’m using next-auth with prisma adapter to manage the authentication process,
however the session callback by default return a session with only some fields so the expected action to pass any additional info is to pass it through the token callback to the session callback then return the required session with additional info
My Problem is that I’m unable to access the token object in the session callback to add the extra info to the session and the token is always ‘undefined‘ in the session callback
here is my next-auth config

import NextAuth from "next-auth"
import CredentialsProvider from "next-auth/providers/credentials"
import bcrypt from "bcrypt"
import { PrismaAdapter } from "@auth/prisma-adapter"
import jwt from 'jsonwebtoken';
import prisma from "@/utils/prisma"


export const authOptions = {
  adapter: PrismaAdapter(prisma),
  providers: [
    CredentialsProvider({
      name: "credentials",
      credentials: {
        email: { label: 'Email', type: 'text' },
        password: { label: 'Password', type: 'password' }
      },
      async authorize(credentials) {
        if (!credentials.email || !credentials.password) {
          return null
        }
        const user = await prisma.user.findUnique({
          where: {
            email: credentials.email
          }
        })
        if (!user) {
          return null
        }
        const passwordMatch = await bcrypt.compare(credentials.password, user.password)
        if (!passwordMatch) {
          return null
        }
        const payload = { user }
        const token = jwt.sign(payload, process.env.NEXTAUTH_SECRET, { expiresIn: '5h' });
        console.log(payload);


        return { ...user, accessToken: token }
      }
    }),
  ],
  session: {
    strategy: "jwt",
    maxAge: 12 * 60 * 60 // 12 hours
  },
  callbacks: {
    jwt: async ({ token, user }) => {
      console.log('1');
      if (user) {
        console.log('2:', user);
        return {
          ...token,
          accessToken: user.accessToken
        }
      }
    },
    session: async ({ session, user, token }) => {

      console.log('session last', session);
      console.log('user last', user);
      console.log('token last', token);
      return {
        ...session,
        user: {
          ...session.user,
          accessToken: token.accessToken
        }
      }
    },
  },
  secret: process.env.NEXTAUTH_SECRET,
  debug: process.env.NODE_ENV === "development"
}

const handler = NextAuth(authOptions)

export { handler as GET, handler as POST }

Crawling popular video barrages from Bilibili, the URL request parameters are different

There is a w_rid parameter in the url parameter of station B. This parameter was found to be encrypted by md5 through debugging. The w_rid parameter was constructed by myself. It is not consistent with the w_rid parameter in the url of station B, but this parameter was constructed by myself.the response data can still be requested, why is this?
This is the parameter w_rid in the URL of station B: f2b3fb3807eb99bbc84c86fce9e028fd
The latter is the parameter I constructed myself: a2eddf288941afe50d99eaa20bdeedba
These two parameters are not the same after being encrypted by md5.

Submit form with Async POST

I have this React form which I want to submit:

import React, {useState} from 'react';

const FooterOne = ({ footerLight }) => {

  const handleFormSubmit = async (formValues) => {
    const { email } = formValues;
    const [response, setResponse] = useState("");

    const body = {
      email,
    };

    try {
      const result = await fetch(
          `https://.....lambda-url.us-east-1.on.aws/`,
          {
            method: "POST",
            body: JSON.stringify(body),
          }
      );

      const response = await result.text();
      setResponse(response);
    } catch (error) {
      // Print error
    }
  };

  return (
    <>        
      <form className='newsletter-form position-relative d-block d-lg-flex d-md-flex' onSubmit={handleFormSubmit} >
        <input
            type='text'
            className='input-newsletter form-control me-2'
            placeholder='Enter your email'
            name='email'
            required=''
            autoComplete='off'
            value={this.state.value} onChange={this.handleChange}
        />
        <input
            type='submit'
            value='Subscribe'
            data-wait='Please wait...'
            className='btn btn-primary mt-3 mt-lg-0 mt-md-0'
        />
      </form>                    
    </>
  );
};

export default FooterOne;

How I can submit the form with minimum html code change? Also how I can submit the form using async POST call? I don’t need to wait for BE response.