Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> dlaczego nie działa, rejestracja uzytkownika
kosmic
post 31.10.2007, 17:49:43
Post #1





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 31.10.2007

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


walcze ze skryptem rejestracji no i pojawiają sie problemy, moze ktos pomoze questionmark.gif

oto moj plik rejestracja.php

Kod
<?php

if (isset($_POST['submit']))
     {
     require_once('config.php');
         if ( eregi("^[[:alpha:]._] {4,15}$",stripslashes(trim($_POST['login'])))) {
             $l = usun($_POST['login']);
             } else {
             $l = FALSE;
             $message .= '<font color="red">Prosze podac imie</font><br/>';
             }
         if ( eregi ("^[[:alnum:]] [a-z0-9_.-]*@[a-z0-9.-]+\.[a-z] {2,4}$", stripslashes(trim($_POST['email'])))) {
             $e = usun($_POST['email']);
             } else {
             $e = FALSE;
             $message .= '<font color="red">Prosze podac email</font><br/>';
             }
         if ( eregi ("^[[:alpha:]] {4,20}$",stripslashes(trim($_POST['pass'])))) {
             if($_POST['pass'] == $_POST['pass2']) {
                 $p = usun($_POST['pass']);
                 } else {
                 $message .= '<font color="red">Podane hasla roznia sie od siebie</font><br/>';
                 }
             } else {
             $message .= '<font color="red">Prosze podac haslo</font><br/>';
             }
         if ( $l && $e && $p ) {
             $query = "SELECT user_id FROM user WHERE username='$l'";
             $result = @mysql_query($query);
             if ( mysql_num_rows($result) == 0) {
                 $query = "INSERT INTO user (username, email, haslo, data_rejestracji) VALUES ('$l', '$e', PASSWORD('$p'), NOW())";
                 $result2 = @mysql_query($query2);
                 if ($result2) {
                     echo 'Zostales zarejestrowany pomyslnie';
                     } else {
                     echo 'Rejestracja niepowiodla sie.<br/>';
                     }
                 } else {
                 $message .= '<font color="red">Konto o podanym nicku istnieje</font><br/>';
                 }
             } else {
             $message .= '<font color="red">Sprobuj ponownie</font><br/>';
             }
     }
?>
<html>
<head>
<title>Rejestracja</title>
</head>
<body>
<form method="post" action="<? echo $_SERVER['PHP_SELF']; ?>">
<table align="left" border="0">
<tr>
<td align="right" class="uni_01">Login:</td>
<td><input type="text" name="login" size="35" value="<? if(isset($_POST['login'])) { echo $_POST['login'];} ?>"><small>*minimalna dlugosc loginu to 4 znaki</small></td>
</tr>
<tr>
<td align="right" class="uni_01">email:</td>
<td><input type+"text" name="email" size="35"value="<? if(isset($_POST['email'])) { echo $_POST['email']; } ?>"></td>
</tr>
<tr>
<td align="right" class="uni_01">haslo:</td>
<td><input type="password" name="pass" size="25"><small>*minimalna dlugosc hasla to 4 znaki</small></td>
</tr>
<tr>
<td align="right" class="uni_01">powtorz haslo:</td>
<td><input type="password" name="pass2" size="25"></td>
</tr>
<tr>
<td align="right" class="uni_01">&nbsp;</td>
<td><input style="font-weight: bold;" type="submit" name="submit" value="loguj"></td>
</tr>
</table>
</form>








<div align="left">
<?
if(isset($message)) {
     echo $message;
     }
?>
</div>
</html>


a to plik config.php

Kod
<?php

$dbhost="localhost";
$dbuser="root";
$dbpass="vertrigo";
$dbname="uzytkownik";

$dbc = @mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie mozna nawiazac polaczenia z baza danych, przepraszamy za klopoty');
mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy za klopoty');

function usun ($data)
{
     GLOBAL $dbc;
     if (ini_get('magic_quotes_gpc'))
     {
         $data = stripslashes($data);
     }
     return mysql_real_escape_string($data, $dbc);
}
?>


pracuje na swoim kompie na virtualnym serverze no i jak odpalam pilik w przegladarce wpisuje dane do formularza i naciskam loguj to nic sie nie dzieje poza przeładowaniem strony i wyswietleniem pod formularzem wszystkich 4 wiadomosci:

Cytat
Prosze podac imie
Prosze podac email
Prosze podac haslo
Sprobuj ponownie


na czewono oczywiscie...

prosze o pomoc
jak wspominalem jestem poczatkujacy w php, ale potrzebuje aszejpomocy bo musze napisac projekt sad.gif
pozdrawiam i licze na wyrozumiałość i POMOC

ktoś jest w stanie mi pomóc questionmark.gif

ponieważ nic sie nie dzieje, jest tak jak napisałem powyżej sad.gif
tylko komunikaty, jakby zadnej reakcji skryptu sad.gif

pomocy exclamation.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
marcio
post 31.10.2007, 18:42:16
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


PO
1)
  1. <?php
  2. $query = "INSERT INTO user (username, email, haslo, data_rejestracji) VALUES ('$l', '$e', PASSWORD('$p'), NOW())";
  3. ?>

powinno byc zamiast $query ma byc $query2 bo masz 2 takie same zmienne w zapytaniu a podajesz inne argumenty
2)niel laczysz sie z baza biggrin.gif masz laczenie w pliku config.php ale nie jest to funckja i jej nie wywolujesz przed dodaniem danych czyli zrob tak:

  1. <?php
  2. function polacz()  { 
  3. $dbhost="localhost";
  4. $dbuser="root";
  5. $dbpass="vertrigo";
  6. $dbname="uzytkownik";
  7.  
  8. $dbc = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie mozna nawiazac polaczenia z baza danych, przepraszamy za klopoty');
  9. mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy za klopoty');
  10. }
  11. ?>

i wywolujesz to tak w pliku
  1. <?php
  2. polacz(); // na samym poczatku przed zapytaniem
  3. ?>

3)jak robisz mysql_query to nie dawaj @ bo nie wiem czy nie ma bledu to samo z laczeniem i wybieraniem bazy potem jako argumenty powinno sie dawac
$wynik = mysql_query($zapytanie, $uchwyt_polaczenia_z_baza) or die (mysql_error()) // rob tak bo przynajmniej wiesz jaki jest blad3
4) nie chce powiedziec czegos glupiego ale po co ci to po co to ma cos zwracac??
  1. <?php
  2. return mysql_real_escape_string($data, $dbc); //?questionmark.gifquestionmark.gif to sie daje przed dodaniem do bazy po co ci to w funckji i po co ci to return;??
  3. ?>


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
kosmic
post 31.10.2007, 19:42:26
Post #3





Grupa: Zarejestrowani
Postów: 132
Pomógł: 0
Dołączył: 31.10.2007

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


Kod
require_once('config.php');

a tym poleceniem przecierz wgrywam kod z pliku config.php wiec powinno działać normalnie - czy sie myle ?

no i jak zrobiłem jak pisałeś czyli:
Kod
function polacz()   {
$dbhost="localhost";
$dbuser="root";
$dbpass="vertrigo";
$dbname="uzytkownik";

$dbc = mysql_connect ($dbhost, $dbuser, $dbpass) or die ('Nie mozna nawiazac polaczenia z baza danych, przepraszamy za klopoty');
mysql_select_db ($dbname) or die ('Problemy z baza danych. Przepraszamy za klopoty');
}


i potem w pliku rejestracja.php na samym poczatku dodaje
Kod
polacz();

to wywala bład w 3 lini... jakby nie iedział co to jest

aha no i pousuwałem wszystkie @ przed mysql_query i dalej to samo sad.gif
nie działa sad.gif

chce dodac ze połaczenie z baza jest dzieki
Kod
require_once('config.php');

bo jak zmienie w config.php hasło do bazy lub uzytkownika to zaraz wywala ze nie mozna polaczyc.... przetestowalem rowniez polaczenie z tabela i tez działa bo jak zmienie nazwe tabeli to wywala z jest problem z baza.. wiec polaczenie jest

to dlaczego to nie działa... ja sam sobie nie poradz bo dopiero zaczynam, kombinowalem juz ale w dalszym aciagu efekt ten sam sad.gif

prosze o pomoc = PILNE
Go to the top of the page
+Quote Post
--kosmic--
post 1.11.2007, 20:07:16
Post #4





Goście







no to jak koledzy pomoze ktos questionmark.gif

zerknijcie, moze ktos z was dojdzie do tego dlaczego to nie działa questionmark.gif
Go to the top of the page
+Quote Post
Cysiaczek
post 1.11.2007, 21:30:45
Post #5





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post
--kosmic--
post 2.11.2007, 13:40:07
Post #6





Goście







no i jak nikt nie widzi problemu ?
zerknijcie i pomóżcie bo czas leci a trzeba przejsc do dalszej czesci sad.gif
Go to the top of the page
+Quote Post
Cysiaczek
post 2.11.2007, 14:11:22
Post #7





Grupa: Moderatorzy
Postów: 4 465
Pomógł: 137
Dołączył: 26.03.2004
Skąd: Gorzów Wlkp.




Tak. Czas leci - miałeś cały dzień, aby się zalogowac i zastosować do moich uwag.

Zamykam
Temat zostanie ponownie otwarty po wysłaniu mi (lub innemu moderatorowi) na PW obietnicy poprawy tytułu tematu


--------------------
To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness;
chaotic, confused, vulnerability, to inform yourself.
Think for yourself. Question authority.
Go to the top of the page
+Quote Post

Closed TopicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 26.06.2025 - 20:17