Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]tworzenie uzytkownika
Forum PHP.pl > Forum > Przedszkole
KALIS
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>
Pitter
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);
}
?>
Gość
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
KALIS
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...
shazarre
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)
kalis
dzieki teraz działa exclamation.gif!
kalis
Działało raz a gdy chce dodać teraz to juz nie działa ...
Pitter
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);
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.