Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]tworzenie uzytkownika
-KALIS-
post
Post #1





Goście







Witam,

Jestem początkujący w php i potrzebuje pilnie rozwiązać problem.
Ten skrypt powinien dodawać do bazy danych ( ustawiona w db.php) tabeli login dane z formularza - utworzyć nowy profil użytkownika ale nie dodaje mimo że błędu nie pokazuje
Prosze o pomoc

<?php
session_start();
require("db.php"); - konfiguracja serwera

if($_POST['create'])
{
$query = "INSERT INTO login VALUES(NULL, '1', '$login',password('$pass'))";
mysql_query(query);
}
?>



<form action="<?php echo $SCRIPT_NAME; ?>" method="POST">
<table>
<tr>
<td> Podaj login </td>
<td><input type="textbox" name="login">
</tr>

<tr>
<td> Podaj hasło </td>
<td><input type="password" name="pass">
</tr>

<tr>
<td></td>
<td><input type="submit" name="create" value="Załóż konto">
</tr>

</table>
</form>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 7)
Pitter
post
Post #2





Grupa: Zarejestrowani
Postów: 75
Pomógł: 8
Dołączył: 9.08.2008

Ostrzeżenie: (0%)
-----


Jak na pierwszy rzut oka nie widzę błędu. Jednak najpierw możesz sprawdzić czy wykonywanie skryptu dociera do zapytania mysql. Jak? Wstaw echo 'ok'; w bloku sprawdzenia if($_POST['create']) . Aha i jeszcze napisz do jakiego pola dodajesz wartość null.

To moja wersja skryptu:

Kod
<?php
session_start();
include('db.php');

if($_POST['cmd']=='')
{
echo '<form action="'.$_SERVER['PHP_SELF'].'?cmd=add" method="POST">
<input type="text" name="login">
<input type="password" name="pass">
<input type="submit" value="dodaj">';
}

if($_POST['cmd']=='add')
{
$login = $_POST['login'];
$pass = $_POST['pass'];

$query = "INSERT INTO login VALUES(NULL,'1','$login',password($pass))";
$result = mysql_query($query);
}
?>


Ten post edytował Pitter 9.08.2008, 21:35:24
Go to the top of the page
+Quote Post
-Gość-
post
Post #3





Goście







if($_POST['create'])
{
$query = "INSERT INTO login VALUES(NULL, '', '$login', '$pass')";
$wynik=mysql_query(query);
echo 'ok';
}
?>

po naciśnięciu załóż ok pojawią się.

NULL to pole klucza podstawowego id gdzie jest auto_increment
Go to the top of the page
+Quote Post
-KALIS-
post
Post #4





Goście







Pitter użyłem Twojego skryptu i dalej nie dopisuje mi do bazy danych.
Co może być tego przyczyną?
Jak dopiszę do if($_POST['create'])
echo $login;
to nie wyskakuje to co wpisałem...
Go to the top of the page
+Quote Post
shazarre
post
Post #5





Grupa: Zarejestrowani
Postów: 8
Pomógł: 1
Dołączył: 9.08.2008

Ostrzeżenie: (0%)
-----


Nie może, ponieważ zmienna 'create', którą chcesz wywołać w funkcji warunkowej, nie jest w ogóle przesłana! Jeśli koniecznie chcesz tak to rozwiązać, dodaj do formularza ukryte pole:

Kod
<input type="hidden" name="create" value="cokolwiek">


Wtedy powinno działać. A lepiej w ogóle zamiast
Kod
if($_POST['create'])
napisz po prostu
Kod
if($_POST)
Go to the top of the page
+Quote Post
-kalis-
post
Post #6





Goście







dzieki teraz działa (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !
Go to the top of the page
+Quote Post
-kalis-
post
Post #7





Goście







Działało raz a gdy chce dodać teraz to juz nie działa ...
Go to the top of the page
+Quote Post
Pitter
post
Post #8





Grupa: Zarejestrowani
Postów: 75
Pomógł: 8
Dołączył: 9.08.2008

Ostrzeżenie: (0%)
-----


Kod
$query = "INSERT INTO login VALUES(NULL, 'co ma być przesłane w tym polu', '$login', '$pass')";


Jeżeli Null to id auto_increment to nigdy nie zadziała. Null oznacza że ma pozostać puste a id auto_increment nigdy nie jest puste. Nie wpisuj null tylko dwa apostrofy ('i tu ma być id ale nic nie wpisuj').
Jak to nie zadziała to sprawdź w połączeniu się z mysql, może tam zrobiłeś błąd.

zapytanie:
Kod
$query = "INSERT INTO login VALUES('', '', '$login', '$pass')";
$wynik=mysql_query(query);
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 15:49