dzelo3 Opublikowano 15 Lutego 2011 Udostępnij Opublikowano 15 Lutego 2011 witam. mam pytanie na które nie znalazłem odpowiedzi ani na tym forum ani w google... a mianowicie : przykładowo mam pewien wpis w MySQL który ma 5 kolumn a ja mam zamiar zmienić dwie z tych zmiennych. jak powinien wyglądać kod wpisania zmiennych ? próbowałem sam coś wymyślić :P mysql_query("INSERT INTO logowanie WHERE uzytkownik = '$login' SET typ_gry='$typ' "); tylko że to nie działa... :P potrzebuje to teraz więc prosze o szybką odp. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Tymon Opublikowano 15 Lutego 2011 Udostępnij Opublikowano 15 Lutego 2011 Sprawdź dokumentację w poszukiwaniu UPDATE, nie INSERT. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 świetnie, dzieki znalazlem co chciałem a teraz mam kolejne pytanie żeby nie robić nowego tematu :P najlepiej opisze co chce zrobić zanim zadam pytanie : mam w jednym pliku php np zmienną $cos z tego pliku mam ustawione przekierowanie na plik html po czym znowy inny plik php w tym ostatnim chce użyć znowu zmiennej $cos próbowałem zobaczyć jak to wyjdzie poprzez print w ostatnim php i nic nie wyświetliło da się może wyciągnąć ostateczną postać tej zmiennej z pierwszego ??? albo (jak czytałem w necie) zrobić zmienną "superglobalną" (?) wyjaśni mi to ktoś jak najprościej ? ;/ Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Lutego 2011 Administratorzy Udostępnij Opublikowano 15 Lutego 2011 Musisz gdzieś ją zapisać - można użyc mechanizmu sesji, chociaż typowego $_SESSION odradzam (chociażby dlatego, że mając konto na tym samym serwerze można sesję przejąć... chociaż to pewnie też kwestia hostingu). Poczytaj w sieci, jak okaże się za trudne, to zostań przy session_start() i $_SESSION. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 haha to teraz muszę trochę poczytać o sesjach... :P dzięki za wyznaczenie kierunku nauki xD Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 nie znam się za bardzo na sesjach ale zrobiłem coś takiego : <?php session start(); $connection = @mysql_connect('host', 'log', 'pass') or die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error()); echo ""; $db = @mysql_select_db('baza', $connection) or die('Nie mogę połączyć się z bazą danych<br />Błąd: '.mysql_error()); echo ""; $login = $_POST['attachedl']; $pass = $_POST['attachedp']; $wynik = mysql_query("SELECT haslo FROM logowanie WHERE uzytkownik = '$login'"); $rekord = mysql_fetch_array($wynik); $b_pass = $rekord['haslo']; if ($pass == $b_pass) { $wynik4 = mysql_query("SELECT id FROM logowanie WHERE uzytkownik = '$login'"); $rekord4 = mysql_fetch_array($wynik4); $id_b = $rekord5['id']; $wynik5 = mysql_query("SELECT typ_gry FROM logowanie WHERE id = '$id_b'"); $rekord5 = mysql_fetch_array($wynik5); $typ_b = $rekord5['typ_gry']; $_SESSION['log'] = $login; $_SESSION['pas'] = $pass; $adres = 'http://mercenaries.net63.net/wyb.html'; header('HTTP/1.1 301 Moved Permanently'); header('Location: '.$adres); } else { print 'nie zalogowano'; } ?> no i wywala taki błąd : Parse error: syntax error, unexpected T_STRING in /home/a9213621/public_html/log_skrypt.php on line 8 o co kmn ? help wytłumaczycie krok po kroku jak to działa ? ;/ a może jakiś prosty i krótki kurs / tutoriar ? Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Threef Opublikowano 15 Lutego 2011 Udostępnij Opublikowano 15 Lutego 2011 die('Brak połączenia z serwerem MySQL.<br />Błąd: '.mysql_error()); O tym zapomnij usera nie interesuje czy masz problemy z połączeniem Hasło powinieneś przechowywać na serwerze w formie zakodowanej np przez md5() a potem porównywać if(md5($pass) == $b_pass) Mógłbym ci trochę podesłać własnych przykładów bo trochę już w tym siedzę, jak chcesz wyślij PW to coś ci przygotuję. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 zmieniłem silnik logowania i rejestracji... a raczej zgapiłem :P link : http://webmade.org/porady/sesje-php-system-logowania.php w kazdym razie po drobnych przeróbkach działa jak ma działać... mam kolejne pytanko odnośnie php (przepraszam że w tym samym temacie...) jak do tego wyżej(link) mógłbym w url dodać losowy ciąg znaków jak to na lepszych stronach bywa ? oraz... jest gdzieś może na GMC jakiś gotowy shoutbox prosty w edycji ? :P a może Konrad - GM udostępni ten którym się chwalił na shoucie Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Administratorzy gnysek Opublikowano 15 Lutego 2011 Administratorzy Udostępnij Opublikowano 15 Lutego 2011 Zmienną można zapisać w bazie, czy w pliku, żeby potem przenieść - ale jak na stronie są co najmniej dwie osoby na raz, to trzeba je czymś rozróżniać - najlepiej unikalnym ID sesji - tak naprawdę do tego jest ona potrzebna. Ja np. napisałem sobie taki system sam - ale z wiadomych względów nie mogę się podzielić :D Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 tam wyżej to chodziło mi właśnie o to żeby po zalogowaniu przekazywać po dalszych plikach php id usera zeby on widział co innego i inny user co innego... :] gnysek: a nie mógł byś właśnie mi wysłać czegoś do robienia tego unikalnego adresu url ? ;/ nadal czekam na odp do mojego postu wyżej... Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 15 Lutego 2011 Udostępnij Opublikowano 15 Lutego 2011 Jeśli Cię interesuje SB: <?php class web { static function open_connection() { mysql_connect( "127.0.0.1", "root" ); mysql_select_db( "bujaka_db" ); mysql_query( "SET NAMES utf8" ); return true; } static function close_connection() { mysql_close(); } static function find_client_ip() { if( !empty( $_SERVER['HTTP_CLIENT_IP'] ) ) { $ip = $_SERVER['HTTP_CLIENT_IP']; } elseif( !empty( $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) { $ip = $_SERVER['HTTP_X_FORWARDED_FOR']; } else { $ip = $_SERVER['REMOTE_ADDR']; } return $ip; } static function date_diff_sec( $date_1, $date_2 ) { $date_1 = new DateTime( $date_1 ); $date_2 = new DateTime( $date_2 ); $interval = $date_1->diff( $date_2 ); return ($interval->h*3600 + $interval->i*60 + $interval->s); } static function push_mysql_error() { print "<span class='error'>MySQL query failed!<br>".mysql_error()."</span>"; } static function banned_ip( $ip ) { $query = "SELECT ip FROM banned WHERE ip=INET_ATON('$ip')"; $result = mysql_query( $query ); if( $result ) { if( mysql_fetch_assoc( $result ) ) // ?? Bez tego nie dziala poprawnie :P return true; } return false; } static function admin_permissions() { if( isset( $_SESSION['username'], $_SESSION['password'] ) ) { $username = trim( $_SESSION['username'] ); $password = trim( $_SESSION['password']); if( web::open_connection() ) { $ip = web::find_client_ip(); if( web::banned_ip( $ip ) ) { web::close_connection(); return false; } $query = "SELECT secure, name FROM admin WHERE username='$username' AND password='$password'"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( $row ) { if( $row['secure'] < 3 ) { mysql_query( "UPDATE admin SET secure='0' WHERE username='$username'" ); web::close_connection(); return true; } } else { $query = "SELECT secure FROM admin WHERE username='$username'"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( $row['secure'] < 3 ) { $try = $row['secure'] + 1; mysql_query( "UPDATE admin SET secure='$try', ip=INET_ATON('$ip') WHERE username='$username'" ); } } } } web::close_connection(); } } return false; } } ?> <?php require_once( "source.php" ); function push_shout( $date, $author, $content ) { // <div class='shout-bar'><span class='shout-author'>$author</span><span class='shout-date'>$date</span></div> // <div class='shout-content'>$content</div> print "<div class='shout-bar'><span class='shout-author'>$author</span><span class='shout-date'>$date</span></div>"; print "<div class='shout-content'>$content</div>"; } if( !isset( $_POST['type'] ) ) exit; if( web::open_connection() ) { // Admin permissions $is_admin = web::admin_permissions(); // Load shoutbox content if( $_POST['type'] == 'load' ) { $query = "SELECT * FROM shout ORDER BY id DESC LIMIT 30"; $result = mysql_query( $query ); if( $result ) { while( $row = mysql_fetch_assoc( $result ) ) { push_shout( $row['date'], $row['author'], $row['content'] ); } } else web::push_mysql_error(); } // Post for new shout elseif( $_POST['type'] == 'post' ) { $ip = web::find_client_ip(); $author = trim( $_POST['author'] ); $content = $_POST['content']; // Banned IP if( web::banned_ip( $ip ) ) { web::close_connection(); print "Zostałeś zbanowany!"; exit; } if( $author && trim( $content ) ) { $author_len = strlen( $author ); $content_len = strlen( $content ); if( $author_len < 3 ) print "Nick jest za krótki! ($author_len/10)"; elseif( $author_len > 10 ) print "Nick jest za długi! ($author_len/10)"; elseif( $content_len > 255 ) print "Tekst jest za długi! ($content_len/255)"; else { $query = "SELECT ip, date FROM shout WHERE ip=INET_ATON('$ip') ORDER BY id DESC LIMIT 1"; $result = mysql_query( $query ); if( $result ) { $row = mysql_fetch_assoc( $result ); if( web::date_diff_sec( $row['date'], date("H:i:s") ) < 10 ) { print "Spróbuj za 10 sekund"; web::close_connection(); exit; } } $query = "INSERT INTO shout(ip, date, author, content) VALUES(INET_ATON('$ip'), CURTIME(), \"$author\", \"$content\")"; $result = mysql_query( $query ); if( !$result ) web::push_mysql_error(); } } else print "Musisz wypełnić pola!"; } web::close_connection(); } ?> Jest to bardzo prosty SB, wymaga wiele poprawek i optymalizacji :P Jakby się ktoś czepiał, tak, 'date' początkowo miało przechowywać dane typu DATETIME, ale zmieniłem zdanie :P Jbc. kierowane jest pod ajaxa ('POST') Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
dzelo3 Opublikowano 15 Lutego 2011 Autor Udostępnij Opublikowano 15 Lutego 2011 gdy zauważyłem że coś napisałeś, myślałem że na szybko to przeanalizuje i zaczne modyfikować ale jak widzę tą rozpiętość kodu to zmieniam zdanie :P ide spać jutro bd nad tym siedział ;] ja dziś już chyba zmęczony :P nq Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się