

PhP - po odeslani infa se nic nestane ?!
dobry den , kdyz uz mam udelanou registraci v php tak sem ji chtel vyzkouset.
zadam info (jmeno , heslo, email) a odeslu .. ale pak se nic nestane
co stim ? ....
muzete to vyskouset na adrese:http://bhacks-registration.atwebpages.com/index.ph p
a zde je php kod :
.
<?php
mysql_pconnect('fdb3.runhosting.com', '****', '****');
?>
<html>
<head>
<title>PHP Tutorials</title>
</head>
<body>
<?php
if ( !$_POST['submit'] ) {
?>
<form action="index.php" method="post">
<table border="1">
<tr>
<td>
Username:
</td>
<td>
<input type="text" name="username">
</td>
</tr>
<tr>
<td>
Password:
</td>
<td>
<input type="password" name="password">
</td>
</tr>
<tr>
<td>
Password (Confrim):
</td>
<td>
<input type="password" name="passwordconf">
</td>
</tr>
<tr>
<td>
Email:
</td>
<td>
<input type="text" name="email">
</td>
</tr>
<tr>
<td colspan="2" aling="center">
<input type="submit" value="Create User" name=submit">
</td>
</tr>
</table>
</form>
<?php
} else {
$username = $_POST ["username"];
$password = $_POST ["password"];
$paswordconf = $_POST["passwordconf"];
$email = $_POST["email"];
$errors = array();
if ( !$username ) {
$errors[1] = "You did not enter a username.";
}
if ( !$pasword ) {
$errors[2] = "You did not enter a password.";
}
if ( !$paswordcofn ) {
$errors[3] = "You did not enter a password confirmation.";
}
if ( !$email ) {
$errors[4] = "You did not enter email.";
}
if ( !$password != $passwordconf ) {
$errors[5] = "The passwords you entered did not match.";
}
if ( count($error) > 0 ) {
foreach ( $errors as $error ) {
echo "$error<br>";
}
} else {
mysql_query("INSERT INTO `users`.`user_info`
(`username`, `password`, `email`, `user_admin_level`)
VALUES ('".$username."', '".md5($password)."', '".$email."', '1') ; ") ;
}
}
?>
</body>
</html>
Ach ty blbé uvozovky
, pak člověk občas prohlíží program 50x a chybu nenajde
:
Co se ti na tom nezdá?
Že by name=submit" ? Zkus to nahradit tímto:
Edit: Asi by fungovala i varianta name=submit (bez uvozovek), ale zdá se mi to divné, radši používej uvozovky.
Edit2: A ještě popíšu, jak jsem na tu chybu přišel:
Nefunguje správně podmínka if ( !$_POST['submit'] ) => je formulář method=post => je, takže je problém se samotnou proměnnou submit => blbé uvozovky nalezeny
. Trénuj tohleto programátorsko/logické myšlení, pak na spoustu chyb přijdeš i bez pomoci a bude se ti celkově programovat lépe.
A jen tak mimochodem, tak, jak to teď máš, bych dokázal (a taky každý zkušenější hacker/programátor) smazat celou tabulku pomocí SQL injection. Nastuduj si, jak se proti tomu bránit.
ano i po oprave Php se stale nic nedeje
koukni zase na http://bhacks-registration.atwebpages.com/index.ph p
Mě se objevila po registraci prázdná stránka, což je v pořádku, nemáš tam žádný echo "Registrace OK"; nebo něco podobnýho, tudíž je to v pořádku.
Dej tam místo:
tohle:
Jestli se ti nic nevkládá do tabulky, tak máš něco blbě jinde, tipoval bych, že se tvoje databáze nejmenuje users, takže SQL dotaz upravit takto:
JOOO! mam to ... JSI BUH mas 1* :* :DDD
V čem teda byla chyba? btw označil jsem dotaz jako vyřešený.
database byla blbe pojmenovana :)
jo a jak tam mam napsane
tak to jsou chyby ze ?
no a jak nejakou chybu udelam tak se nic nestane .. nevis co stim ?
PS:SQL funguje :)
No já bych komplet ten systém vypisování chyb předělal, takhle mi to přijde pro tebe ne příliš stravitelné, raději snad pro začátečníka takto:
Ještě bych tam dal za sebe kontrolu správně zadaného emailu pomocí PCRE (regulární výrazy), ale to je na tebe asi zatím moc, spíš se soustřeď na to, abys nedělal začátečnický chyby, pak můžeš začít dělat pořádný věci
.
super funguje .. nemas skype. a jeste neco
jak nevypisu v tabulce vubec nic tak mi to tam porad napise
"Registration succesfully completed."
co stim :D ?
Skype nemám, jen ICQ. Zkus logicky uvažovat, na tohle tě nechám přijít samotnýho, nebudu sem psát hotovej kód jako na zlatým podnose, musíš být samostatný (stejnak po dopsání tohohle příspěvku vypínám PC) - pokud je nějaká chyba, je v proměnné $iserror uložena jednička. Máš tam podmínku, že pokud je $iserror jednička (nula), nesmí se respektive smí se požadavek do SQL vykonat?
vubec nechapu co jsi napsal :D
Schválně jsem si počkal na tvoji odpověď. Sorry, ale podle toho, co si myslím, nemáš ani špetku logického myšlení a to prostě potřebuješ mít. Přečti si to ještě jednou, potom třeba ještě jednou, slovo po slovu. Tak ještě jednou - pokud se stane nějaká chyba, uloží se do proměnné $iserror hodnota 1. Máš někde ošetřeno, že pokud hodnota $iserror je rovna jedničce, nesmí se SQL dotaz vykonat? Pokud ne, přidělej tam podmínku. A teď už definitivně padám, dobrou noc (snad ji neprobdíš nad tím, žes nepochopil co jsem napsal
).
kdyby sis tohle to vlakno prohlizel jeste jednou , tak sem na to asi prisel
:
takze to :
znamena ze pokud nenastane zadna chyba
tak se to posle
ale jestly nastane chyba :
tak mi vyskoci echo : " " .
Pochopil jsem to spravne ? :)
Jo a prosimte mi to jeste 1 zkontroluj neco tam mam blbe ,protoze jak to dam na web tak se nic nedeje ... :D
A mockrat ti dekuji ze sis na me udelal cas ..
Néééé, pochopils to úplně blbě
. Uvědom si, co máš v tom kódu, koukej se na ten kód (dal jsem sem pouze ústřižek):
Když nenastane chyba, máš v proměnné $iserror nulu, pokud chyba nastane, máš v proměnné $iserror jedničku a z toho musíš vycházet. Ano, dobře udělal jsi tam tu podmínku if($iserror==0), ale co to je dál za blbost? Co to je
Proč tam máš to (); ? Snad to má vypadat takto ne?
Hele, poradím ti jednu věc, na tohle se vyflákni a začni hned od začátku. Já začínal podle tohoto tutoriálu (možná není nejlepší, ale je to tam vysvětleno jak pro blbé:
), zabere ti to třeba půl roku, ale pak budeš PHP umět možná líp než já. Hlavně nevynechávej, neuděláš další lekce bez dokonalé znalosti předchozích!! A pokud není ani HTML tvá silná stránka, pak doporučím www.jakpsatweb.cz (tam najdeš i základy CSS javascriptu, což budeš taky potřebovat, zvlášť v budoucích pokročilých projektech).
php
Hezky od jedničky až do stovky (101. díl pak pro pobavení
nevim co bych bez tebe delal :) , a dekuji za odpoved
PS : HTML zvladam ...