2015-09-10 17 views
6

Ho un modulo regolare sul mio file php, dopo che è stato inviato deve echeggiare un messaggio. Inserendo qualcosa nell'azione = "", l'unico modo in cui posso pensare di visualizzare un messaggio è archiviarlo in una sessione e visualizzarlo quando la pagina viene caricata se c'è una sessione impostata.Valore errato per l'azione attributo sul modulo elemento: Deve essere non vuoto

Tutto funziona bene così com'è in questo momento, ma validatore W3C dice che ho un errore:

Bad value for attribute action on element form: Must be non-empty.

Come posso risolvere questo errore, senza dover mettere # o index.php nel campo di azione?

EDIT:

<form action="" method="post"> 
    <input type="email" name="email" placeholder="Enter your email"> 
    <input type="submit" name="submit" value="SEND"> 
</form> 

<?php 
    if(isset($_POST['submit']) && isset($_POST['email'])){   
     if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){ 
      echo 'This isn\'t a valid email'; 
     }else{ 
      echo 'Great'; 
     } 
    } 
?> 
+1

* scratch che * >> non stai usando '

"' Se il tuo modulo non è già impostato in PHP. –

+1

Non è chiaro con cosa stai lavorando. Puoi pubblicare altro codice? Dov'è il codice che stai targeting, nella stessa pagina? –

+0

@ Fred-i-sì sto usando action = "" adesso, e l'errore dice che non può essere vuoto. – BragDeal

risposta

6

Manutentore del W3C HTML Checker (validatore) qui. Se il tuo obiettivo è solo quello di ottenere che il correttore non emetta tale errore, un modo per farlo è quello di andare avanti e mettere # come valore per l'attributo action nel tuo sorgente HTML, ma poi rimuoverlo usando JavaScript, come questo:

<form action="#" method="post"> 
    <script>document.querySelector("form").setAttribute("action", "")</script> 
    <input type="email" name="email" placeholder="Enter your email"> 
    <input type="submit" name="submit" value="SEND"> 
</form> 
+0

Una soluzione alternativa per "validatore" non funzionante. –

6

Nel usando il validatore W3C https://validator.w3.org/, è stato presentato con il seguente:

Line 1, Column 1: no document type declaration; will parse without validation

The document type could not be determined, because the document had no correct DOCTYPE declaration. The document does not look like HTML, therefore automatic fallback could not be performed, and the document was only checked against basic markup syntax.

Learn how to add a doctype to your document from our FAQ, or use the validator's Document Type option to validate your document against a specific Document Type.

  • Insieme a un bel po 'di più, ma io non includerli qui .

La soluzione:

è necessario dichiarare un doctype valido e <head><title> tag, in quanto ciò anche produrre errori se omesso.

Quindi utilizzare action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" come indicato nei commenti.

Il codice sarà ora confermare con il seguente:

<!DOCTYPE html> 

<head> 
<title>Test page</title> 
</head> 

<body> 

<form action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" method="post"> 
    <input type="email" name="email" placeholder="Enter your email"> 
    <input type="submit" name="submit" value="SEND"> 
</form> 

</body> 
</html> 

<?php 
    if(isset($_POST['submit']) && isset($_POST['email'])){   
     if(filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) === false){ 
      echo 'This isn\'t a valid email'; 
     }else{ 
      echo 'Great'; 
     } 
    } 
?> 
  • Nota a margine: Si può avere il PHP in cima anche, entrambi i metodi validati correttamente.

Utilizzando action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>" ha prodotto i seguenti/simile nel codice HTML:

<form action="/folder/file.php" method="post">

Mentre omettendo ha prodotto action="" che il validatore W3 sembra trovare valido e è alla ricerca di un file valido per il l'azione del modulo.


Edit:

Alla luce della risposta di recente accettato (il mio essere non accettato), Do atto che il codice potrebbe non funzionare correttamente deve essere disabilitato JavaScript.

+0

Ho già il e il . L'unico problema con questo è l'eco "Grande"; non viene visualizzato dopo l'invio. La pagina si aggiorna e questo è tutto – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/3902766/">BragDeal</a></span> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">@BragDeal: si sta chiedendo: 'Tutto funziona bene come è adesso ma il validatore w3c dice che ho un errore:' – <span class="text-secondary"> <small> <span></span> </small> </span> </p> </div> </div> </div> <div itemprop="comment" class="post-comment"> <div class="row"> <div class="col-lg-1"><span class="text-secondary">+0</span></div> <div class="col-lg-11"> <p class="commenttext">sì sì, se faccio quello che hai suggerito, l'errore va via ma "tutto" non funzionerà più bene come il messaggio di eco non apparirà come voglio. Immagino che memorizzare il messaggio in una sessione sia l'unico modo per aggirare questo errore. – <span class="text-secondary"> <small> <a rel="noopener" target="_blank" href="https://stackoverflow.com/users/3902766/">BragDeal</a></span> <span></span> </small> </span> </p> </div> </div> </div> </div> </div> </article> </div> <div class="clearfix"> </div> <div> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-format="autorelaxed" data-ad-client="ca-pub-6208739752673518" data-ad-slot="1575177025"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="padding-top-10"></div> </div> </div> <script type="text/javascript" src="http://img.uwenku.com/uwenku/script/side.js?t=1644592048671"></script> <script type="text/javascript" src="http://img.uwenku.com/uwenku/plugin/highlight/highlight.pack.js"></script> <link href="http://img.uwenku.com/uwenku/plugin/highlight/styles/docco.css" media="screen" rel="stylesheet" type="text/css" /> <script type="text/javascript"> $('pre').each(function(i, e) { hljs.highlightBlock(e, "<span class='indent'> </span>", false) }); </script> <div class="col-lg-3 col-md-4 col-sm-5"> <div id="rightTop"> <div class="row"> <script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script> <ins class="adsbygoogle" style="display:block" data-ad-client="ca-pub-6208739752673518" data-ad-slot="5415218910" data-ad-format="auto" data-full-width-responsive="true"></ins> <script> (adsbygoogle = window.adsbygoogle || []).push({}); </script> </div> <div class="row sidebar panel panel-default"> <div class="panel-heading font-bold"> Ultima domanda </div> <div class="m-b-sm m-t-sm clearfix"> <ul class="side_article_list"> <li class="side_article_list_item"> 1. <a href="http://it.uwenku.com/question/p-wwznhuvl-m.html" target="_blank" title="Nascondere gli elementi dietro DIV trasparente ma non lo sfondo"> Nascondere gli elementi dietro DIV trasparente ma non lo sfondo </a> </li> <li class="side_article_list_item"> 2. <a href="http://it.uwenku.com/question/p-huwdbtum-bz.html" target="_blank" title="Come eseguire iterazioni su serie Pandas generate da groupby(). Size()"> Come eseguire iterazioni su serie Pandas generate da groupby(). Size() </a> </li> <li class="side_article_list_item"> 3. <a href="http://it.uwenku.com/question/p-atusvwgd-t.html" target="_blank" title="Come serializzare/deserializzare Pandas DataFrame da e verso ProtoBuf/Gzip in un'app RESTful Flask?"> Come serializzare/deserializzare Pandas DataFrame da e verso ProtoBuf/Gzip in un'app RESTful Flask? </a> </li> <li class="side_article_list_item"> 4. <a href="http://it.uwenku.com/question/p-dobgpbmm-cd.html" target="_blank" title="CGO delocalizzazione non riconosciuta (0x2a) nella sezione `.text'"> CGO delocalizzazione non riconosciuta (0x2a) nella sezione `.text' </a> </li> <li class="side_article_list_item"> 5. <a href="http://it.uwenku.com/question/p-fpzhsnon-by.html" target="_blank" title="Come modificare un oggetto non esposto in un pacchetto"> Come modificare un oggetto non esposto in un pacchetto </a> </li> <li class="side_article_list_item"> 6. <a href="http://it.uwenku.com/question/p-qabdjzeq-s.html" target="_blank" title="Perché sto ottenendo chiavi duplicate in Java HashMap?"> Perché sto ottenendo chiavi duplicate in Java HashMap? </a> </li> <li class="side_article_list_item"> 7. <a href="http://it.uwenku.com/question/p-pgrxkbqp-bx.html" target="_blank" title="Firebase Crea utente con e-mail, la password, il nome visualizzato e la foto url"> Firebase Crea utente con e-mail, la password, il nome visualizzato e la foto url </a> </li> <li class="side_article_list_item"> 8. <a href="http://it.uwenku.com/question/p-rliaxosh-cb.html" target="_blank" title="Diagrammi Highcharts Valori reciproci per altezza colonna"> Diagrammi Highcharts Valori reciproci per altezza colonna </a> </li> <li class="side_article_list_item"> 9. <a href="http://it.uwenku.com/question/p-agpnaqql-cd.html" target="_blank" title="Impedire a GCC LTO di eliminare la funzione"> Impedire a GCC LTO di eliminare la funzione </a> </li> <li class="side_article_list_item"> 10. <a href="http://it.uwenku.com/question/p-akyozvhz-ca.html" target="_blank" title="Calcolare il numero di giorni esclusa la domenica in Hive"> Calcolare il numero di giorni esclusa la domenica in Hive </a> </li> </ul> </div> </div> </div> <p class="article-nav-bar"></p> <div class="row sidebar article-nav"> <div class="row box_white visible-sm visible-md visible-lg margin-zero"> <div class="top"> <h3 class="title"><i class="glyphicon glyphicon-th-list"></i> Problemi correlati</h3> </div> <div class="article-relative-content"> <ul class="side_article_list"> <li class="side_article_list_item">Nessun problema correlato^_^</li> </ul> </div> </div> </div> </div> </div> </div> </div><!-- wrap end--> <!-- footer --> <footer id="footer"> <div class="bg-simple lt"> <div class="container"> <div class="row padder-v m-t"> <div class="col-xs-8"> <ul class="list-inline"> <li><a href="http://it.uwenku.com/contact">Contattaci</a></li> <li>© 2020 IT.UWENKU.COM</li> <li><a target="_blank" href="https://beian.miit.gov.cn/">沪ICP备13005482号-4</a></li> <li><script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1280101193&web_id=1280101193"></script></li> <li><a href="http://www.uwenku.com/" target="_blank" title="优文库">简体中文</a></li> <li><a href="http://hk.uwenku.com/" target="_blank" title="優文庫">繁體中文</a></li> <li><a href="http://ru.uwenku.com/" target="_blank" title="поле вопросов и ответов">Русский</a></li> <li><a href="http://de.uwenku.com/" target="_blank" title="Frage - und - antwort - Park">Deutsch</a></li> <li><a href="http://es.uwenku.com/" target="_blank" title="Preguntas y respuestas">Español</a></li> <li><a href="http://hi.uwenku.com/" target="_blank" title="कार्यक्रम प्रश्न और उत्तर पार्क">हिन्दी</a></li> <li><a href="http://it.uwenku.com/" target="_blank" title="IL Programma di chiedere Park">Italiano</a></li> <li><a href="http://ja.uwenku.com/" target="_blank" title="プログラム問答園区">日本語</a></li> <li><a href="http://ko.uwenku.com/" target="_blank" title="프로그램 문답 단지">한국어</a></li> <li><a href="http://pl.uwenku.com/" target="_blank" title="program o park">Polski</a></li> <li><a href="http://tr.uwenku.com/" target="_blank" title="Program soru ve cevap parkı">Türkçe</a></li> <li><a href="http://vi.uwenku.com/" target="_blank" title="Đáp ứng viên">Tiếng Việt</a></li> <li><a href="http://fr.uwenku.com/" target="_blank" title="Programme interrogation Park">Française</a></li> </ul> </div> </div> </div> </div> </div> </footer> <!-- / footer --> <script> var _hmt = _hmt || []; (function() { var hm = document.createElement("script"); hm.src = "https://hm.baidu.com/hm.js?f78a970f17b19a79fc477a3378096f29"; var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(hm, s); })(); </script> </body> </html>