Autor Zpráva
AntonP
Profil
Dobrý večer,

pôjdem hneď k téme. Užívateľ zadá nejaký kupón a meno na jednej stránke. Klikne na tlačítko. 2 informácie (kupón a meno, na ktoré má byť kupón aktivovaný) sa odošlú na script pomocou GET. Na tento script to presmeruje aj užívateľa. V adrese sú napísané 2 informácie, tie čo som zadal, zatiaľ všetko vporiadku. Script má zistiť: dĺžku kódu - ak je kratšia ako 6, vypísať chybu a či sa kód nachádza v databáze. Ak nie, vypísať chybu. Lenže stránka očividne nedokáže spracovať GET údaje. URL je napr. pay.domena.eu/activateKupon.php?kod=12345&meno=jankohrasko. Do kódu napíšem echo $_GET["kod"]; (medzi ostatný kód, nie len tak samotné) a vyhľadávač nič nezobrazí. Ale pri načítaní sa mi zobrazí táto chyba: Fatal error: Call to a member function query() on null in /data/web/virtuals/******/virtual/www/domains/pay.**********.eu/aktivujKod.php on line 12
Môj kód je
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>ST.eu | Aktivačný script</title>

</head>
<body>


<?php

echo $_GET["kod"];

$mysqli = new mysqli('wm144.wedos.net', '*******_smskeys', '********', '*******_smskeys');
 
if ($mysqli->connect_error) {
    die("<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;>Ups, chyba! Toto nie je chyba na Vašej strane. Prosím, kontaktujte administrátora. <br><small>Popis chyby: nepodarilo con db</small></div>");

if (strlen($kod) < 6) {
              echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Kód je neplatný! <br><small>Popis chyby: kod < 6</small></div>";
              } else {
              $statusKod = "ok";
              }
              
              if ($result = $mysqli->query("SELECT * FROM test = '".$mysqli->real_escape_string($kod)."'")) {
    if ($result->num_rows === 0) {
        echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Kód je neplatný! <br><small>Popis chyby: kod sa nenachadza v db</small></div>";
    } else {
        $statusKod = "ok";
    }
 
    $result->close();
} else {
    echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Ups, chyba! Toto nie je chyba na Vašej strane. Prosím, kontaktujte administrátora. <br><small>Popis chyby: chyba v dotaze na db</small></div>";
}
 
$mysqli->close();
?>

</body>
</html>

Ďakujem za každú radu a pomoc. Prajem pekný zvyšok večera.
M4n
Profil *
Těžko říct, v souboru aktivujKod.php na řádku 12 voláš metodu query() z proměnné, která není objekt, ale null.

Kód, který jsi sem vložil, na řádku 12 nemá nic, takže to evidentně není ten, který chybu způsobil.
AntonP
Profil
Dobrý deň,

teraz prezerám ftp a z nejakej záhady je tam tento kód:
<?php
session_start();
$kod = $_SESSION["kod"];
$meno = $_SESSION["meno"];

if ($kod < 6) {
              echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Kód je neplatný! <br><small>Popis chyby: kod < 6</small></div>";
              } else {
              $statusKod = "ok";
              }
              
              if ($result = $mysqli->query("SELECT * FROM test = '".$mysqli->real_escape_string($kod)."'")) {
    if ($result->num_rows === 0) {
        echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Kód je neplatný! <br><small>Popis chyby: kod sa nenachadza v db</small></div>";
    } else {
        $statusKod = "ok";
    }
 
    $result->close();
} else {
    echo "<div style='background-color:LightCoral; text-align:center; font-weight: bold; padding:12px; margin-left:200px; margin-right:200px; margin-top:330px;'>Ups, chyba! Toto nie je chyba na Vašej strane. Prosím, kontaktujte administrátora. <br><small>Popis chyby: chyba v dotaze na db</small></div>";
}
 
$mysqli->close();
?>

Teraz som si to uvedomil, neviem, čo to má znamenať, asi nastala nejaká chyba v prenose. Veľmi sa ospravedlňujel, topic môžete vymazať. Ešte raz, prepáčte.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: