Advertisement
Gxbriel_99

Untitled

Sep 24th, 2024
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.73 KB | None | 0 0
  1. <?php
  2. require_once('./collegamentoDb-MysSQL.php');
  3.  
  4. if ($_SERVER["REQUEST_METHOD"] == "POST") {
  5.  
  6. $formMessage = '';
  7.  
  8. // Prepara la query per inserire i dati nella tabella contattami
  9. $sql = 'INSERT INTO contattami (nome, cognome, email, messaggio) VALUES (?, ?, ?, ?)';
  10. $query = $mysqli->prepare($sql);
  11.  
  12. // Controlla se la preparazione della query è riuscita
  13. if (!$query) {
  14. die("Errore nella preparazione della query di inserimento: " . $mysqli->error);
  15. }
  16.  
  17. // Raccogli i dati dal form
  18. $nome = $_POST['nome'];
  19. $cognome = $_POST['cognome'];
  20. $email = $_POST['email']; // Corretto l'errore di battitura
  21. $msg = $_POST['msg'];
  22.  
  23. // Esegui l'inserimento nella tabella
  24. $query->bind_param('ssss', $nome, $cognome, $email, $msg);
  25.  
  26. if ($query->execute()) {
  27. // Ottieni l'ultimo ID inserito
  28. $last_id = $mysqli->insert_id;
  29. $formMessage = '<div style="color: green;">Dati inviati con successo!</div>';
  30. // Esegui il redirect per evitare l'inserimento duplicato
  31. header("Location: " . $_SERVER['PHP_SELF']);
  32. exit(); // Assicurati di terminare lo script dopo il redirect
  33. } else {
  34. $formMessage = '<div style="color: red;">Errore durante l\'inserimento: ' . $query->error . '</div>';
  35. echo "Errore durante l'inserimento dei dati: " . $query->error;
  36. }
  37.  
  38. // Chiudi la query
  39. $query->close();
  40. }
  41. ?>
  42.  
  43.  
  44.  
  45. <!DOCTYPE html>
  46. <html lang="it">
  47.  
  48. <head>
  49. <meta charset="UTF-8" />
  50. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  51. <link rel="stylesheet" href="./style.min.css">
  52. <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.7.0/css/font-awesome.min.css">
  53. <script src="./script_index.js" type="module"></script>
  54. <title>HomePage</title>
  55. </head>
  56.  
  57. <body>
  58. <header>
  59. <nav class="hamburger-menu" id="hamburger-menu">
  60. <a href="#hamburger-menu" class="label-controllo">
  61. <span></span>
  62. </a>
  63. <a href="#" class="label-controlloChiuso">
  64. <span></span>
  65. </a>
  66. <ul id="menu">
  67. <li><a href="./index.php#home" class="voci-menu">Home</a></li>
  68. <li><a href="./index.php#about" class="voci-menu">About me</a></li>
  69. <li><a href="./index.php#portfolio" class="voci-menu">Servizi</a></li>
  70. <li><a href="./portfolio.php" class="voci-menu">Portfolio</a></li>
  71. <li><a href="./index.php#contattami" class="voci-menu">Contact Me</a></li>
  72. </ul>
  73. </nav>
  74. </header>
  75. <!-- qui il menu si chiude a scomparsa -->
  76.  
  77. <a id="home"></a>
  78. <div id="container">
  79. <div class="text-main-container">
  80. <h1>
  81. <span id="saluto"></span>, <br>
  82. MI CHIAMO <span class="span2">GABRIEL</span> E <br>SONO UN <span class="span2">FULLSTACK DEVELOPER</span> .
  83. </h1>
  84. <p>-SEDE A ROME | ITALIA-</p>
  85. </div>
  86. </div>
  87. <a id="about"></a>
  88. <div id="aboutme-container">
  89. <div class="img-aboutme"></div>
  90. <div class="text-aboutme">
  91. <h2>About Me</h2>
  92. <p>
  93. Sono sempre stato affascinato dalla
  94. tecnologia <br>
  95. in tutte le sue forme. Amo le sfide, ed è per questo che ho deciso di
  96. diventare uno sviluppatore fullstack. <br>
  97. Oltre alla programmazione, ho una grande passione per l'arte e il
  98. design, e presto particolare attenzione alle CTA, all'UX e
  99. all'ottimizzazione dell'esperienza utente. <br>
  100. Sarò al tuo fianco nello sviluppo del tuo progetto, assicurandomi che
  101. ogni dettaglio sia perfetto. "Innovare significa trasformare
  102. l'ordinario in straordinario.
  103. </p>
  104. <a href="./document/CV Da Developer.pdf" target="_blank">Leggi il mio curriculum</a>
  105. </div>
  106. </div>
  107. <a id="portfolio"></a>
  108. <div id="porfolio">
  109. <div id="ContentPortfolio">
  110. <div id="TextPortfolio">
  111. <h2>PORTFOLIO</h2>
  112. <p>Scopri il mio mondo di creazioni digitali, dove l'arte del codice incontra l'innovazione. Attraverso l'uso sapiente di linguaggi come HTML, CSS, JavaScript e PHP, do vita a progetti unici che combinano design elegante e funzionalità impeccabile. Ogni linea di codice è pensata per offrire esperienze web fluide e coinvolgenti, dal layout responsive alle animazioni interattive. Che tu stia cercando un sito web accattivante o un'applicazione web potente, esplora i miei lavori per vedere come trasformo idee in realtà digitale. Non perdere l'occasione di vedere come la tecnologia può diventare arte!</p>
  113. <a href="./portfolio.php">Guarda i miei lavori</a>
  114. </div>
  115. <div id="linguaggi">
  116. <a href="https://it.wikipedia.org/wiki/HTML5" class="linguaggio html" target="_blank">
  117. <img src="./img/html.png" alt="HTML">
  118. <p>HTML5</p>
  119. </a>
  120. <a href="https://it.wikipedia.org/wiki/CSS" class="linguaggio css" target="_blank">
  121. <img src="./img/css.png" alt="CSS">
  122. <p>CSS/SCSS </p>
  123. </a>
  124. <a href="https://it.wikipedia.org/wiki/JavaScript" class="linguaggio js" target="_blank">
  125. <img src="./img/js.png" alt="html5">
  126. <p>JAVASCRIPT</p>
  127. </a>
  128. <a href="https://it.wikipedia.org/wiki/PHP" class="linguaggio php" target="_blank">
  129. <img src="./img/php.png" alt="html5">
  130. <p>PHP</p>
  131. </a>
  132. </div>
  133. </div>
  134. </div>
  135. <a id="contattami"></a>
  136. <div id="contact">
  137. <ul>
  138. <li>
  139. <img src="./img/Logo-Gmail.png" alt="Gmail">
  140. <div class="text_Social">
  141. <p> Email:</p>
  142. </div>
  143. </li>
  144. <li>
  145. <img src="./img/Logo-Cell.png" alt="Cellulare">
  146. <div class="text_Social">
  147. <p> Cellulare: </p>
  148. <p> +39 3770803501 </p>
  149. </div>
  150. </li>
  151. <li>
  152. <img src="./img/Logo-Linkedin.png" alt="Linkedin">
  153. <div class="text_Social">
  154. <p> Linkedin: </p>
  155. <p> Gabriel Perini </p>
  156. </div>
  157. </li>
  158. <li>
  159. <img src="./img/Logo-IG.png" alt="Instagram">
  160. <div class="text_Social">
  161. <p> Instagram: </p>
  162. <p> Gabriel Perini </p>
  163. </div>
  164. </li>
  165. <li>
  166. <img src="./img/facebook._negativepng.png" alt="facebook">
  167. <div class="text_Social">
  168. <p> facebook: </p>
  169. <p> Gabriel Perini </p>
  170. </div>
  171. </li>
  172. </ul>
  173. <form action="#" method="post" novalidate id="client_Form_Message">
  174. <h2>Contattami</h2>
  175. <input type="text" placeholder="Nome" name="nome" id="nome" required>
  176. <div id="feedbackNome"></div>
  177. <input type="text" placeholder="Cognome" name="cognome" id="cognome" required>
  178. <div id="feedbackCognome"></div>
  179. <input type="email" placeholder="Email" name="email" id="email" required>
  180. <div id="feedbackEmail"></div>
  181. <textarea name="msg" id="msg" placeholder="Scrivi qui..." maxlength="255"></textarea>
  182. <div id="feedbackMsg"></div>
  183. <div id="termini_e_condizioni">
  184. <label for="policy">Accetto i <a href="#">termini e le condizioni d'uso</a></label>
  185. <input type="checkbox" id="policy" name="policy" required>
  186. </div>
  187. <div id="feedbackPolicy"></div>
  188. <div id="bottoni_Form">
  189. <button type="submit" name="Invia" id="invia">Invia</button>
  190. <button type="reset" name="pulisci">Pulisci</button>
  191. </div>
  192. </form>
  193. </div>
  194.  
  195. <footer>
  196. <ul id="Footer-Menu">
  197. <li><a href="./index.php#home">Home</a></li>
  198. <li><a href="./index.php#about">About Me</a></li>
  199. <li><a href="./index.php#portfolio">Portfolio</a></li>
  200. <li><a href="./index.php#contattami">Contact Me</a></li>
  201.  
  202. </ul>
  203. <ul id="Social-Links">
  204. <li><a href="https://www.instagram.com/gxbriel.p99/" target="_blank"><img src="./img/Logo-IG.negative.png" alt="ig" ></a></li>
  205. <li><a href="https://www.facebook.com/gabriel.perini99" target="_blank"><img src="./img/facebook.png" alt="ig"></a></li>
  206. <li><a href="https://www.linkedin.com/in/gabriel-perini99?utm_source=share&utm_campaign=share_via&utm_content=profile&utm_medium=android_app" target="_blank"><img src="./img/Logo-Linkedin.negative.png" alt="ig"></a></li>
  207. </ul>
  208. <p>Copyright ©2024 GabrielPerini®. Tutti i diritti riservati.</p>
  209. </footer>
  210. </body>
  211.  
  212. </html>
  213.  
  214.  
  215. ----scss------
  216. *,
  217. *::before,
  218. *::after {
  219. margin: 0;
  220. padding: 0;
  221. box-sizing: border-box;
  222. }
  223.  
  224.  
  225. /* menu hamburger */
  226. nav.hamburger-menu {
  227. /* Stile per la label che attiva il menu (hamburger icon) */
  228. .label-controllo {
  229. position: fixed; /* Fissato in una posizione */
  230. top: 20px; /* Distanza dal bordo superiore */
  231. left: 10px; /* Distanza dal bordo sinistro */
  232. width: 30px; /* Larghezza dell'icona */
  233. height: 30px; /* Altezza dell'icona */
  234. cursor: pointer; /* Trasforma il cursore in una mano */
  235. z-index: 300; /* Mantiene l'icona sopra gli altri elementi */
  236.  
  237. /* Stili per le tre linee dell'icona hamburger */
  238. span,
  239. span::before,
  240. span::after {
  241. position: absolute;
  242. top: 10px;
  243. width: 25px; /* Larghezza delle linee */
  244. height: 2px; /* Spessore delle linee */
  245. background-color: darkgoldenrod; /* Colore delle linee */
  246. }
  247.  
  248. /* Linea superiore dell'hamburger */
  249. span::before {
  250. content: ""; /* Pseudo-elemento */
  251. top: -8px; /* Posiziona la linea sopra quella centrale */
  252. }
  253. /* Linea inferiore dell'hamburger */
  254. span::after {
  255. content: ""; /* Pseudo-elemento */
  256. top: 8px; /* Posiziona la linea sotto quella centrale */
  257. }
  258. }
  259. /* Stile per l'icona di chiusura (x) quando il menu è aperto */
  260. .label-controlloChiuso {
  261. display: none; /* Nasconde l'icona finché il menu non è aperto */
  262. position: fixed;
  263. top: 30px; /* posizione dell'icona */
  264. left: 20px;
  265. width: 30px; /* Larghezza della croce */
  266. height: 30px; /* Altezza della croce */
  267. cursor: pointer;
  268. z-index: 300; /* Mantiene la croce sopra gli altri elementi */
  269.  
  270. /* Stili per la croce */
  271. span,
  272. span::before,
  273. span::after {
  274. position: absolute;
  275. width: 30px; /* Larghezza delle linee */
  276. height: 2px; /* Spessore delle linee */
  277. background-color: darkgoldenrod; /* Colore delle linee */
  278. top: 10px; /* posizione dell'icona */
  279. z-index: 302;
  280. }
  281.  
  282. /* Linea superiore della croce */
  283. span::before {
  284. content: ""; /* Pseudo-elemento */
  285. top: -8px; /* Posiziona la linea sopra quella centrale */
  286. }
  287.  
  288. /* Linea inferiore della croce */
  289. span::after {
  290. content: ""; /* Pseudo-elemento */
  291. top: 8px; /* Posiziona la linea sotto quella centrale */
  292. }
  293. }
  294. /* Stile per il menu che si apre lateralmente */
  295. #menu {
  296. display: block;
  297. position: fixed;
  298. left: -100%; /* Menu nascosto fuori dallo schermo a sinistra */
  299. width: 30%; /* Larghezza del menu */
  300. height: 100vh; /* Occupa tutta l'altezza della finestra */
  301. padding: 80px 0; /* Spaziatura interna */
  302. backdrop-filter: blur(20px);
  303. box-shadow: 6px 1.5px 8.5px 1.5px #4e4d4d;
  304. box-shadow: 2px 2px 6px rgba(0, 0, 0, 0.4); /* Ombra per il menu */
  305. transition-duration: 0.25s; /* Transizione dolce quando il menu si apre */
  306. z-index: 202;
  307.  
  308. /* Stile per le voci di menu */
  309. .voci-menu {
  310. display: block;
  311. padding: 12px 24px; /* Spaziatura interna delle voci di menu */
  312. color: black; /* Colore del testo delle voci di menu */
  313. font-family: "Franklin Gothic Medium", "Arial Narrow", Arial, sans-serif;
  314. font-size: 30px; /* Dimensione del testo */
  315. font-weight: 600; /* Spessore del testo */
  316. text-decoration: none;
  317. transition-duration: 0.25s; /* Transizione dolce per l'hover */
  318. z-index: 202;
  319.  
  320. &:hover {
  321. padding-left: 60px;
  322. color: darkgoldenrod; /* Testo rosso al passaggio del mouse */
  323. z-index: 202;
  324. }
  325. }
  326.  
  327. @media all and (max-width: 426px) {
  328. width: 100%;
  329. height: 100%;
  330. z-index: 202;
  331. }
  332. }
  333. /* Effetti quando il menu è attivato tramite il target */
  334. &:target {
  335. /* Nascondi l'icona hamburger quando il menu è aperto */
  336. .label-controllo {
  337. display: none;
  338. }
  339.  
  340. /* Mostra l'icona di chiusura (croce) */
  341. .label-controlloChiuso {
  342. display: block;
  343.  
  344. /* Trasforma l'icona hamburger in una croce */
  345. span {
  346. transform: rotate(45deg); /* Ruota la linea centrale */
  347.  
  348. &::before {
  349. top: 0;
  350. transform: rotate(0deg); /* Mantiene la linea orizzontale */
  351. }
  352.  
  353. &::after {
  354. top: 0;
  355. transform: rotate(90deg); /* Ruota la linea inferiore di 90 gradi */
  356. }
  357. }
  358. }
  359.  
  360. /* Porta il menu a sinistra quando è attivato */
  361. #menu {
  362. left: 0 !important;
  363. }
  364. }
  365. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement