Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: dlaczego nie działa
Forum PHP.pl > Forum > Przedszkole
kosmic
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
marcio
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. ?>
kosmic
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
-kosmic-
no to jak koledzy pomoze ktos questionmark.gif

zerknijcie, moze ktos z was dojdzie do tego dlaczego to nie działa questionmark.gif
Cysiaczek
Popraw proszę tytuł topiku na zgodny z zasadami forum Przedszkole
-kosmic-
no i jak nikt nie widzi problemu ?
zerknijcie i pomóżcie bo czas leci a trzeba przejsc do dalszej czesci sad.gif
Cysiaczek
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 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.