Autor | Zpráva | ||
---|---|---|---|
vojja01 Profil * |
#1 · Zasláno: 20. 9. 2012, 14:06:04
Dobrý den,
Mám jeden problém na mých stránkách (primitivní sociální síť). Mám soubor registrace.php: <? include "../etc/databaselogin.php"; //zakódování přihlašovacích informací $naroz = $_POST["year"]."-".$_POST["month"]."-".$_POST["day"]; $headers = "From: Kuncbook@bozena.net\n"."Content-Type: text/plain; charset=\"utf-8\"\n"; $username = encrypt($_POST["usrnm"]); $password = encrypt($_POST["drwsp"]); $mail = encrypt($_POST["email"]); $narozeniny = encrypt($naroz); if($_POST["registrovano"]): //pokud vyplnil pole pro registraci if($_POST["drwsp"] == "" || $_POST["drwsp2"] == ""): //nevyplněné header('Location: spanta-registrace.php'); //další kontroly... else: //prošel kontrolami if(mail($_POST["email"], "Registrace na Kuncbook", "Vitajte!!!!\nPro dokončení registrace na Kuncbook klikněte na následující odkaz:\nhttp://kuncbook.ic.cz/registration/dokonceni-registrace.php?usrnm=".$username."&drwsp=".$password."&email=".$mail."&date=".$narozeniny, $headers)): //odešlu mail echo "Na Váš E-mail byl odeslán odkaz na dokončení registrace ;) ."; else: echo "Email se nepodařilo odeslat :("; endif; endif; else: //ještě nevyplnil include "form.php"; endif; ?> dokonceni-registrace.php: <? include "../etc/databaselogin.php"; //dešifrování údajů z adresy $username = iconv("UTF-8", "ISO-8859-2", decrypt($_GET["usrnm"])); $password = iconv("UTF-8", "ISO-8859-2", decrypt($_GET["drwsp"])); $mail = iconv("UTF-8", "ISO-8859-2", decrypt($_GET["email"])); $narozeniny = decrypt($_GET["date"]); // $sql = " INSERT INTO uzivatele ( id , jmeno , heslo , email , narozeniny ) VALUES ( NULL , '$username', '$password', '$mail', '$narozeniny' ); "; $vysledek = mysql_query($sql); if($vysledek): header("Location: index.php"); else: echo "Registrace se nepodařila :'( Opakujte prosím znovu."; endif; ?> Jenže, někdy ty údaje vypadají ůplně jinak, než by měly. Např. místo vyplněného emailu (např. SURAN******K@seznam.cz, hvězdišky kvůli anonymitě ;) se vloží jen: "Bwk Není to tak vždy. Někdy to funguje, někdy ne, zkoušel jsem to mockrát. Tuším, že budu muset dát někam entitu místo ampresandu nebo tak něco, ale zatím jsem na nic nepřišel. Předem díky za všechny příspěvky. Jen dodávám, že něco jsem mírně upravil. |
||
panther Profil |
#2 · Zasláno: 20. 9. 2012, 14:11:39
vojja01:
kde se ten string „bwk“ bere? V emailu nemaji uvozovky co delat, dale neosetrujes data vstupujici do SQL dotazu od uzivatele. |
||
vojja01 Profil * |
#3 · Zasláno: 20. 9. 2012, 14:14:20
No, to právě nevím kde se to bere, měl tam být email. Nevím, kde myslíš ty uvozovky.
|
||
Šéva Profil |
#4 · Zasláno: 20. 9. 2012, 15:23:07
vojja01:
to "bwk" se vkládá kdy, to jsi nějak vypozoroval? Napadá mě, jestli se někde nepřidávají nějaké mezery nebo znaky, které to nemá rádo... pokud to dělá u nějakého konkrétního mailu, i když by taky tohle mohlo dělat ta změna kódování... |
||
panther Profil |
#5 · Zasláno: 20. 9. 2012, 15:29:05
vojja01:
„to právě nevím kde se to bere“ a my to vedet mame? Zacni si postupne debugovat, jestli je v jednotlivych promennych prubezne to, co v nich ocekavas. Ono je divne uz jen to, ze tahas maily apod. v URL. Co te k tomu vede? |
||
vojja01 Profil * |
#6 · Zasláno: 20. 9. 2012, 18:47:33
Já právě nevím, proč to tam je :(( To překódování je kvůli tomu, že databáze používá jiné kódování.
Jeden příklad: nechal jsem si odeslat zkušební email s adresou " dokonceni-registrace.php?usrnm=IIcmbf314PJ74p1N01H12/Ez3LYqeALtaVVvhX4dYxI=&drwsp=JMml4yMI11JCKSMB4QyuFQ7tGASZKYADbDNVdGGx5Ys=&email=/rb7eirhKeiZo+4s/l7lTV2arEYPyOwChU2Sn76lFI0=&date=x+3UbINwP/Hzs9698auHdNseL81V+RcsCIqkK5pcz50= " Což by mělo znamenat: usrnm=Uživatel Náhodný, drwsp(jako heslo)=mojeheslo, email=admin.xtrazabava@email.cz, date=1995-11-14. Jenže, v souboru dokoneni-registrace.php jsem si zapnul vypisování sql dotazu s dekódovanými daty, který vypadá takto: INSERT INTO uzivatele ( id , usrnm , drwsp , email , narozky ) VALUES ( NULL , 'Uživatel Náhodný', 'mojeheslo', '', '5\°7_M]Ôy|tlĺ˛âł-úh•%;ÚőŞô' ); Většinou je problém v tom emailu, před chvílí jsem to zkoušel znovu, jen se pro změnu neuložilo nic, pouze kolonka email obsahovala otazník :/ |
||
Šéva Profil |
#7 · Zasláno: 21. 9. 2012, 07:18:05
vojja01:
Zkus si vsechny údaje dát do jednoho řetězce, oddělit to nějakým speciálním znakem, to celé zašifrovat a pak to posílat na mail. Následně po kliknutí na odkaz si ten retězec zpětně rozšifruj, před explode() dej do pole a pak to nasázej do DB |
||
WeeHool Profil |
problém byl patrně v php.. přeinstaloval sem easyphp a teďka to hází jiný chyby, že je formulář moc velkej a tak.. právě pracuju na tom, jak ho zeštíhlit.. třeba mi to pak házet chybu nebude..
|
||
Šéva Profil |
#9 · Zasláno: 21. 9. 2012, 10:04:58
WeeHool:
uprav si post_max_size v php.ini |
||
Časová prodleva: 12 let
|
0