2013-02-28 16 views
9

Mi chiedo quale sia il modo più semplice per fare diciamo un modulo con utente/passa e invia pulsante con php ma dopo averlo inviato torna alla stessa pagina invece di andare a un'altra pagina php.php, modulo utilizzando la stessa pagina dopo la presentazione

sto pensando di se/else, ma un po 'confuso come impostarlo dopo lotti tentativi, ma ancora non ottenere il risultato voluto

strano ho tutti quei ragazzi detto prima io posted..but ...>. < " diciamo solo qualcosa di semplice come questo ...

ma voglio anche di impostare se nulla viene inserito poi compila viene cliccato ci sarà un errore .... dovrebbe essere qualcosa di facile, ma io don' t so perché non riesco a capirlo

<?php 
function userPass() 
{ 
    echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">"; 
    echo "<input type='text' name='user' /><br/>"; 
    echo "<input type='text' name='pass' /><br/>"; 
    echo "<input type='submit' value='Login' />"; 
} 
    if(empty($_POST["user"])) 
    { 
     userPass(); 
    } 
    if(!(empty($_POST["user"]))) 
    { 
     if($_POST["user"] == "comp") 
     { 
      echo "Welcome comp"; 
     } 
     else 
     { 
      echo "Wrong user"; 
     } 
    } 
    ?> 
+0

cos'è "risultato desiderato"? –

+0

pubblica qualche tentativo del tuo codice. proveremo a risolvere il problema ... –

+0

imposta l'azione modulo a "" "' – deadlock

risposta

3

se la pagina corrente è index.php, uso index.php nel tag form come il valore delle azioni

in questo modo:.

<form action="index.php" method="post"> 
</form> 

u può verificare la presenza di formulario presentato dal mettendo:

if(isset($_POST)){ 
... 
} 

nella parte superiore della pagina

+0

Impostazione l'azione su PHP_filename (ad esempio index.php) va ovviamente dicendo, quindi non cambia nulla. – Apostolos

0

È possibile definire nella presentazione sotto forma:

<form method=get action=index.php > 

Si può anche lasciare l'azione fuori del tutto, e pubblicherà automaticamente/otterrà quello stesso file.

2

Basta usare sotto sintassi

<form method="post" action=""> 

È possibile controllare se post è impostato utilizzando il metodo() isset.

+3

Non conforme a w3c! Valore errato '' per l''azione' attributo 'sull'elemento' modulo ': Deve essere non vuoto. – Pete

1

Questo è un codice che ho creato per controllare l'apprendimento dei campi di input richiesti che soddisfano i requisiti. quando è così, i dati saranno inviati al database. se non soddisfa i requisiti, ci sarà un messaggio può essere visualizzato nella parte superiore della pagina

<?php 
if (!isset($_POST['submitform'])) { 
} 
else 
{ 
$_SESSION['firstname'] = $_POST['firstname']; 
$_SESSION['lastname'] = $_POST['lastname']; 
$_SESSION['email'] = $_POST['email']; 
$_SESSION['mobile'] = $_POST['mobile']; 
$_SESSION['telephone'] = $_POST['telephone']; 
$_SESSION['place'] = $_POST['place']; 
$_SESSION['street'] = $_POST['street']; 
$_SESSION['housenumber'] = $_POST['housenumber']; 
$_SESSION['gender'] = $_POST['gender']; 

if (empty($_POST['firstname']) or empty($_POST['lastname']) or empty($_POST['email']) or empty($_POST['mobile'])or empty($_POST['telephone']) or empty($_POST['place']) 
or empty($_POST['street']) or empty($_POST['housenumber']) or !isset($_POST['gender'])) 
{ 
    echo "Sending denied"; 
} 
else 
{  
    require 'database.php'; 

    header('Location: succes.php'); 
} ?> 

Spero che si tratta di informazioni utili per voi

1
<?php function userPass() { 
    echo "<form method='post' action=" . $_SERVER['PHP_SELF'] . ">"; 
    echo "<input type='text' name='user' /><br/>"; 
    echo "<input type='text' name='pass' /><br/>"; 
    echo "<input type='submit' value='Login' />"; } 
    if(empty($_POST["user"])) 
    { 
     userPass(); 
    } 
    *if(!(empty($_POST["user"])))* 
    { 
     if($_POST["user"] == "comp") 
     { 
      echo "Welcome comp"; 
     } 
     else 
     { 
      echo "Wrong user"; 
     } 
    } 
    ?> 

Questa parte del codice è sbagliato, dovresti digitare: if (! empty ($ _ POST ["user"]))

5

Le altre risposte sono corrette; hai solo bisogno di rinviare l'utente alla tua pagina corrente nella proprietà "action". È possibile verificare se lo hanno fatto utilizzando "isset".

Una cosa che mi sorprende non è stata ancora menzionata è che il tuo input non è stato disinfettato, e ti stai preparando per il disastro.enorme vulnerabilità iniezione in action:

$_SERVER['PHP_SELF'] 

Se non disinfettare questo, allora qualcuno può semplicemente modificare l'URL che vedono e lo script PHP poveri non si sa niente di meglio di processo che per come costante SELF.

In altre parole, è assolutamente necessario utilizzare una funzione htmlspecialchars() per codificare html tale parametro. Con questo, il tuo action dovrebbe apparire più come htmlspecialchars($_SERVER['PHP_SELF']).

+0

Questo è abbastanza irrilevante per la domanda, non è vero? – Apostolos

+0

@Apostolos È abbastanza rilevante per il suo caso d'uso, non è vero? – forresthopkinsa

0
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post"> 

Questo è esattamente il modo in cui si lavora con il modulo per ricaricare la pagina quando si fa clic sul pulsante di invio all'interno di questo modulo.

COMPLEMENTARI: Aggiungi required a tutti gli input si voleva essere richiesto o verificare se è vuota.

+0

potresti fornire ulteriori informazioni sul motivo per cui questa è una risposta valida? – slfan

+0

esattamente come si crea il tuo modulo. – Jei

0

questo codice vi aiuterà a

<form action="<?= $_SERVER['REQUEST_URI'] ?>" method="post"> 

o si può solo fare questo:

<form action="" method="post"> 

Grazie ....

0

Penso che tutti hanno perso la domanda effettiva, vale a dire se c'è un modo per rimanere nella stessa pagina dopo aver inviato un modulo. La risposta è NO. Una volta inviato un modulo, indipendentemente dal metodo POST o GET, e ovviamente dal presupposto che si stia utilizzando $ _SERVER ['PHP_SELF'] o un'azione vuota, ecc. - viene aperta automaticamente una nuova pagina. Questo vale almeno per PHP. (Ho provato un sacco di modi diversi con XAMPP.) Ora non parlo di altri linguaggi di scripting.

Problemi correlati