Skocz do zawartości

Problem z metodą POST.


apollan

Rekomendowane odpowiedzi

Witam!

Ostatnimi czasy Irek mnie ochrzanił, że idę na łatwiznę, postanowiłem nauczyć się PHP. Zakupiłem podręcznik i jazda...

Napisałem skrypt rejestracji uzytkowników, ale mam problem, oto treść dwóch głównych plików:

rejestracja.php

<?php
include_once('mysql.php');

function html_url($url, $nazwa)
{

?>
 <P align="center">
 <a href="<?=$url?>"><?=$nazwa?></a>
 </P>
<?
}

function wynik_db_do_tablicy($wynik)
{
 $tablica_wyn=array();

 for($licznik=0; $rzad=@mysql_fetch_array($wynik); $licznik++)
$tablica_wyn[$licznik]=$rzad;

 return $tablica_wyn;
}


function dodaj_form()
{
?>
 <form method="post" action="rej.php">
 <TABLE ALIGN="center">
  <tr>
 <td colspan=2><H1>test</H1><TD></TD></td>
  <tr>
 <td>Login:</td>
 <td><input type=text name=login></td></tr>
  <tr>
 <td>hasło:</td>
 <td><input type=password name=haslo></td></tr>
  <tr>
 <td>email</td>
 <td><input type=text name=email></td></tr>
  <tr>
 <td>Miasto</td>
	<td><input type=text name=miasto></td></tr>

  <tr>
 <td align=center colspan=2>
 <input type=submit value="Zapisz"></td></TABLE></form>
<?
  html_url("index.php", "Logowanie");
}
dodaj_form()

?>

i rej.php

<?php
include_once('mysql.php');


function dodaj_usera($login, $haslo, $email, $miasto)
{

 $polaczenie= pol_mysql();
 $wynik = mysql_query("select * from users where login='$login'");
 if(!$wynik)
return "Problem: zapytanie z bazy nieudane";
 if (mysql_num_rows($wynik)>0)
{
echo "<H3 ALIGN=center>Użytkownik o takiej nazwie jest już zarejestrowany, spróbuj inny login</h3>";
}
 $czas = date("j-m-Y-G:i:s");
 $zapytanie = "insert into users values
			 ('', '$login', '$haslo', '$email', '$miasto', '$czas')";
 $wynik=mysql_query($zapytanie);
if($wynik)
{
echo "<H3 ALIGN=center>Rejestracja zakończona pomylnie</h3>";
echo "<H4 ALIGN=center><a href='index.php'>Strona Logowania</a></h4>";
exit;
}
 return true;
}


dodaj_usera();
?>

Więc dane z formularza chcę przekazać metodą POST do rej.php, aby ten dodał mi to do bazy danych.

lecz plik rej.php wyswietla mi nastepujący komunikat:

Warning: Missing argument 1 for dodaj_usera() in /var/www/apollan.mszuk.one.pl/htdocs/strona1/gra/rej.php on line 5

Warning: Missing argument 2 for dodaj_usera() in /var/www/apollan.mszuk.one.pl/htdocs/strona1/gra/rej.php on line 5

Warning: Missing argument 3 for dodaj_usera() in /var/www/apollan.mszuk.one.pl/htdocs/strona1/gra/rej.php on line 5

Warning: Missing argument 4 for dodaj_usera() in /var/www/apollan.mszuk.one.pl/htdocs/strona1/gra/rej.php on line 5

Domyślam się, że popełniam gdzieś prosty bła(tak mi sie zdaje). Próbowałem też przekazać dane metodą GET ale wynik ten sam.

Liczę na Was.

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

czyli zapewne zapytanie nie wykonuje się pomyślnie :-) daj przed

 $wynik=mysql_query($zapytanie);

echo $zapytanie;

i zobacz czy zapytanie jest na pewno poprawne :-)

Odnośnik do komentarza
Udostępnij na innych stronach

  • 2 tygodnie później...

Witam ponowanie, dalej męczę ten sam skrypt:

<?php
include_once('mysql.php');


function loguj_usera($login, $haslo_podane)
{
  $polaczenie = pol_mysql();
  $zapytanie = mysql_query("select * from uzytkownicy where login='$login'");
 if (!$zapytanie)
return "Problem: zapytanie z bazy nieudane";
 if (mysql_num_rows($zapytanie) == 0)
{
echo "<H3 ALIGN=center>Niema takiego użytkownika w bazie danych</h3>";
exit;
}
$zapytanie1 = "select * from uzytkownicy where login = '$login' ";
$wynik = mysql_query($zapytanie1);
 if ($wynik) {
$haslo = mysql_result($wynik, 0,'haslo');
		  }
	else{
		  echo "Nie ma zadnych danych";
		}
 if ($haslo == $haslo_podane){ 
session_start();
session_register("login");
?><html>
<head>
<title>jestes poprawnie zalogowany</title>
<meta http-equiv="refresh" content="3;url=home.php">
</head>
<body>
<?php


// echo "zalogowany ";
						}
else{
echo "niepoprawne dane";
} 

echo "Jestes poprawnie zalogowany jako $login";
?>
</body>
</html>
<?php
}

loguj_usera($_POST[login],$_POST[haslo_podane]);


?>

i home.php

<?php

session_start();

echo("zalogowany jestes jako $login ");
?>

Niestety finalnie ukazuje mi sie tylko napis "zalogowany jestes jako".

Domyślam się, że sesja kajś się po drodze traci.

Jak pisałem jestem początkującym, więc jeśli popełniam jakieś podstawowe blędy to proszę o wyrozumiałość :) .

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /var/www/apollan.mszuk.one.pl/htdocs/strona1/gra/home.php on line 5

Swoją drogą, gdy usunę te cudzysłowy pojedyńcze nic się nie wyświetla.

Odnośnik do komentarza
Udostępnij na innych stronach

$zapytanie=mysql_query("select * from uzytkownicy where login='$login'") or die ("Błąd odwołania do bazy");
$uzytkownik=mysql_fetch_assoc($zapytanie);
if ($uzytkownik[login])
{
 if ($uzytkownik[haslo]==$haslo_podane)
 {
session_start();
$_SESSION[login]=$login;
echo 'Jesteś zalogowany jako '.$login;
 }
}
else
{
 echo 'Brak użytkownika';
}

Nie znam się na pozycjonowaniu, ja tu tylko zużywam transfer i miejsce w sql.

Roman Kluska ujawnia: nadchodzi INFLACYJNY ARMAGEDON!

 

Wielki Elektronik

Odnośnik do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę. Warunki użytkowania Polityka prywatności