Richiamare form se da errore

Ho creato un form invio mail con css che funziona, sto mettendo dei codici php che in caso i campi non sono corretti, il form torna indietro invece di sparire nel nulla. C'è da dire che la pagina che contiene il form (scrivimi1) non ha gli header, ne body

Nel form che si chiama scrivimi1, c'è questo:

<?php

session_start();

?>

<!-- Questa funzione se c'è errore nei campi form, dopo l'invio fa ritornare e riaprire il form Scrivimi1 --> 

<?php 

function ritornaScriv(){ 

if(isset($_GET[ritorna_scrivimi-rit])) { 

?> 

<script language="JavaScript" type="text/javascript"> 

document.getElementById('bg-Scrivimi1').style.display='block'; 

document.getElementById('chiudi-Scrivimi1').style.display='block'; 

document.getElementById('popup-Scrivimi1').style.display='block'; 

</script> 

<?php    

   } 

} 

?>

Mentre nella pag. che elabora che si chiama scrivimi2, c'è questo:

...

if ($errore):

$ritenta="<META http-equiv=\"REFRESH\" content=\"2; url=http://homepage.it?../ritorna_scrivimi-rit=1\">"; 

else:

$meta;

...

Se io metto questo nella home mi da errore:

<?php ritornaScriv(); ?>

inviato 5 anni fa
php
php
6
modificato 5 anni fa
X 0 X

Che errore?

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Che errore?

Fatal error: Call to undefined function ritornaScriv() in /membri2/photoman/index.php on line 133

risposto 5 anni fa
php
php
6
X 0 X

Nell'index.php c'è un include o un require del file che contiene la funzione che vuoi richiamare?

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Nell'index.php c'è un include o un require del file che contiene la funzione che vuoi richiamare?

Si, richiama tutta la pagina scrivimi1 che contiene il form

<div id="bg-Scrivimi1"><?php include("scrivimi1.php"); ?></div>
risposto 5 anni fa
php
php
6
X 0 X

Cerca di essere più preciso e completo, che se no ci dilunghiamo.

Hai fatto l'include, la funzione la chiami sopra o sotto l'include?

Infine: è bene cercare di mantenere in un file separato le sole funzioni, che fa da libreria, praticamente, poi includere la libreria all'inizio delle pagine php che devono utilizzare le funzioni al suo interno...si mantiene un certo ordine del codice.

Anche l'indentazione del codice: è una cosa importante per la sua leggibilità.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Cerca di essere più preciso e completo, che se no ci dilunghiamo.

Hai fatto l'include, la funzione la chiami sopra o sotto l'include?

Infine: è bene cercare di mantenere in un file separato le sole funzioni, che fa da libreria, praticamente, poi includere la libreria all'inizio delle pagine php che devono utilizzare le funzioni al suo interno...si mantiene un certo ordine del codice.

Anche l'indentazione del codice: è una cosa importante per la sua leggibilità.

la funzione la richiamo sopra

<body>
<?php ritornaScriv(); ?>
<div id="bg-Scrivimi1"><?php include("scrivimi1.php"); ?></div>
risposto 5 anni fa
php
php
6
X 0 X

Mi sembra ovvio che da errore...non sono rispettati i criteri di visibilità...

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Mi sembra ovvio che da errore...non sono rispettati i criteri di visibilità...

Cioè...spiegami

risposto 5 anni fa
php
php
6
X 0 X

Scusa "php"...questa è la base della programmazione...

Come puoi pretendere che il php conosca la funzione da te indicata se prima non gliela fai conoscere?

Lui esegue il tuo codice in ordine, non per magia, esegue le istruzioni che gli fornisci in ordine, dall'inizio alla fine del file, non dalla fine all'inizio del file...

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Scusa "php"...questa è la base della programmazione...

Come puoi pretendere che il php conosca la funzione da te indicata se prima non gliela fai conoscere?

Lui esegue il tuo codice in ordine, non per magia, esegue le istruzioni che gli fornisci in ordine, dall'inizio alla fine del file, non dalla fine all'inizio del file...

Non sono molto esperto...dici che le devo mettere ad inizio pagina?

risposto 5 anni fa
php
php
6
X 0 X

Ho già risposto anche a questa tua domanda...rileggi attentamente.

Per lo meno devi far sapere al php cosa fa quella funzione prima di richiamarla nel tuo codice, puoi inserirlo nella riga prima o all'inizio del file, dipenderà da te come vuoi agire.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ho già risposto anche a questa tua domanda...rileggi attentamente.

Per lo meno devi far sapere al php cosa fa quella funzione prima di richiamarla nel tuo codice, puoi inserirlo nella riga prima o all'inizio del file, dipenderà da te come vuoi agire.

Se la metto così non da errore, però non richiama il form in caso di errore nella compilazione

<body>

<div id="bg-Scrivimi1"><?php include("scrivimi1.php"); ?></div>

<?php ritornaScriv(); ?>

risposto 5 anni fa
php
php
6
X 0 X

Ti consiglio di fermarti 30 minuti e poi rileggere tutto il tuo codice con attenzione. Credo stai facendo un po' di errori con le varie chiamate di funzioni e non.

Rivedi la logica di funzionamento del tuo script.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

Ti consiglio di fermarti 30 minuti e poi rileggere tutto il tuo codice con attenzione. Credo stai facendo un po' di errori con le varie chiamate di funzioni e non.

Rivedi la logica di funzionamento del tuo script.

Cosi mi sembra corretto, non da errore ma non richiama il form, ho provato a metterli anche a inizio pagina

<div id="bg-Scrivimi1"><?php include("scrivimi1.php"); ?></div>
<?php ritornaScriv(); ?>
risposto 5 anni fa
php
php
6
X 0 X

scrivimi2 dove viene inserita? E' li che hai il codice dell'errore no?

risposto 5 anni fa
Mario Santagiuliana
X 0 X
scrivimi2 dove viene inserita? E' li che hai il codice dell'errore no?

Si questo:

...
if ($errore):
$ritenta="<META http-equiv=\"REFRESH\" content=\"2; url=http://www.home.it?../ritorna_scrivimi-rit=1\">"; 
else:
$meta;
...
risposto 5 anni fa
php
php
6
X 0 X

Questo invece è all'inizio di scrivimi1, il file che contiene il form

<?php
session_start();
?>

<?php 
function ritornaScriv(){ 
if(isset($_GET[ritorna_scrivimi-rit])) { 
?> 
<script language="JavaScript" type="text/javascript"> 
document.getElementById('bg-Scrivimi1').style.display='block'; 
document.getElementById('chiudi-Scrivimi1').style.display='block'; 
document.getElementById('popup-Scrivimi1').style.display='block'; 
</script> 
<?php    
   } 
} 
?>
risposto 5 anni fa
php
php
6
X 0 X

Non stai richiamando nessun alert mi pare, non stai includendo nessun file scrivimi2.

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Non stai richiamando nessun alert mi pare, non stai includendo nessun file scrivimi2.

Se in scrivimi1.php inserisco <?php include("scrivimi2.php"); ?> torna indietro la pagina con gli errori a video, non il form

risposto 5 anni fa
php
php
6
X 0 X

Non stai presentando nessun form, in scrivimi1 e scrivimi2 non c'è nessun form...solo codice html o html contenente javascript.

risposto 5 anni fa
Mario Santagiuliana
X 0 X
Non stai presentando nessun form, in scrivimi1 e scrivimi2 non c'è nessun form...solo codice html o html contenente javascript.

Com,e...il form lo puoi vedere dalla mia home, clicca su @mail

risposto 5 anni fa
php
php
6
X 0 X

@php

sei poco preciso nel porre le tue domande, non porti attenzione al modo di scrivere, non fornisci tutti gli elementi necessari a comprendere il problema.

Per me potevi benissimo fare richieste per uno script che non centrava niente con il tuo sito, come posso supporre che sia il tuo sito web personale "@mail"???

Con questo chiudo qui il mio supporto a questa discussione.

risposto 5 anni fa
Mario Santagiuliana
X 0 X

@php

sei poco preciso nel porre le tue domande, non porti attenzione al modo di scrivere, non fornisci tutti gli elementi necessari a comprendere il problema.

Per me potevi benissimo fare richieste per uno script che non centrava niente con il tuo sito, come posso supporre che sia il tuo sito web personale "@mail"???

Con questo chiudo qui il mio supporto a questa discussione.

Non posso nemmeno postare pagine intere...

risposto 5 anni fa
php
php
6
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda