Problém s registrace.php – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Problém s registrace.php – PHP – Fórum – Programujte.comProblém s registrace.php – PHP – Fórum – Programujte.com

 

Toto vlákno bylo označeno za vyřešené — příspěvek s řešením.
jAkErCZ0
Stálý člen
5. 10. 2014   #1
-
0
-

Zdravím, mám takový problém mám vytvořenou registraci na web ale jakmile tam nahraji php kód který se po stisknutí vytvořit účet spustí tak mi zbělá obrazovka a nic nejde ale když tam ten kód není a je tam jen ten <table> tak se zobrazí vím že bude chyba nejspíše v php kódu ale vůbec nevím kde již sem to min. 10x procházel a na nic jsem nenarazil :/ 

přikládám registrace.php

[spoiler]

<?php
                    
                      echo "<H1>Registrace</H1>";
                      echo "<FORM method='POST'>
                      <table border='0' width='100%'>
                      <tr><td width='50%'>Jméno</td> <td width='50%'><input type='text' name='nick' class='inp' size='15'></td></tr>
                      <tr><td width='50%'>Heslo</td> <td width='50%'><input type='password' name='heslo' class='inp' size='15'></td></tr>
                      <tr><td width='50%'>Mail</td> <td width='50%'><input type='text' name='mail' class='inp' size='15' value='@'></td></tr>
                      <tr><td width='50%'>2+3</td> <td width='50%'><input type='text' name='as' class='inp' size='15'></td></tr>
                      <input type='hidden' value='".$_SERVER['REMOTE_ADDR']."' name='ip'>
                      <tr><td colspan='2'><center><input type='submit' value='Registrovat' name='registrovat' class='btn' /></center></td></tr>
                      </table>
                      </FORM>\n";
                      
                    if(isset($_POST["registrovat"])
                    {   
                      echo "<center>";
                      $nick = $_POST['nick'];
                      $mail = $_POST['mail'];
                      $heslo = $_POST["heslo"];
                      $ip = $_POST["ip"];
                      $as = $_POST["as"];
                      if(EMPTY($nick) || EMPTY($mail) || EMPTY($heslo) || EMPTY($as))
                      {
                        echo "Musíš vyplnit všechny údaje!";
                      }
                      else if($as != "5")
                      {
                        echo "Špatná odpověď u antispamové otázky!";
                      }
                      else 
                      {
                        $heslo2 = $heslo;
                        $heslo = md5(md5($heslo));
                        
                        $dotaz="SELECT * FROM accounts WHERE nick='".$nick."'";  
                        $vysledek = mysql_query($dotaz);
                        if($vysledek)
                        {
                      if(mysql_num_rows($vysledek) > 0) 
                      {
                      echo "Uživatelská data již byla použita na u jiného profilu.<BR />\n";
                      }
                      else if(mysql_num_rows($vysledek) == 0) 
                    {
          
                      $to = $mail;
                  
                  // subject
                  $subject = 'Registrace';
                  
                  // message
                  $message = "
                  <html>
                  <head>
                    <title>".$GLOBALS['web_name']." - Registrace</title>
                  </head>
                  <body>
                    Zdravím tě ".$nick.",<BR />
                    V tomto mailu obdržíš údaje k účtu a kód k aktivaci účtu. <BR />
                                <BR />
                    ".$GLOBALS['web_name']." - Registrace <BR />
                               <BR />
                    ----------------------------------<BR />
                    Údaje k účtu:                      <BR />
                    ----------------------------------  <BR />
                    Nick: ".$nick."        <BR />
                    Heslo: ".$heslo2."      <BR />
                    Mail: ".$mail."        <BR />
                    ---------------------------------- <BR />
                                                      <BR />
                    <a href='".$GLOBALS['web_url']."/rs2/aktivace.php&nick=".$nick."&mail=".$mail."&activate=1'>Aktivovat účet</a><BR />
                                                      <BR />
                    Hezký zbytek dne přeje, ".$GLOBALS['web_name'].". <BR />    
                  </body>                             
                  </html>                            
                  ";
                  
                  // To send HTML mail, the Content-type header must be set
                  $headers  = 'MIME-Version: 1.0' . "\r\n";
                  $headers .= 'Content-type: text/html; charset=utf-8' . "\r\n";
                  
                  // Additional headers
                  $headers .= "To: ".$nick."<".$mail.">" . "\r\n";
                  $headers .= 'From: '.$GLOBALS["web_name"].' <DWE@domm98.cz>' . "\r\n";
                  mail($to, $subject, $message, $headers);  
                  $dotaz="
                  INSERT INTO `accounts` (`id` , `nick` ,`heslo`,`pisclanek`,`editclanek`,`stranky`,`nastaveni`,`menu`,`panely`,`upload` ,`ban` ,`mail` ,`reg-ip` ,`last-login` ,`avatar`)
                  VALUES (NULL ,  '".$nick."',  '".$heslo."','0','0','0','0','0','0','0','1', '".$mail."' ,  '".$ip."',  '0',  'http://jakercz.4fan.cz/rs2/images/post/avatar.png');";
                  $vysledek = mysql_query($dotaz);    
                  if($vysledek)
                  {
                    echo "Registrace je skoro hotova, nyní klikni na odkaz, který byl zaslán na tvůj mail!<BR />\n";
                  }
                  else
                    {
                   echo "Něco se pokazilo, zkus to později.<BR />\n";
                    }   
                }
              }  
            }
            echo "</center>"; 
          }     
                                                
                  ?>

[/spoiler]

Nahlásit jako SPAM
IP: 85.71.70.–
Kit+15
Guru
5. 10. 2014   #2
-
0
-

#1 jAkErCZ
Máš přehozené bloky. Formulář musí být až na konci skriptu.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
jAkErCZ0
Stálý člen
5. 10. 2014   #3
-
0
-

To mě nepříjde jako fatální chyba třeba mé nastavení je dělané úplně stejně a funguje :)

Nahlásit jako SPAM
IP: 85.71.70.–
Kit+15
Guru
5. 10. 2014   #4
-
0
-

#3 jAkErCZ
Je to dost nepřehledné. Zkus se zbavit všech bloků "else", ať se to dá číst.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
peter
~ Anonymní uživatel
3981 příspěvků
6. 10. 2014   #5
-
0
-

Zapni si error_reporting na serveru nebo aspon v php funkci. Na radku 16 ti schazi ukonceni zavorky ifu.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:b955:13...–
Kit+15
Guru
6. 10. 2014   #6
-
+1
-
Zajímavé

#5 peter
To by přece mělo vyhodit syntax error.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
jAkErCZ0
Stálý člen
6. 10. 2014   #7
-
0
-

Na to řádku 16 je závorka ukončená :) když si to hodíš do pspad tak tam ti to závorky ukazuje :)

Nahlásit jako SPAM
IP: 85.71.70.–
Řešení
Kit+15
Guru
6. 10. 2014   #8
-
0
-
Vyřešeno Nejlepší odpověď

#7 jAkErCZ 

if(isset($_POST["registrovat"])
{ 

Vidím dvě otevřené kulaté závorky a uzavřenou jen jednu. Tobě to PHP fakt nehlásí fatální chybu?

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
jAkErCZ0
Stálý člen
6. 10. 2014   #9
-
0
-

Aááá sem vůl vůbec sem si toho nevšiml no až teď sem si zapnul logy..a teprve teď mi to házelo chybu syntaxe na řádek pod tím a vůbec mě nenapadlo zkontrolovat řádek nad tím :D díky moc už to funguje jak má :)

Nahlásit jako SPAM
IP: 85.71.70.–
peter
~ Anonymní uživatel
3981 příspěvků
6. 10. 2014   #10
-
0
-

Kit - Vsak to taky chybu vypise. Ale nektere servery maji default nastavene zakaz zobrazovani chyb. To se projevi prave bilou obrazovkou.

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:b955:13...–
Kit+15
Guru
6. 10. 2014   #11
-
0
-

#10 peter
Vždycky si nejprve otestuji PHP skripty spuštěním v editoru. Každou třídu hezky zvlášť, abych mohl případné syntaktické chyby ihned odstranit.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:221:5...–
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 13 hostů

Podobná vlákna

SMS registrace v PHP — založil ppeter

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý