| 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: 12 let
|
|||
0