Προς το περιεχόμενο

Πως κάνω redirect σε μία σελίδα μετά το Submit;


Theostaltos

Προτεινόμενες αναρτήσεις

Καλησπέρα,

 

Κατασκευάζω μία προσωπική σελίδα και αντιμετωπίζω ένα πρόβλημα. Στην Φόρμα Επικοινωνίας, συμπληρώνω τα στοιχεία, πατάω "Αποστολή", τα πάντα έρχονται κανονικά στο mail μου, αλλά όταν πατάω "Αποστολή" με πηγαίνει σε μία λευκή σελίδα. Θα ήθελα να μάθω πως να με πηγαίνει σε μία δική μου σελίδα (π.χ. την contact2.html) αντί της λευκής.

 

Παραθέτω τους κώδικες:

 

contact.html

 

>
<form method="post" name="contact" action="css/contact.php">
				   
				    <label for="author">Ονοματεπώνυμο :</label> <input type="text" id="author" name="author"/>
				    <div class="cleaner h10"></div>
				    <label for="job">E - Mail :</label> <input type="text" id="mail" name="mail"/>
				    <div class="cleaner h10"></div>
				    <div class="cleaner h10"></div>
				    <label for="text">Μήνυμα :</label> <textarea id="text" name="text" rows="0" cols="0" class="required"></textarea>
				    <div class="cleaner h10"></div>
				   
				    <input type="submit" value="Αποστολή" id="submit" name="Submit" class="submit_btn float_l" />
  <input type="reset" value="Καθαρισμός" id="reset" name="reset" class="submit_btn float_r" />
		 </form>

 

contact.php

 

>
<?php
$ToEmail = '[email protected]';
$EmailSubject = 'www.GeorgAthan.com (New E - Mail)';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["author"]."";
$MESSAGE_BODY .= "E - Mail: ".nl2br($_POST["mail"])."";
$MESSAGE_BODY .= "Text: ".nl2br($_POST["text"])."";
?>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σε ευχαριστώ πολύ για την απάντησή σου.

Να τονίσω ότι όποιος δεν έχει .php, μπόρει αντί για

>header("Location: <όνομα σελίδας>.php");

να βάλει

>header("Location: folder/onoma_selidas.html");

 

... όπου: folder = φάκελος που έχει την σελίδα του

 

Κάτι πολύ τελευταίο:

 

Όταν, λοιπόν, συμπληρώνει κάποιος την φόρμα και έρχεται σε μενα το mail, αυτό είναι κάπως έτσι:

 

>Name: kostasE - Mail: [email="[email protected]"][email protected][/email]: dokimi 

 

Πως μπορεί να γίνει λίγο πιο ανθρώπινο;

 

To php είναι:

 

><?php
$ToEmail = '[email protected]';
$EmailSubject = 'www.GeorgAthan.com (New E - Mail)';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["author"]."";
$MESSAGE_BODY .= "E - Mail: ".nl2br($_POST["mail"])."";
$MESSAGE_BODY .= "Text: ".nl2br($_POST["text"])."";
mail($ToEmail, $text, $MESSAGE_BODY);
header("Location: /test/index.html");
?>

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Theostalte

βάλε και ένα if πριν το redirect (για διάφορους λόγους)

>
<?php
$ToEmail = '[email protected]';
$EmailSubject = 'www.GeorgAthan.com (New E - Mail)';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["author"]."";
$MESSAGE_BODY .= "E - Mail: ".nl2br($_POST["mail"])."";
$MESSAGE_BODY .= "Text: ".nl2br($_POST["text"])."";
if (mail($ToEmail, $text, $MESSAGE_BODY))
{
header("Location: /test/index.html");
} else {
echo "Problem! Email NOT sent";
}
?>

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Να τονίσω ότι όποιος δεν έχει .php, μπόρει αντί για

>header("Location: <όνομα σελίδας>.php");

να βάλει

>header("Location: folder/onoma_selidas.html");

 

Αν εννοείς να μην έχει κάποια σελίδα με κατάληξη *.php τότε ΟΚ. Αν δεν έχει καθόλου υποστήριξη για PHP τότε το παραπάνω δεν θα δουλέψει.

 

Πως μπορεί να γίνει λίγο πιο ανθρώπινο;

 

Δοκίμασε το ακόλυοθο μήπως δουλέψει:

><?php
$ToEmail = '[email protected]';
$EmailSubject = 'www.GeorgAthan.com (New E - Mail)';
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Name: ".$_POST["author"]."" . "\r\n";
$MESSAGE_BODY .= "E - Mail: ".nl2br($_POST["mail"])."" . "\r\n";
$MESSAGE_BODY .= "Text: ".nl2br($_POST["text"])."";
mail($ToEmail, $text, $MESSAGE_BODY);
header("Location: /test/index.html");
?>

 

Έχω προσθέσει τα "\r\n" ώστε να αλλάζει γραμμή στο mail που λαμβάνεις.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτός ο τρόπος είναι ο ίδιος και για άλλα redirections;

 

Έχουμε αυτήν την εικόνα:

 

post-227859-0-08421600-1351337608_thumb.png

 

Θέλω να δημιουργήσω μία database, έτσι ώστε αν κάποιος πελάτης μου θέλει να κάνει "Είσοδο", να πληκτρολογήσει τα στοιχεία του και να γίνεται redirect σε ένα tyxaio_onoma_selidas.html, οπού εκεί θα βλέπει διάφορα πράγματα (δε μας ενδιαφέρει αυτό το .html, καθώς το έχω κάνει ήδη).

 

Γνωρίζει κανείς πως γίνεται αυτό;

Ή αν είναι πολύς ο δρόμος, έχετε κατά νου κάποια κατατοπισμένη σελίδα (ελληνική ή αγγλική);

 

Ευχαριστώ πολύ!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Αυτό που θέλεις να κάνεις είναι το λεγόμενο PRG pattern. Η σελίδα της wikipedia δεν έχει πολλές πληροφορίες (διάβασέ την όμως) αλλά με λίγο googling για "PRG pattern" και "post/redirect/get" θα βρεις άπειρο πράμα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...