Autor | Zpráva | ||
---|---|---|---|
Martin21000 Profil |
#1 · Zasláno: 19. 2. 2014, 21:38:16
Zdravím,
dneska jsem hodil databázi na server Forpsi ale. Vyskytl se záhadný problém. Ze začátku, když jsem si ještě zapomněl přepsat údaje z localhost na jejich atd. mi to vypisovalo chybové hlášky, že se nedá připojit k db. Jenomže když jsem to celé napravil a zkusil se lognout tak se mi vypisuje hláška, že mám nevalidní heslo a email. Když jsem zkoušel ze srandy registraci, nezapsaly se mi žádné údaje. Tudíž z toho vyplývá že i když se mi nezobrazuje chybová hláška tak se pořád nemůžu k té dané databázi připojit. Jen nevím, kdy by mohl být zakopaný pes? |
||
Tori Profil |
#2 · Zasláno: 19. 2. 2014, 21:45:59
|
||
Martin21000 Profil |
#3 · Zasláno: 19. 2. 2014, 21:51:25
Netuším, ale vypadá to na to. Nevíte, kde bych to .htaccess mohl najít a upravit? Děkuji
|
||
Tori Profil |
#4 · Zasláno: 19. 2. 2014, 21:55:11
Martin21000:
Je to normální textový soubor, který uložíte do hlavního adresáře webu. Ale doporučuju spíš nezvykat si na tohle nastavení a důsledně používat pole $_GET a/nebo $_POST. register_globals už současná verze PHP nepodporuje, takový kód vám bude zlobit na více serverech. |
||
Martin21000 Profil |
Tori:
Všude používám pole GET a POST. Jsem právěže myslel, že ten kód je speciálně pro ně, aby chodil. (?) ------------------------------------------------------- Přesto mi to stále nefunguje. :( |
||
Tori Profil |
#6 · Zasláno: 19. 2. 2014, 22:22:53
Martin21000:
„Všude používám pole GET a POST. Jsem právěže myslel, že ten kód je speciálně pro ně, aby chodil.“ Aha. Ne, to jsme se špatně pochopili. :) register_globals = On je k tomu, aby proměnná $_GET['neco'] byla dostupná i jako $neco .
Jak vypadá ta registrace - escapujete údaje z formuláře? Zkusil jste ověřovat, jestli se SQL dotaz provedl a pokud neprovedl, tak zjistit chybu? (Nechcete sem poslat relevantní kus kódu z registrace? Ukázku formuláře + ukládání dat. Dalo by se radit konkrétně.) |
||
Martin21000 Profil |
#7 · Zasláno: 19. 2. 2014, 22:29:31
Ano, to jsem opomenul.
Doufám, že mi z toho kódu vyčtete nějakou chybičku, která to všechno zapříčiňuje. :-) registrace.php <html> <head> <meta http-equiv='Content-Type' content='text/html; charset=cp1250' /> </head> <body> <h1>REGISTRACE</h1> <form action="pridavani.php" method="POST"> <div><label for="jmeno">Jméno:</label></div> <div><input type="text" size="25" name="jmeno"></div> <div><label for="prijmeni">Příjmení:</label></div> <div><input type="text" size="25" name="prijmeni"></div> <div><label for="email">E-mail:</label></div> <div><input type="text" size="25" name="email"></div> <div><label for="heslo">Heslo:</label></div> <div><input type="password" size="25" name="heslo"></div> <div><label for="heslo1">Heslo:</label></div> <div><input type="password" size="25" name="heslo1"></div> <div><label for="mesto">Město:</label></div> <div><input type="text" size="25" name="mesto"></div> <div><label for="ulice">Ulice:</label></div> <div><input type="text" size="25" name="ulice"></div> <input type="submit" value="ODESLAT" name="jdi"> </form> </body> </html> pridavani.php <?php require_once 'db.php'; // POKUD UŽIVATEL ODESLAL DATA if(isset($_POST['jdi'])) { // POKUD ZADAL JMÉNO if(isset($_POST['jmeno'])) { $jmeno = (trim($_POST['jmeno'])); } // POKUD ZADAL PŘIJMENÍ if(isset($_POST['prijmeni'])) { $prijmeni = trim($_POST['prijmeni']); } // POKUD ZADAL EMAIL if(isset($_POST['email'])) { $email = stripslashes(htmlspecialchars(trim($_POST['email']))); } // POKUD ZADAL HESLO if(isset($_POST['heslo'])) { $heslo = stripslashes(htmlspecialchars(trim($_POST['heslo']))); } // POKUD ZADAL HESLO1 if(isset($_POST['heslo1'])) { $heslo1 = stripslashes(htmlspecialchars(trim($_POST['heslo']))); } // POKUD ZADAL MĚSTO if(isset($_POST['mesto'])) { $mesto = trim($_POST['mesto']); } // POKUD ZADAL ULICI if(isset($_POST['ulice'])) { $ulice = trim($_POST['ulice']); } //POKUD JSOU VŠECHNA POLÍČKA VYPLNĚNÁ if(!empty($jmeno) AND !empty($prijmeni) AND !empty($email) AND !empty($heslo) AND !empty($mesto) AND !empty($ulice)) { if (ereg("^.+@.+\\..+$", $email)) { if($heslo == $heslo1) { mysql_query("INSERT INTO uzivatel (jmeno, prijmeni, email, heslo, mesto, ulice, prava) VALUES ('$jmeno','$prijmeni','$email','$heslo','$mesto','$ulice','0');"); echo "Děkujeme za registraci! Nyní se můžete <a href='prihlasit.html'>přihlásit.</a> "; } else {echo "Hesla se neshodují.";} } else { echo "Zadal jsi špatně emailovou adresu."; } } else { echo "Nevyplnil jste všechna pole!"; } } ?> |
||
abc Profil |
#8 · Zasláno: 19. 2. 2014, 23:04:33
Martin21000:
Zkus na řádku 52 v pridavani.php nahradit podminku za tuto: if(filter_var($email, FILTER_VALIDATE_EMAIL) S tím heslem - shodují se hesla vyplněná ve formuláři? Případně prosím o přesné znění chybové hlášky a případně obsah souboru db.php (se smazanými přihl. údaji k DB) |
||
Tori Profil |
Na escapování dat posílaných do DB se používá mysql_real_escape_string. Pokud na serveru není zapnutá volba magic_quotes, tak není nutné odstraňovat zpětná lomítka.
Máte (jen teď, za účelem nalezení chyby) zapnuté zobrazování chyb? (viz FAQ) |
||
Martin21000 Profil |
#10 · Zasláno: 20. 2. 2014, 07:05:02
Teď se mi ovšem přihodilo to nejlepší. Už se nemůžu připojit ani do admin. databáze forpsi :( Nevím, jestli mají nějaký výpadek nebo co. Ale až se to spraví tak se ozvu.
|
||
Martin21000 Profil |
Tori:
Nahrazeno - nefunguje. Hesla se shodují. db.php <?php $DBSERVER = 'server'; $DBUSER = 'login'; $DBPASS = 'pass'; $DB = 'databaze'; $link = mysql_connect($DBSERVER,$DBUSER,$DBPASS) or die ('I cannot connect'); mysql_select_db($DB,$link) or die ('I cannot select DB'); mysql_query("SET NAMES 'cp1250'"); ?> Teď jsem nepochopil, kde by se tedy správně to mysql_real_escape_string mělo správně používat? Nicméně jsem smazal všechny escapovací funkce a stále nefunguje. Zapnuté zobrazování chyb jsem zkusil dát do pridavani.php a nic se neukázalo. Použil jsem tento kód: ini_set('display_errors', 'On'); error_reporting(E_ALL); V připojení do databáze není problém. Klidně se do ní dokážu přihlásit. Jen ta registrace jaksi vázne :( |
||
abc Profil |
#12 · Zasláno: 20. 2. 2014, 18:30:26
Jak se to tedy projevuje?
Vypíše se něco na stránku nebo se nestane nic? |
||
Martin21000 Profil |
#13 · Zasláno: 20. 2. 2014, 18:53:44
Už je to funkční. Ani nevím v čem jsem měl chybu. Prostě jsem s tím zkoušel všechno až to nakonec jede. Každopádně díky za pomoc!
|
||
Časová prodleva: 10 let
|
0