Jak zrobić, by po wypełnieniu formularza przekierowało na stronę główną?


(Mezir95) #1

Witajcie, mam taki problem, że nie wiem jak zrobić by po wysłaniu formularza przekierowało użytkownika na stronę główną zamiast pokazywać się informacja "Rekord został dodany poprawnie".

Pomoże ktoś? 

 

Poniżej przedstawiam mój kod:

<?php 
// odbieramy dane z formularza 
$imie = $_POST['imie']; 
$email = $_POST['email']; 

if($imie and $email) { 
     
    // łączymy się z bazą danych 
    $connection = @mysql_connect('localhost', 'root', 'mojehaslo') 
    or die('Brak połączenia z serwerem MySQL'); 
    $db = @mysql_select_db('formularz', $connection) 
    or die('Nie mogę połączyć się z bazą danych'); 
     
    // dodajemy rekord do bazy 
    $ins = @mysql_query("INSERT INTO test SET imie='$imie', email='$email'"); 
     
    if($ins) echo "Rekord został dodany poprawnie"; 
    else echo "Błąd nie udało się dodać nowego rekordu"; 
     
    mysql_close($connection); 
} 

?>

(Marcineez) #2

(Mezir95) #3

A mogę prosić jaśniej trochę? bo nie bardzo wiem gdzie mam to wstawić..  :frowning:


(Kerter86) #4
<?php 
// odbieramy dane z formularza 
$imie = $_POST['imie']; 
$email = $_POST['email']; 

if($imie and $email) { 
     
    // łączymy się z bazą danych 
    $connection = @mysql_connect('localhost', 'root', 'mojehaslo') 
    or die('Brak połączenia z serwerem MySQL'); 
    $db = @mysql_select_db('formularz', $connection) 
    or die('Nie mogę połączyć się z bazą danych'); 
     
    // dodajemy rekord do bazy 
    $ins = @mysql_query("INSERT INTO test SET imie='$imie', email='$email'"); 
     
    if($ins) header("Location: nazwa_strony.rozszerzenie");
    else echo "Błąd nie udało się dodać nowego rekordu"; 
     
    mysql_close($connection); 
    
} 

?>

(Mezir95) #5

Nie działa. ;/


(batmomobil) #6

Dajesz po echo

<?php 
// odbieramy dane z formularza 
$imie = $_POST['imie']; 
$email = $_POST['email']; 

if($imie and $email) { 
     
    // łączymy się z bazą danych 
    $connection = @mysql_connect('localhost', 'root', 'mojehaslo') 
    or die('Brak połączenia z serwerem MySQL'); 
    $db = @mysql_select_db('formularz', $connection) 
    or die('Nie mogę połączyć się z bazą danych'); 
     
    // dodajemy rekord do bazy 
    $ins = @mysql_query("INSERT INTO test SET imie='$imie', email='$email'"); 
  $zapytanie = mysql_query($ins);
		 
		 if(!$zapytanie)
		 {
		 
			 echo 'Wystąpił problem ';
			 die();
		 
		 }
		 else
		 {
		 
			 echo 'Został dodany';
			 
			 @header('Location: index.php&msg=został dodany');
		 
		 }
	 
	 }
 ?>

i na stronie index dodaj

<?
$msg = $_GET['msg'];

if(!empty($msg))
{

	 echo '<div class="informacja"><li>'.$msg.'</li></div><br />';

}
?>

to wyswietli informacje :wink:


(Mezir95) #7

A by przeniosło np. na forum? dajmy na to, że rejestracje mam pod adresem rejestracja.google.pl, a forum mam pod forum-gry.pl

Jak wtedy przekierowanie zmienić?


(jacko1998) #8

Przekiwrowanie odbywa się tutaj: 

@header('Location: index.php&msg=został dodany');

 więc, żeby zmienić adres wystarczy zmienić wartość po 'Location: ' Na przykład:

@header('Location: adres-strony.pl');

(Mezir95) #9

Tylko, że cały czas pokazuje się informacja "Wystąpił problem" zamiast przenosić na daną strone. ;/


(jacko1998) #10

@mysql_query("INSERT INTO test SET imie='$imie', email='$email'")

 

Może usuń @ ?


(batmomobil) #11

No tak nie zwróciłem uwagi na twoje zapytanie,zmień

$ins = "INSERT INTO test SET imie='$imie', email='$email'";

(Mezir95) #12

 

Teraz pokazuje się informacja "Został dodany", lecz nie przenosi na daną stronę (próbowałem z "@header" i  "header").


(batmomobil) #13

spróbuj usunąć echo został dodany


(Mezir95) #14

 

Dodaje prawidłowo do bazy, lecz nic się nie pokazuje, ani nie przekierowuje. 


(batmomobil) #15
$zapytanie=mysql_query($ins);
		 if(!$zapytanie)
		 {
			 echo 'Nie udało się dodać';
		 }
		 else
		 {
			 echo 'zostało dodane ';
			  @header('Location: index.php&msg=zostało ');
		 }
		 mysql_close($connection);
		
	 
	 }


}

(Mezir95) #16

Teraz widzę białe tło i nic poza tym. :slight_smile:

 

@edit

Dodawałem również

ob_start();

na początek kody, lecz to też nic nie daje..


(batmomobil) #17

posprawdzaj nawiasy i i gdzie przekierowuje,pokaż teraz kod


(Mezir95) #18

 

?php
ob_start();
// odbieramy dane z formularza
$imie = $_POST['imie'];
$email = $_POST['email'];

if($imie and $email) {

// łączymy się z bazą danych
$connection = @mysql_connect('localhost', 'root', 'haslobazy')
or die('Brak połączenia z serwerem MySQL');
$db = @mysql_select_db('formularz', $connection)
or die('Nie mogę połączyć się z bazą danych');

// dodajemy rekord do bazy
$ins = "INSERT INTO formularz SET imie='$imie', email='$email'";
$zapytanie = mysql_query($ins);

if(!$zapytanie)
{

echo 'Wystąpił problem ';
die();

}
else
{

echo 'Został dodany';
@header('Location: google.com');

}

}
?


(jacko1998) #19

header('Location: http://google.com');


(Mezir95) #20

Już to próbowałem wcześniej.  :frowning:

 

Ma ktoś inne pomysły?