Forum » Programiranje » php pomoč
php pomoč
kodsiti1 ::
Pozdravljeni, potreboval bi pomoč in sicer v skripti za registriranje uporabnike, potreboval pa bi 2 stvari.
1.) Kako naj naredim da bo Checkbox potrebno obkljukati in da brez njega ni mogoce opraviti registracije(tako kot je v skripti če je prostorček prazen za katerokoli drugo polje, sem probal za checkbox ampak ne deluje, o phpju imam pa bolj malo znanja)
2.) Referral ni nujno in je samo v nekaterih primerih. Sedaj pa kako bi naredil da v primeru da bi bil link referral(v kodi je narejeno da se v tem primeru pokaže novo oknco v katerem je številka referrala in je readonly) da bi se ta referral ob registraciji vpisal tudi v mysql bazo ker trenutno se ne, in ja sem naredil novo vrstico 'referrer' v mysql...
se drug del
Če bi znal kdo pomagat oz. napisat novo kodo bi bil zelo hvaležen
1.) Kako naj naredim da bo Checkbox potrebno obkljukati in da brez njega ni mogoce opraviti registracije(tako kot je v skripti če je prostorček prazen za katerokoli drugo polje, sem probal za checkbox ampak ne deluje, o phpju imam pa bolj malo znanja)
2.) Referral ni nujno in je samo v nekaterih primerih. Sedaj pa kako bi naredil da v primeru da bi bil link referral(v kodi je narejeno da se v tem primeru pokaže novo oknco v katerem je številka referrala in je readonly) da bi se ta referral ob registraciji vpisal tudi v mysql bazo ker trenutno se ne, in ja sem naredil novo vrstico 'referrer' v mysql...
<?php if (isset($_POST['registerBtn'])) { $username = $_POST['username']; $password = $_POST['password']; $rpassword = $_POST['rpassword']; $email = $_POST['email']; $errors = array(); $checkUsername = $odb -> prepare("SELECT COUNT(*) FROM `users` WHERE `username` = :username"); $checkUsername -> execute(array(':username' => $username)); $countUsername = $checkUsername -> fetchColumn(0); if ($checkUsername > 0) { $errors['Username is already taken']; } if (!ctype_alnum($username) || strlen($username) < 4 || strlen($username) > 15) { $errors[] = 'Username Must Be Alphanumberic And 4-15 characters in length'; } if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $errors[] = 'Email is invalid'; } if (empty($username) || empty($password) || empty($rpassword) || empty($email)) { $errors[] = 'Please fill in all fields'; } if ($password != $rpassword) { $errors[] = 'Passwords do not match'; } if (empty($errors)) { $insertUser = $odb -> prepare("INSERT INTO `users` VALUES(NULL, :username, :password, :email, 0, 0, 0, 0)"); $insertUser -> execute(array(':username' => $username, ':password' => SHA1($password), ':email' => $email)); echo '<div class="alert success"><p><strong>SUCCESS: </strong>User has been registered. Redirecting....</p></div><meta http-equiv="refresh" content="3;url=login.php">'; } else { echo '<div class="alert error"><p><strong>ERROR:</strong><br />'; foreach($errors as $error) { echo '-'.$error.'<br />'; } echo '</div>'; } } ?>
se drug del
<form action="" id="validate" class="form" method="POST"> <p class="inline-small-label"> <label for="username">Username</label> <input type="text" name="username" id="username" maxlength="15" class="required"> </p> <p class="inline-small-label"> <label for="password">Password</label> <input type="password" name="password" id="password" class="required"> </p> <p class="inline-small-label"> <label for="username">Repeat Pass</label> <input type="password" name="rpassword" id="rpass" class="required"> </p> <p class="inline-small-label"> <label for="username">Email</label> <input type="text" name="email" id="email" class="required"> </p> <?php if(isset($_GET['ref'])){?> <label for="input01"><strong>Referrer ID</strong></label> <input type="text" name="referral" id="referral" value="<?php echo $_GET['ref']; ?>" readonly="readonly"></p> <?php } ?> <p> <label><input type="checkbox" id="checkbox">DA</label> </p>
Če bi znal kdo pomagat oz. napisat novo kodo bi bil zelo hvaležen
- poskusilo klonirati: kodsiti1 ()
kodsiti1 ::
evo prosim moderatorja ce lahko zapre, sem prestavil v drugo temo mislim da je tista tematika bolj ugodna
php pomoč
php pomoč
Ziga Dolhar ::
Za začetek - daj checkboxu attribut name.
Kje se ti pa ustavi pri preverjanju, ali je checkbox označen ali ne?
Kje se ti pa ustavi pri preverjanju, ali je checkbox označen ali ne?
https://dolhar.si/
kodsiti1 ::
Aja minogrede skripta je delujoča, jaz sem dodal le ta checkbox kot label, ampak ni nobenega phpja ki bi to preveril, ker ne vem kako, to je potrebno dodati :c
Pa rad bi še vdelal za referrer...ko bi le znal... Saj nekaj improviziram samo porabim zlo veliko casa pa se rata mi ne.
Pa rad bi še vdelal za referrer...ko bi le znal... Saj nekaj improviziram samo porabim zlo veliko casa pa se rata mi ne.
satko ::
za checkbox lahko preveriš če je obkljukan z
tisto glede refferal pa nevem če sem razumel najbolje, ampak načeloma lahko podobno logiko
if(isset($_POST['checkbox']) == false){$errors[] = 'Checkbox ni nastavljen';}
tisto glede refferal pa nevem če sem razumel najbolje, ampak načeloma lahko podobno logiko
if(isset($_POST['referal'])){//Vstaviš $_POST['referal'] v bazo}
kodsiti1 ::
E hvala ti za checkbox dela.
Glede referrala sem pa pač mislil, da se nebo vsak registriral preko referrala, če se bo bo pa v linku register.php?ref=številka in sej je v kodi da se pojavi novo oknce kjer piše referral... Ampak ni pa nikjer v phpju da bi se to vpisalo v mysql bazo, in to je tisto kar hočem.
Glede tega pa nevem kam naj to vstavim oz. kako...mislim da bi bilo treba v tem del kode samo nimam pojma kako in če se da IF vstavljat tu vmes
Glede referrala sem pa pač mislil, da se nebo vsak registriral preko referrala, če se bo bo pa v linku register.php?ref=številka in sej je v kodi da se pojavi novo oknce kjer piše referral... Ampak ni pa nikjer v phpju da bi se to vpisalo v mysql bazo, in to je tisto kar hočem.
Glede tega pa nevem kam naj to vstavim oz. kako...mislim da bi bilo treba v tem del kode samo nimam pojma kako in če se da IF vstavljat tu vmes
$insertUser = $odb -> prepare("INSERT INTO `users` VALUES(NULL, :username, :password, :email, 0, 0, 0, 0)"); $insertUser -> execute(array(':username' => $username, ':password' => SHA1($password), ':email' => $email));
satko ::
če insertaš na ta način, morajo biti vpisani podatki v istem zaporedju kot si sledijo stolpci
ker ne poznam strukture tvoje tabele predvidevajmo, da je recimo zadnji stolpec refferal
ker ne poznam strukture tvoje tabele predvidevajmo, da je recimo zadnji stolpec refferal
$referral = $_POST['referral']; if(empty($referral)){ $sql = "INSERT INTO `users` VALUES(NULL, :username, :password, :email, 0, 0, 0, 0, NULL)" $arr = array(':username' => $username, ':password' => SHA1($password), ':email' => $email)); } else{ $sql = "INSERT INTO `users` VALUES(NULL, :username, :password, :email, 0, 0, 0, 0, :referral)" $arr = array(':username' => $username, ':password' => SHA1($password), ':email' => $email, ':referral' => $referral)); } $insertUser = $odb -> prepare($sql); $insertUser -> execute($arr);
Zgodovina sprememb…
- spremenil: satko ()
kodsiti1 ::
ja hvala sem zrihtal in deluje.
Sedaj imam pa še eno drugo stvar in sicer prejšna osnova je bila takšna in je delovala.
Sedaj pa bi jaz rad da se zapiše v tabelo tudi referral številka(ta številka je zapisana v tabeli "users" vrstica referral). In sem naredil takole, nevem pa če je prav ali ni, morda kdo ve če je in ali bo delovalo?
Z tisto "select" vrstico je mišljeno da najde referral številko pod userjem z katerim se ujema številka njegovega računa ki je znana.... Samo nevem če sem pravilno napisal kodo in bo poiskalo referral številko ali id številko?
Sedaj imam pa še eno drugo stvar in sicer prejšna osnova je bila takšna in je delovala.
$usernamesql = $odb -> prepare("SELECT `username` FROM `users` WHERE `id` = :id"); $usernamesql -> execute(array(":id" => (int)$user_id)); $username = $usernamesql -> fetchColumn(0); $data = array( ':tid' => $txn_id, ':plan' => (int)$membership_id, ':email' => $_POST['payer_email'], ':user' => (int)$user_id, ':paid' => (float)$mc_gross, ); $odb -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); $insertsql = $odb -> prepare("INSERT INTO `payments` VALUES(NULL, :paid, :plan, :user, :email, :tid, UNIX_TIMESTAMP())"); $insertsql -> execute($data);
Sedaj pa bi jaz rad da se zapiše v tabelo tudi referral številka(ta številka je zapisana v tabeli "users" vrstica referral). In sem naredil takole, nevem pa če je prav ali ni, morda kdo ve če je in ali bo delovalo?
$usernamesql = $odb -> prepare("SELECT `username` FROM `users` WHERE `id` = :id"); $usernamesql -> execute(array(":id" => (int)$user_id)); $username = $usernamesql -> fetchColumn(0); $refsql = $odb -> prepare("SELECT `referral` FROM `users` WHERE `id` = :id"); $refsql -> execute(array(":id" => (int)$ref_id)); $ref = $refsql -> fetchColumn(0); $data = array( ':tid' => $txn_id, ':plan' => (int)$membership_id, ':email' => $_POST['payer_email'], ':user' => (int)$user_id, ':paid' => (float)$mc_gross, ':ref' => (int)$ref_id, ); $odb -> setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING ); $insertsql = $odb -> prepare("INSERT INTO `payments` VALUES(NULL, :paid, :plan, :user, :email, :tid, UNIX_TIMESTAMP(), :ref)"); $insertsql -> execute($data);
Z tisto "select" vrstico je mišljeno da najde referral številko pod userjem z katerim se ujema številka njegovega računa ki je znana.... Samo nevem če sem pravilno napisal kodo in bo poiskalo referral številko ali id številko?
Zgodovina sprememb…
- spremenilo: kodsiti1 ()
satko ::
zgleda že prav, edino ni najbolj smotrno da dvakrat kličeš sql bazo, sploh glede na to da podajaš iste parametre. To lahko vse narediš z enim select stavkom
recimo tako:
recimo tako:
$usernamesql = $odb -> prepare("SELECT `username`, `referral` FROM `users` WHERE `id` = :id"); $usernamesql -> execute(array(":id" => (int)$user_id)); $username = $usernamesql -> fetchColumn(0); $ref = $usernamesql -> fetchColumn(1); //ker smo referral podali na drugem mestu, bo v rezultatu v drugem stolpcu
Zgodovina sprememb…
- spremenil: satko ()
kodsiti1 ::
Ok hvala sem do sedaj vse popravil in evo sedaj pa nova stvar
In sicer tale koda deluje
Naloga je da dobi podatke o transakcijah, in deluje, samo jaz bi rad da dobi samo tiste transakcije, kjer se referral številka v payments tabeli ujema z številko uporabnika.
In predvidevam da bi moral dodati to kodo.
Ampak problem je ker nevem kam naj to vstavim? Sem probaval pa mi vedno javi error "
Fatal error: Call to a member function fetch()" Za to vrstico(BREZ TE "where ref=id" pa normalno deluje!)
Ce kdo morda ve, kam bi moral vriniti tole where ref = id kodo?
In sicer tale koda deluje
$SQLGetLogs = $odb -> query("SELECT `payments`.*, `plans`.`name` AS `planname`, `users`.`username` FROM `payments` LEFT JOIN `plans` ON `payments`.`plan` = `plans`.`ID` LEFT JOIN `users` ON `payments`.`user` = `users`.`ID` ORDER BY `ID` DESC"); while($getInfo = $SQLGetLogs -> fetch(PDO::FETCH_ASSOC)) { $user = $getInfo['username']; $plan = $getInfo['planname']; $email = $getInfo['email']; $tid = $getInfo['tid']; $amount = $getInfo['paid']; $date = date("m-d-Y, h:i:s a" ,$getInfo['date']);
Naloga je da dobi podatke o transakcijah, in deluje, samo jaz bi rad da dobi samo tiste transakcije, kjer se referral številka v payments tabeli ujema z številko uporabnika.
In predvidevam da bi moral dodati to kodo.
WHERE 'ref' = ':id'
Ampak problem je ker nevem kam naj to vstavim? Sem probaval pa mi vedno javi error "
Fatal error: Call to a member function fetch()" Za to vrstico(BREZ TE "where ref=id" pa normalno deluje!)
while($getInfo = $SQLGetLogs -> fetch(PDO::FETCH_ASSOC))
Ce kdo morda ve, kam bi moral vriniti tole where ref = id kodo?
fx ::
Zanima me, kako lahko rešim težavo. Namreč s PHP in MySQL generiram PDF dokument, katerega predhodno v brskalniku pregledaš in nato ga shraniš.
Pri shranjevanju, želim da v oknu zapiše ustrezno poljubno ime in ne ime dokumenta (v mojem primeru pdf.php).
Uporabljam mPDF, kateri pozna naslednji ukaz
Slednja vrstica zelo lepo deluje v FF in Chromu v IE11 pa ne.
Moje vprašanje je, če obstaja kaj takega, da v brskalniku vidiš URL : http://domena.eu/poljubno ime dokumenta.pdf v resnici je to http://domena.eu/pdf.php?id=12345 in ko shraniš ti kar ponudi ime dokumenta in ne *.php
Hvala,
Pri shranjevanju, želim da v oknu zapiše ustrezno poljubno ime in ne ime dokumenta (v mojem primeru pdf.php).
Uporabljam mPDF, kateri pozna naslednji ukaz
$mpdf->Output("poljubno ime dokumenta.pdf", "I");
Slednja vrstica zelo lepo deluje v FF in Chromu v IE11 pa ne.
Moje vprašanje je, če obstaja kaj takega, da v brskalniku vidiš URL : http://domena.eu/poljubno ime dokumenta.pdf v resnici je to http://domena.eu/pdf.php?id=12345 in ko shraniš ti kar ponudi ime dokumenta in ne *.php
Hvala,
Lep pozdrav,
fx
fx
Ziga Dolhar ::
Ti morda ne deluje zaradi presledkov? Kaj se zgodi, če presledke nadomestiš z %20?
https://dolhar.si/
fx ::
Se vedno v IE 11 ne dela, ce dodam %20 ali pa odstranim presledke, mi pri shranjevanju ponuja ime pdf da naj tako shranim.
Lep pozdrav,
fx
fx
fx ::
Trenutno sem naredil tako, da php pogleda kateri brskalnik uporablja uporabnik in če je IE potem začasno shrani datoteko na strežnik in uporabnika preusmeri na imenovano datoteko in potem ko izbereš shrani lepo izpiše ime dokumenta, kakor sem želel s presledki in podobno.
Hvala za trud.
Hvala za trud.
Lep pozdrav,
fx
fx
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | php vprašanje.Oddelek: Programiranje | 2248 (1492) | fx |
» | [php] preverjanje online uporabnikovOddelek: Programiranje | 2064 (1720) | cobrica |
» | Problem z DNS (non-improving refferal)Oddelek: Omrežja in internet | 5414 (5139) | SasoS |
» | problem z phpjemOddelek: Izdelava spletišč | 4253 (3666) | snow |
» | Zelo enostavna PHP skripta, ki ne dela - help :(Oddelek: Izdelava spletišč | 1558 (1323) | snow |