Pomozte mi prosím najít chybu! Nejde to:(
9 příspěvků
Archiv diskusního fóra
Fórum je uzavřené a slouží pouze ke čtení. Některé informace mohou být zastaralé.
-
Na řádku 206 to vypisuje chybu, ale já jí nemůžu najít.. Newim, jak jí mám opravit. Pomozte mi ji prosím najít... <?php function formular() { ?> <form method="post" action="registrace.php"> <table width="100%" border="0" cellpadding="4" cellspacing="0"> <tr> <td width="24%" align="left" valign="top">Přihlašovací jméno [!]</td> <td width="76%"><input name="username" type="text"></td> </tr> <tr> <td align="left" valign="top">Kolej [!]</td> <td><input name="kolej" type="text"></td> </tr> <tr> <td align="left" valign="top">Email [!]</td> <td><input name="email_address" type="text"></td> </tr> <tr> <td align="left" valign="top">ICQ</td> <td><input name="icq" type="text"></td> </tr> <tr> <td align="left" valign="top">Místo</td> <td><input name="misto" type="text"></td> </tr> <tr> <td align="left" valign="top">Datum narození</td> <td><input name="narozeni" type="text"></td> </tr> <tr> <td align="left" valign="top">Pohlaví</td> <td><input name="pohlavi" type="text"></td> </tr> <tr> <td align="left" valign="top">Pravé jméno</td> <td><input name="jmeno" type="text"></td> </tr> <tr> <td align="left" valign="top">Zájmy</td> <td><textarea name="info"></textarea></td> </tr> <tr> <td align="left" valign="top"> </td> <td><input type="submit" name="submit" value="Registrovat"></td> </tr> </table> </form> <?php } function konec() { ?> </body> <?php } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <head> <meta http-equiv="Content-Language" content="cs"> <meta name="GENERATOR" content="Microsoft FrontPage 5.0"> <meta name="ProgId" content="FrontPage.Editor.Document"> <meta http-equiv="Content-Type" content="text/html; charset=windows-1250"> <title>Registrace</title> </head> <body background="http://hocz-online.ic.cz/image/backgroundtatable1.jpg"> <?php if (isset($submit)) { include 'db.php'; // definice proměnných $username = $_POST['username']; $kolej = $_POST['kolej']; $email_address = $_POST['email_address']; $icq = $_POST['icq']; $misto = $_POST['misto']; $narozeni = $_POST['narozeni']; $pohlavi = $_POST['pohlavi']; $jmeno = $_POST['jmeno']; $info = $_POST['info']; $username = stripslashes($username); $kolej = stripslashes($kolej); $email_address = stripslashes($email_address); $icq = stripslashes($icq); $misto = stripslashes($misto); $narozeni = stripslashes($narozeni); $pohlavi = stripslashes($pohlavi); $jmeno = stripslashes($jmeno); $info = stripslashes($info); // kontrola vyplnění údajů if((!$username) || (!$kolej) || (!$email_address)){ echo '<b>Během registrace nastaly tyto chyby:</b><br>'; echo '<ul>'; if(!$usernamename){ echo "<li>Chybí přihla?ovací jméno!</li>"; } if(!$kolej){ echo "<li>Chybí název koleje!</li>"; } if(!$email_address){ echo "<li>Chybí emailová adresa!</li>"; } echo '</ul>'; formular(); konec(); exit(); } // kontrola emailu a jména v DB $sql_email_check = mysql_query("SELECT email_address FROM users WHERE email_address='$email_address'"); $sql_username_check = mysql_query("SELECT username FROM users WHERE username='$username'"); $email_check = mysql_num_rows($sql_email_check); $username_check = mysql_num_rows($sql_username_check); if(($email_check > 0) || ($username_check > 0)){ echo "<b>Omlouváme se ale:</b><br>"; echo "<ul>"; if($email_check > 0){ echo "<li>Uvedená emailová adresa se ji? v databázi vyskytuje!</li>"; unset($email_address); } echo "<li>Uvedené ICQ číslo se ji? v databázi vyskytuje!</li>"; unset($email_address); } if($username_check > 0){ echo "<li>Uvedené přihla?ovací jméno je ji? pou?íváno!</li>"; unset($username); } echo "</ul>"; formular(); konec(); exit(); } // v?echny údaje jsou zkontrolovány // vygenerujeme heslo function password() { $salt = "$heslo"; srand((double)microtime()*1000000); $i = 0; while ($i <= 7) { $num = rand() % 33; $tmp = substr($salt, $num, 1); $pass = $pass . $tmp; $i++; } return $pass; } $random_password = password(); $db_password = md5($random_password); // vlo?ní údajů do DB $info2 = htmlspecialchars($info); $sql = mysql_query("INSERT INTO users (username, kolej, email_address, icq, misto, narozeni, pohlavi, jmeno, password, info, signup_date) VALUES('$username', '$kolej', '$email_address', '$username', '$icq', '$misto', '$narozeni', '$pohlavi', '$jmeno', '$db_password', '$info2', now())") or die (mysql_error()); if(!$sql){ echo '<p>Při vytváření vy?eho účtu nastala neočekávaná chyba.</p>'; } else { $userid = mysql_insert_id(); $subject = "Registrace"; $message = "Dobrý den, děkuji za registraci na stránkách http://www.hocz-online.ic.cz! Pro aktivaci va?eho účtu musíte nav?tívit tuto adresu: http://www.hocz-online.ic.cz/aktivace.php?id=$userid&code=$db_password Po aktivaci se budete moci přihla?ovat pomocí následujících údajů: Jméno: $username Heslo: $random_password Děkujeme! Toto je automoaticky sestavený email, prosím neodpovídejte na něj!"; mail($email_address, $subject, $message, "From: Webmaster<admin@hocz-online.ic.cz>\nX-Mailer: PHP/" . phpversion()); echo '<p>Informace byly zaslány na va?í emailovou adresu. Po přečtení emailu prosím dokončete registraci.</p>'; konec(); } } else { formular(); konec(); } ?>
-
Priste pis radeji cast kodu kolem chyboveho radku a HLAVNE napis o jakou chybu se jedna. Strcit sem cely kod neni dobry napad. Nikomu se pak nebude chtit hledat za tebe chybu a navic v takove placanine. No ale kdyz uz jsou ty Vanoce. Tak chyba je v posledni casti kodu. Nevim k cemu patri posledni "} else {" na konci radku. Nekde ti tam zrejme chybi "}" nebo taky prebiva. Projdi si jeste jednou poradne vsechny podminky, jestli jsou ukoncene.
-
asi nikdo nebude pocitat, kterej radek je 206. taky by bylo dobry rict, jakou chybu to vypisuje
-
ok.. já vim:o) ty { kolem else tam nebyly ale ono to nefungovalo bez nich a teď to nejde ani snima:(
-
Maikis: Mas tam konstrukci (ve zkratce): if(!$sql){ echo '<p>Při vytváření vy?eho účtu nastala neočekávaná chyba.</p>'; } else { $userid = mysql_insert_id(); $subject = "Registrace"; $message = "Dobrý den, ........ a tak dal..."; mail(......); } else { formular(); konec(); } Nemuzes tam mit dvakrat else.
-
To mne taky napadlo. Ale to else muze taky patrit nejake jine podmince. Tak mne napadlo tam pridat jeste jedno } mail(......); } } else { formular();konec(); } Ale bez poradne kontroly to nezjistim.
-
kua. Donny tys mne nejak poplet. Ono tam tam ta zavorka je :o) Proste rikam. Zkontroluj poradne podminky.
-
jestli je to, co nam sem napsal, cely kod stranky, tak tam je *urcite* navic } else { formular(); konec(); } protoze uz ta prvni } uzavira neotevrenou zavorku, a pak to T_ELSE je tam proste navic, protoze nepatri k zadnemu T_IF.
-
MAM TO! Chyba v casti: f(($email_check > 0) || ($username_check > 0)){ echo "<b>Omlouváme se ale:</b><br>"; echo "<ul>"; if($email_check > 0){ echo "<li>Uvedená emailová adresa se ji? v databázi vyskytuje!</li>"; unset($email_address); } ZDE>>> echo "<li>Uvedené ICQ číslo se ji? v databázi vyskytuje!</li>"; ZDE>>> unset($email_address); ZDE>>> } if($username_check > 0){ echo "<li>Uvedené přihla?ovací jméno je ji? pou?íváno!</li>"; unset($username); } echo "</ul>"; formular(); konec(); exit(); } Bud je navic, nebo chybi podminka.