Skocz do zawartości
Sim00n

Pomoc przy problemach PHP

Rekomendowane odpowiedzi


mysql_query("INSERT INTO `gracze`(`login`) VALUES ('$_POST['login']')");
[/code] Problemem jest to, że " ' " się gryzą. Jeżeli chcesz wrzucać zmienne bezpośrednio w stringa to używaj "{" i "}". Przykład:
[code=php]
mysql_query("INSERT INTO `gracze` (`login`) VALUES('{$_POST['login']}')");

Pozdrawiam, Sim00n.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam mam problem z panelem zarządzania: gamecp nie chce mi zalogować do panelu a wpisuje dobre hasło i login nie wiem dlaczego mi się pojawia że zły login lub hasło.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

if(isset($_POST['accept']) && $_POST['accept'] == 'tak')

Logika ziomek, jeżeli zmienna accept typu post równa się tak, to musi istnieć, więc warunek bez pierwszego członu będzie lepszy(szybszy).

Witam mam problem z panelem zarządzania: gamecp nie chce mi zalogować do panelu a wpisuje dobre hasło i login nie wiem dlaczego mi się pojawia że zły login lub hasło.

Daj kod.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

if(isset($_POST['accept']) && $_POST['accept'] == 'tak')

Logika ziomek, jeżeli zmienna accept typu post równa się tak, to musi istnieć, więc warunek bez pierwszego członu będzie lepszy(szybszy).

Jeśli zmienna accept nie będzie istniała to przy sprawdzaniu jej wartości pojawi się ostrzeżenie.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja tylko zapytać chciałem, na czym polega zmiana nicku po zalogowaniu się. Wiem, że trzeba zapytanie UPDATE ale w php nie wiem jak je ułożyć, bo w pawn to proste. Prosiłbym o jakiś przykład jeśli można.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Hej,

Na samym początku napisane było, że można oczekiwać pomocy nie ważne jakiej natury był by problem. Jestem bardzo, bardzo początkujący i chciałbym stworzyć stronę z formularzem w PHP i z systemem logowania, a także mySQL'em lecz znam się na tym tyle co nic niemalże i dlatego mam prośbę żeby mi ktoś pomógł krok po kroku, bo nawet profesjonalni webmasterzy którym mówię o tym problemie to mnie wyśmiewają. Do rzeczy. Mam stronę w html'u z jakimś tam CSS'em. Mam też wszystkie skrypty niezbędne do stworzenia strony którą bym chciał. Skrypty pochodzą s jakiejś strony ale ogólnie są dość dobre. Moje pytanie brzmi czy jest ktoś w stanie wytłumaczyć jak chłopu ze wsi który pierwszy raz na oczy widzi komputer jak zamieścić skrypty php? Tylko proszę nie odsyłajcie mnie do jakiś poradników, bo już kilka przeczytałem i nic z nich nie rozumiem.

oto kod rejestracji w html'u

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<!--
Design by Free CSS Templates
http://www.freecsstemplates.org
Released for free under a Creative Commons Attribution 2.5 License
-->
<html xmlns="http://www.w3.org/1999/xhtml">
        <head>
              <meta http-equiv="content-type" content="text/html; charset=iso-8859-2" />
              <title>backmymoney</title>
              <meta name="keywords" content="" />
              <meta name="description" content="" />
              <link href="default.css" rel="stylesheet" type="text/css" />
        </head>
        <body>
              <div id="logo">
                  <h1><a href="#">Back my<i> Money</i></a></h1>
                  <h3 style="padding-left: 2px;"><a href="#">ZARABIAJ JUŻ DZIŚ Z NAMI!</a></h3>
              </div>
                <div id="content">
              <div id="sidebar">
              <div id="menu">
              <ul>
<li class="active">
<li><a href="index.html" title="Start">Start</a></li>
<li><a href="onas.html" title="">O nas!</a></li>
<li><a href="cennik.html" title="cennik">Cennik</a></li>
<li><a href="regulamin.html" title="regulamin">Regulamin</a></li>
<li><a href="jak.html" title="Jak to działa">Jak to działa?</a></li>

              </ul>
              </div>
            <div id="login" class="boxed">
          <h2 class="title">Panel klienta</h2>
          <div class="content">
        <form action="logowanie.php" method="post">
                  <input type="hidden" name="wyslane" value="TRUE" />

                  <p>Login: <input type="text" name="login" /></p>
                  <p>Hasło: <input type="password" name="haslo" /></p>

                  <p><input type="submit" value="zaloguj" /></p>

                </form>
   
   
                <br>
                Nie masz jeszcze konta? <a href="rejestracja.html">Zarejestruj się!</a>
                <br>
                Zapomniałeś hasła? <a href="przypomnienie.html">Przypomnij!</a>
    </div>
      </div>
          <div id="updates" class="boxed">
       
          <h2 class="title"></h2>
       
        <div class="content">

        </div>
        </div>
          </div>
           
            <div id="main">
            <div id="welcome" class="post">
              <p><img src="images/img03.jpg" alt="" width="500" height="300" /></p>
              <form action="rejestracja.php" method="post">
                    <input type="hidden" name="wyslane" value="TRUE" />
 
    <table>
    <?
   
    echo <<< KONIEC

    <form action="rejestracja.php" method="post">
    <input type="hidden" name="wyslane" value="TRUE" />

    <p>Imię: <input type="text" name="imie" /></p>
    <p>Nazwisko: <input type="text" name="nazwisko" /></p>
    <p>Login*: <input type="text" name="login" /></p>
    <p>Hasło*: <input type="password" name="haslo" /></p>
    <p>Powtórz hasło*: <input type="password" name="haslo2" /></p>
    <p>Adres e-mail*: <input type="text" name="email" /></p>
    <p>Powtórz adres e-mail*: <input type="text" name="email2" /></p>
KONIEC;

    echo recaptcha_get_html($publickey); // wyświetlanie reCAPTCHA
    echo <<< KONIEC

    <p><input type="submit" value="wyślij" /></p></form>
KONIEC;

}
?>
    <table>

    <p><input type="submit" value="wylij" /></p></form>

</div>
</div>
<div id="footer">

</div>
</body>
</html>
[/code]

a to kod php do rejestracji

[code=php]<?php

session_start(); // rozpoczęcie sesji

if (!isset($_SESSION['login'])) { // dostęp dla niezalogowanego użytkownika

    include 'db.php'; // połączenie się z bazą danych
    $tabela = 'uzytkownik'; // zdefiniowanie tabeli MySQL
    require_once('recaptchalib.php'); // dołączenie modułu reCAPTCHA
    $privatekey = 'tu wpisz klucz prywatny'; // prywatny klucz reCAPTCHA
    $publickey = 'tu wpisz klucz publiczny'; // publiczny klucz reCAPTCHA

    if ($_POST["wyslane"]) { // jeżeli formularz został wysłany, to wykonuje się poniższy skrypt

        // filtrowanie treści wprowadzonych przez użytkownika
        $login = htmlspecialchars(stripslashes(strip_tags(trim($_POST["login"]))), ENT_QUOTES);
        $haslo = $_POST["haslo"];
        $haslo2 = $_POST["haslo2"];
        $email = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email"]))), ENT_QUOTES);
        $email2 = htmlspecialchars(stripslashes(strip_tags(trim($_POST["email2"]))), ENT_QUOTES);
        $imie = htmlspecialchars(addslashes(strip_tags(trim($_POST["imie"]))), ENT_QUOTES);
        $nazwisko = htmlspecialchars(addslashes(strip_tags(trim($_POST["nazwisko"]))), ENT_QUOTES);
        $resp = recaptcha_check_answer ($privatekey,
                $_SERVER["REMOTE_ADDR"],
                $_POST["recaptcha_challenge_field"],
                $_POST["recaptcha_response_field"]);

        // system sprawdza czy prawidło zostały wprowadzone dane
        if (strlen($login) < 3 or strlen($login) > 30 or !eregi("^[a-zA-Z0-9_.]+$", $login)) {
            $blad++;
            echo '<p>Proszę poprawny wprowadzić login (od 3 do 30 znaków).</p>';
        } else {
            $wynik = mysql_query("SELECT * FROM $tabela WHERE login='$login'");
            if (mysql_num_rows($wynik) <> 0) {
                $blad++;
                echo '<p>Podana nazwa użytkownika została już zajęta.</p>';
            }
        }
        if (strlen($haslo) < 6 or strlen($haslo) > 30 ) {
            $blad++;
            echo '<p>Proszę poprawnie wpisać hasło (od 6 znaków do 30 znaków). </p>';
        }
        if ($haslo !== $haslo2) {
            $blad++;
            echo '<p> Podane hasła nie są ze sobą zgodne. </p>';
        }
        if (!eregi("^[0-9a-z_.-]+@([0-9a-z-]+\.)+[a-z]{2,4}$", $email)) {
            $blad++;
            echo '<p> Proszę wprowadzić poprawnie adres email.</p>';
        } else {
            $wynik = mysql_query("SELECT * FROM $tabela WHERE email='$email'");
            if (mysql_num_rows($wynik) <> 0) {
                $blad++;
                echo '<p> Podany adres e-mail jest już zajęty.</p>';
            }
        }
        if ($email !== $email2) {
            $blad++;
            echo '<p> Podane adresy e-mail nie są ze sobą zgodne.</p>';
        }
        if (!$resp->is_valid) {
            $error = $resp->error;
            echo '<p>Proszę wpisać poprawnie wyrazy z obrazka.</p>';
            $blad++;
        }

        // jeżeli nie ma żadnego błedu, użytkownik zostaje zarejestronwany i wysłany do niego e-mail z linkiem aktywacyjnym
        if ($blad == 0) {

            $haslo = md5($haslo); // zaszyfrowanie hasla
            $kod = uniqid(rand()); // tworzenie unikalnego kodu dla użytkownika

            $wynik = mysql_query("INSERT INTO $tabela VALUES('', '$imie', '$nazwisko', '$login', '$haslo', '$email', '$kod', NOW(), '')");
            if ($wynik) {
                $list = "Witaj $login !
              Kliknij w poniższy link, aby aktywować swoje konto. http://www.historiasztuki.c0.pl/weryfikacja.php?weryfikacja=potwierdz&amp;kod=$kod";
                mail($email, "Rejestracja użytkownika", $list, "From: <kontakt@backmymoney.pl>");
                echo '<p>Dziękujemy za rejestrację! W ciągu nabliższych 5 minut dostaniesz wiadomość e-mail z dalszymi wskazówkami rejestracji.</p>';
                mysql_close($polaczenie);
                exit;
            }
        }
        mysql_close($polaczenie);
    }

    // tworzenie formularza HTML
    echo <<< KONIEC

    <form action="rejestracja.php" method="post">
    <input type="hidden" name="wyslane" value="TRUE" />

    <p>Imię: <input type="text" name="imie" /></p>
    <p>Nazwisko: <input type="text" name="nazwisko" /></p>
    <p>Login*: <input type="text" name="login" /></p>
    <p>Hasło*: <input type="password" name="haslo" /></p>
    <p>Powtórz hasło*: <input type="password" name="haslo2" /></p>
    <p>Adres e-mail*: <input type="text" name="email" /></p>
    <p>Powtórz adres e-mail*: <input type="text" name="email2" /></p>
KONIEC;

    echo recaptcha_get_html($publickey); // wyświetlanie reCAPTCHA
    echo <<< KONIEC

    <p><input type="submit" value="wyślij" /></p></form>
KONIEC;

} else {
    header('Location:glowna.html'); // zalogowany użytkownik zostaje przekierowany na stronę główną
}

?>

Jak by mi ktoś na podstawie załączonych przykładów podął jak to zrobić to byłbym dozgonnie wdzięczny

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Przecież masz komentarze do kodu, jeżeli nie potrafisz tego zrobić to tego nie rób, proste bo potem będziesz programował nie wiedząc co robisz.

Powiedz mi jaka jest różnica czy ja Ci coś wytłumaczę czy wytłumaczy Ci poradnik.

Ps ten kod co masz nie jest dobry, jest  mizerny i chyba wiem z jakiej strony go masz.  (

Jednakże nie chce mi się opisać CI czegoś takiego bo pewnie nawet nie przeczytałeś żadnego kursu a osobie która nie ma o tym pojęcia nic nie wytłumaczę, przeczytaj coś o funkcjach, klasach zapytaniach do bazy (lepiej o bibliotece PDO), później przyjdź.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Ja mam problem ze zrobieniem napisu pod "Powered by phpBB modified by Przemo © 2003 phpBB Group"

Kolor czerwony: tutaj ma być napis.

Screen wszystko pokazuje:

34098058442739343646.png

Mam plik overall_footer.tpl i oto końcowe linijki:

<!-- END advert -->

<!-- BEGIN pagina_pages -->

<div id="s_pagina" style="display: none; background: {T_TR_COLOR1}; border: solid {T_TR_COLOR3} 1px; width: 50px; height: 37px; position: absolute; filter: alpha(opacity=90); -moz-opacity: 0.90;" >

	<table align="center" cellspacing="0">

		<tr>

			<td align="right" valign="top">

				<div style="display: inline; font-size: 8px; width: 10px; height: 6px; cursor: pointer; margin: 0px;" align="right" onclick="document.getElementById('s_pagina').style.display='none';"><b>X</b></div>

			</td>

		</tr>

		<tr>

			<td align="center">

				<form action="{BASE_URL}" method="post"><select name="start" onchange="this.form.submit();">{pagina_pages.OPTIONS}</select></form>

			</td>

		</tr>

	</table>


</div>

Ogarnąłem to już sam

Edytowane przez pawel_ciosek

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Sorry za odkop, ale na tak banalne pytanie jak moje (dla mnie to poziom hard) nie będę zakładał nowego tematu. Wpisałem na jakieś stronie w jakieś pole tekst. Jak sprawdzić, czy tekst jest w zawarty w danej bazie MySQL? Tzn. czy istnieje taka kolumna w wybranej tabeli MySQL.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Witam, jestem zielony, ale to naprawdę zielony w PHP, także też zwracam się z prośbą do was, o pomoc.

 

Mianowicie chodzi mi o takie coś w postaci Quizu, na silnik MyBB - działa to jakoś tak:

 

- wchodzisz w link z quizem, odpowiadasz na pytania, wysyłasz, wypełniony quiz dostaję na PW forum lub Email, dobrze by było, aby jednak było to połączone z bazą danych forum  aby wyciągnąć login nadawcy wysłanego quizu, przeglądając google natknąłem się na taki kod, nie wiem kompletnie co zrobić:

<?php
session_start();
//Functions used
//MyBB Shizzle
define('IN_MYBB', 1); // Are we in MyBB? Yep!
require "./global.php"; // We need this to get the templates and database functions.
function get_random_numbers($num, $max){
        $array = array();
        while($num--){
                do {
                        $c = rand(1, $max);
                } while (in_array($c, $array));
                $array[] = $c;
        }
        return $array;
}
add_breadcrumb("Quiz", "quiz.php"); // This is the navbit part. People like to know where they are ;)
if(!$mybb->user['uid'] || $mybb->settings['enabled_t10q'] != 1){
        error_no_permission();
} else {
        $reg = "/".$mybb->settings['t10q_to_group']."/";
        $user2= $mybb->user['additionalgroups'];
        if($user2!=""){
                if(preg_match($reg,$user2)) error("<br />You already have access to the protected forum, you do not need to re-do the quiz.<br /><br />", "Quiz Already Complete!");
        }
}
$act = $mybb->input['action'];
if(!$act || $act=="start"){
        $uid = intval($mybb->user['uid']);
        $query = $db->simple_select("t10q_sessions", "*", "`uid`='".$uid."'");
        $session = $db->num_rows($query);
        $result = $db->fetch_array($query);
        if($session > 0){
                $complete = $result['completed'];
                if($complete == "true"){
                        $time = $result['time'];
                        $hours = ($mybb->settings['t10q_cooldown'] / 60);
                        if(time() < $time) error("You have already entered the quiz in the last $hours hours. You will be able to re-enter the quiz after the $hours hours is up.");
                        else $db->delete_query("t10q_sessions","`uid`='".$uid."'");
                }
        }
        $query = $db->simple_select("t10q_questions","*");
        $rows = $db->num_rows($query);
        $questions = $mybb->settings['t10q_num_questions'];
        if($questions > $rows) error('<br />Not enough questions added yet! The setting for number of questions is higher than the number of questions added.<br /><br />', 'Not enough questions!');
        $_SESSION['questions'] =  get_random_numbers($mybb->settings['t10q_num_questions'], $rows);
        $startmsg = $mybb->settings['t10q_start_msg'];
        $content = "<tr><td class='trow1'><center><br />
                $startmsg<br /><br />
        </center></td></tr><tr><td class='trow2'><center><br />
        <form action='quiz.php' method='POST'>
        <input type='hidden' name='action' value='savequestions' />
        <input type='submit' value='Start!' /><br /><br />
        </form></center>
        </td></tr>";
}
if($act == "savequestions"){
        $uid = $mybb->user['uid'];
        $query = $db->query("SELECT * FROM  `".TABLE_PREFIX."t10q_sessions` WHERE `uid`=$uid");
        $num = $db->num_rows($query);
        if($num == 0 ){
                $questions = implode("|",$_SESSION['questions']);
                $array = array(
                        "uid"=>$uid,
                        "questions"=>$db->escape_string($questions),
                );
                $db->insert_query("t10q_sessions", $array);
        } else {
                $session = $db->fetch_array($query);
                $_SESSION['questions'] = explode("|", $session['questions']);
        }
        header("Location: quiz.php?action=doquiz");
}
if($act == "doquiz"){
        $i=0;
        if(!isset($_SESSION['questions'])) header('Location: quiz.php');
        foreach($_SESSION['questions'] as $qid){
                if($i++%2 == 0) $td = 1;
                else $td = 2;
                $query = $db->simple_select("t10q_questions", "*", "`qid`='".$qid."'");
                $question = $db->fetch_array($query);
                if($db->num_rows($query) > 0){
                        $echo .= "<tr><td class='trow".$td."'><br />&nbsp;<b>".$question['question']."</b><br /><br />";
                        $an = 1;
                        foreach(explode("\n",$question['answers']) as $answer){
                                $echo .= "&nbsp;&nbsp;&nbsp;<input type='radio' name='".$qid."' value='".$an."'/> $answer<br /><br />";
                                $an++;
                        }
                        $echo .= "</td></tr>";
                }
        }
        $content = "<tr><td class='trow1' style='margin-left: 50px!important;'><center><form action='quiz.php?action=mark' method='POST'><br />
                $echo <tr><td class='trow1'><input type='submit' value='Submit!' onclick='return check()'/></td></tr>
        <br /><br /></form></center></td></tr>";
}
if($act == "mark"){
        if(!isset($_SESSION['questions'])) header('Location: quiz.php');
        $correct = 0;
        $incorrect = 0;
        $uid = intval($mybb->user['uid']);
        foreach($_SESSION['questions'] as $qid){
                $uanswer = $mybb->input[$qid];
                $query = $db->simple_select("t10q_questions","*","`qid`='".$qid."'");
                $answer1 = $db->fetch_array($query);
                $answer = $answer1['answer'];
                if($answer == $uanswer){
                        $correct++;
                        $array = array(
                                "correct"=>$answer1['correct'] + 1,
                        );
                        $db->update_query("t10q_questions",$array,"`qid`=$qid");
                }
                else {
                        $array = array(
                                "incorrect"=>$answer1['incorrect'] + 1,
                        );
                        $db->update_query("t10q_questions",$array,"`qid`=$qid");
                        $incorrect++;
                }
        }
        $pass = $mybb->settings['t10q_passrate'];
        if($correct >= $pass){
                $result = $mybb->user['additionalgroups'];
                if(empty($result)){
                        $groups = $mybb->settings['t10q_to_group'];
                } else {
                        $groups = $result.",".$mybb->settings['t10q_to_group'];
                }
                $array = array(
                        "additionalgroups" => $groups,
                );
                $db->update_query("users",$array,"`uid`='".$uid."'");
                $content = "<tr><td class='trow1'>".$mybb->settings['t10q_start_msg']."</td></tr>";#
                unset($_SESSION['questions']);
        } else {
                $setting = $mybb->settings['t10q_cooldown'];
                $time = time() + ($setting * 60);
                $array = array(
                        "completed"=>"true",
                        "time"=>$time,
                        "result"=>$correct,
                );
                $db->update_query("t10q_sessions",$array,"`uid`='".$uid."'");
                $content = "<tr><td class='trow1'>".$mybb->settings['t10q_fail_msg']."</td></tr>";
                unset($_SESSION['questions']);
        }
}
$message = "
<html>
<head>
<title>{$mybb->settings['bbname']} - Quiz</title>
{$headerinclude}
<script>
function check(){
        var c = confirm('Are you sure you want to submit? Please make sure you have answered all the questions to the best of your ability.');
        return c;
}
</script>
</head>
<body>
{$header}
<table border='0' cellspacing='1' cellpadding='4' class='tborder'>
<thead>
<tr>
<td class='thead' colspan='5'>
<div><strong>Quiz</strong><br /><div class='smalltext'></div></div>
</td>
</tr>
</thead>
<tbody>
$content
</tbody>
</table>
{$footer}
</body>
</html>
";
output_page($message);
?>

Za rozwiązanie mojego problemu lub udzielenie jakichkolwiek rad byłbym bardzo wdzięczny. :)

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach
O 31.01.2016o19:35, patrykvxm napisał:

Czołem! Wiecie co może być nie tak? Mi się wydaje, że jest błąd w skryptach PHP. 

Logi Apache

Z góry dzięki za pomoc! ;)

Foreach jest pętlą która "jedzie" po wartościach np. array'a, upewnij się że ma po czym się iterować. Żeby bardziej coś pomóc musiałbyś wkleić ten fragment kodu.

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Na strefie kursów obecnie jest dobry kurs programowania w PHP5:

http://strefakursow.pl/kursy/web_develop/kurs_programowania_w_php5.html

Możecie sobie zerknąć. Jakiś czas temu skorzystałem, sam kurs trwa dość długo, jakieś 6 godzin. Za to przekazuje wszystkie najważniejsze informacje w temacie .Gość ma dar przekonywania tak wiec mozna lątwo zrozumieć. 

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Cześć, mam malutki dosłownie problem, nie wykonuje mi się zapytanie do bazy z powodu:

Cytuj

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'use='0'' at line 1

Kod:

$sprawdz_nieuzytyklucz = mysql_query("Select * FROM $tbkey WHERE cdkey='$cookiekod' AND use='0'")  or die(mysql_error());

Chodzi o to, żeby system sprawdził, czy kod został użyty (służy do tego tabela "use").

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×