![]() |
![]() ![]() |
![]() |
-KALIS- |
![]()
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> |
|
|
![]()
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ść- |
![]()
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 |
|
|
-KALIS- |
![]()
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... |
|
|
![]()
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)
|
|
|
-kalis- |
![]()
Post
#6
|
Goście ![]() |
dzieki teraz działa
![]() |
|
|
-kalis- |
![]()
Post
#7
|
Goście ![]() |
Działało raz a gdy chce dodać teraz to juz nie działa ...
|
|
|
![]()
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); |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 09:53 |