PHP + Java script registrace – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

PHP + Java script registrace – PHP – Fórum – Programujte.comPHP + Java script registrace – PHP – Fórum – Programujte.com

 

Adam
~ Anonymní uživatel
176 příspěvků
27. 10. 2014   #1
-
0
-

Dobrý den zde přikládám šablony pro registraci pomocí php a javascriptu a chci jen poradit kdo se v tom vyzná proč mi to háže na tomto webu http://www.webzahubicku.eu/signup.php chybu že mi nefunguje registrace ... děkuji za pomoc.

Šablony:


<!-- ********************************** -->
<!-- *********** signup.php *********** -->
<!-- ********************************** -->
<?php
session_start();
// If user is logged in, header them away
if(isset($_SESSION["username"])){
    header("location: message.php?msg=NO to that weenis");
    exit();
}
?><?php
// Ajax calls this NAME CHECK code to execute
if(isset($_POST["usernamecheck"])){
    include_once("php_includes/db_conx.php");
    $username = preg_replace('#[^a-z0-9]#i', '', $_POST['usernamecheck']);
    $sql = "SELECT id FROM users WHERE username='$username' LIMIT 1";
    $query = mysqli_query($db_conx, $sql); 
    $uname_check = mysqli_num_rows($query);
    if (strlen($username) < 3 || strlen($username) > 16) {
        echo '<strong style="color:#F00;">3 - 16 characters please</strong>';
        exit();
    }
    if (is_numeric($username[0])) {
        echo '<strong style="color:#F00;">Usernames must begin with a letter</strong>';
        exit();
    }
    if ($uname_check < 1) {
        echo '<strong style="color:#009900;">' . $username . ' is OK</strong>';
        exit();
    } else {
        echo '<strong style="color:#F00;">' . $username . ' is taken</strong>';
        exit();
    }
}
?><?php
// Ajax calls this REGISTRATION code to execute
if(isset($_POST["u"])){
    // CONNECT TO THE DATABASE
    include_once("php_includes/db_conx.php");
    // GATHER THE POSTED DATA INTO LOCAL VARIABLES
    $u = preg_replace('#[^a-z0-9]#i', '', $_POST['u']);
    $e = mysqli_real_escape_string($db_conx, $_POST['e']);
    $p = $_POST['p'];
    $g = preg_replace('#[^a-z]#', '', $_POST['g']);
    $c = preg_replace('#[^a-z ]#i', '', $_POST['c']);
    // GET USER IP ADDRESS
    $ip = preg_replace('#[^0-9.]#', '', getenv('REMOTE_ADDR'));
    // DUPLICATE DATA CHECKS FOR USERNAME AND EMAIL
    $sql = "SELECT id FROM users WHERE username='$u' LIMIT 1";
    $query = mysqli_query($db_conx, $sql); 
    $u_check = mysqli_num_rows($query);
    // -------------------------------------------
    $sql = "SELECT id FROM users WHERE email='$e' LIMIT 1";
    $query = mysqli_query($db_conx, $sql); 
    $e_check = mysqli_num_rows($query);
    // FORM DATA ERROR HANDLING
    if($u == "" || $e == "" || $p == "" || $g == "" || $c == ""){
        echo "The form submission is missing values.";
        exit();
    } else if ($u_check > 0){ 
        echo "The username you entered is alreay taken";
        exit();
    } else if ($e_check > 0){ 
        echo "That email address is already in use in the system";
        exit();
    } else if (strlen($u) < 3 || strlen($u) > 16) {
        echo "Username must be between 3 and 16 characters";
        exit(); 
    } else if (is_numeric($u[0])) {
        echo 'Username cannot begin with a number';
        exit();
    } else {
    // END FORM DATA ERROR HANDLING
        // Begin Insertion of data into the database
        // Hash the password and apply your own mysterious unique salt
        $cryptpass = crypt($p);
        include_once ("php_includes/randStrGen.php");
        $p_hash = randStrGen(20)."$cryptpass".randStrGen(20);
        // Add user info into the database table for the main site table
        $sql = "INSERT INTO users (username, email, password, gender, country, ip, signup, lastlogin, notescheck)       
                VALUES('$u','$e','$p_hash','$g','$c','$ip',now(),now(),now())";
        $query = mysqli_query($db_conx, $sql); 
        $uid = mysqli_insert_id($db_conx);
        // Establish their row in the useroptions table
        $sql = "INSERT INTO useroptions (id, username, background) VALUES ('$uid','$u','original')";
        $query = mysqli_query($db_conx, $sql);
        // Create directory(folder) to hold each user's files(pics, MP3s, etc.)
        if (!file_exists("user/$u")) {
            mkdir("user/$u", 0755);
        }
        // Email the user their activation link
        $to = "$e";                             
        $from = "auto_responder@yoursitename.com";
        $subject = 'yoursitename Account Activation';
        $message = '<!DOCTYPE html><html><head><meta charset="UTF-8"><title>yoursitename Message</title></head><body style="margin:0px; font-family:Tahoma, Geneva, sans-serif;"><div style="padding:10px; background:#333; font-size:24px; color:#CCC;"><a rel="nofollow" href="http://www.yoursitename.com"><img src="http://www.yoursitename.com/images/logo.png" width="36" height="30" alt="yoursitename" style="border:none; float:left;"></a>yoursitename Account Activation</div><div style="padding:24px; font-size:17px;">Hello '.$u.',<br /><br />Click the link below to activate your account when ready:<br /><br /><a rel="nofollow" href="http://www.yoursitename.com/activation.php?id='.$uid.'&u='.$u.'&e='.$e.'&p='.$p_hash.'">Click here to activate your account now</a><br /><br />Login after successful activation using your:<br />* E-mail Address: <b>'.$e.'</b></div></body></html>';
        $headers = "From: $from\n";
        $headers .= "MIME-Version: 1.0\n";
        $headers .= "Content-type: text/html; charset=iso-8859-1\n";
        mail($to, $subject, $message, $headers);
        echo "signup_success";
        exit();
    }
    exit();
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Sign Up</title>
<link rel="icon" rel="nofollow" href="favicon.ico" type="image/x-icon">
<link rel="stylesheet" rel="nofollow" href="style/style.css">
<style type="text/css">
#signupform{
    margin-top:24px;    
}
#signupform > div {
    margin-top: 12px;    
}
#signupform > input,select {
    width: 200px;
    padding: 3px;
    background: #F3F9DD;
}
#signupbtn {
    font-size:18px;
    padding: 12px;
}
#terms {
    border:#CCC 1px solid;
    background: #F5F5F5;
    padding: 12px;
}
</style>
<script src="js/main.js"></script>
<script src="js/ajax.js"></script>
<script>
function restrict(elem){
    var tf = _(elem);
    var rx = new RegExp;
    if(elem == "email"){
        rx = /[' "]/gi;
    } else if(elem == "username"){
        rx = /[^a-z0-9]/gi;
    }
    tf.value = tf.value.replace(rx, "");
}
function emptyElement(x){
    _(x).innerHTML = "";
}
function checkusername(){
    var u = _("username").value;
    if(u != ""){
        _("unamestatus").innerHTML = 'checking ...';
        var ajax = ajaxObj("POST", "signup.php");
        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) == true) {
                _("unamestatus").innerHTML = ajax.responseText;
            }
        }
        ajax.send("usernamecheck="+u);
    }
}
function signup(){
    var u = _("username").value;
    var e = _("email").value;
    var p1 = _("pass1").value;
    var p2 = _("pass2").value;
    var c = _("country").value;
    var g = _("gender").value;
    var status = _("status");
    if(u == "" || e == "" || p1 == "" || p2 == "" || c == "" || g == ""){
        status.innerHTML = "Fill out all of the form data";
    } else if(p1 != p2){
        status.innerHTML = "Your password fields do not match";
    } else if( _("terms").style.display == "none"){
        status.innerHTML = "Please view the terms of use";
    } else {
        _("signupbtn").style.display = "none";
        status.innerHTML = 'please wait ...';
        var ajax = ajaxObj("POST", "signup.php");
        ajax.onreadystatechange = function() {
            if(ajaxReturn(ajax) == true) {
                if(ajax.responseText != "signup_success"){
                    status.innerHTML = ajax.responseText;
                    _("signupbtn").style.display = "block";
                } else {
                    window.scrollTo(0,0);
                    _("signupform").innerHTML = "OK "+u+", check your email inbox and junk mail box at <u>"+e+"</u> in a moment to complete the sign up process by activating your account. You will not be able to do anything on the site until you successfully activate your account.";
                }
            }
        }
        ajax.send("u="+u+"&e="+e+"&p="+p1+"&c="+c+"&g="+g);
    }
}
function openTerms(){
    _("terms").style.display = "block";
    emptyElement("status");
}
/* function addEvents(){
    _("elemID").addEventListener("click", func, false);
}
window.onload = addEvents; */
</script>
</head>
<body>
<?php include_once("template_pageTop.php"); ?>
<div id="pageMiddle">
  <h3>Sign Up Here</h3>
  <form name="signupform" id="signupform" onsubmit="return false;">
    <div>Username: </div>
    <input id="username" type="text" onblur="checkusername()" onkeyup="restrict('username')" maxlength="16">
    <span id="unamestatus"></span>
    <div>Email Address:</div>
    <input id="email" type="text" onfocus="emptyElement('status')" onkeyup="restrict('email')" maxlength="88">
    <div>Create Password:</div>
    <input id="pass1" type="password" onfocus="emptyElement('status')" maxlength="16">
    <div>Confirm Password:</div>
    <input id="pass2" type="password" onfocus="emptyElement('status')" maxlength="16">
    <div>Gender:</div>
    <select id="gender" onfocus="emptyElement('status')">
      <option value=""></option>
      <option value="m">Male</option>
      <option value="f">Female</option>
    </select>
    <div>Country:</div>
    <select id="country" onfocus="emptyElement('status')">
      <?php include_once("template_country_list.php"); ?>
    </select>
    <div>
      <a rel="nofollow" href="#" onclick="return false" onmousedown="openTerms()">
        View the Terms Of Use
      </a>
    </div>
    <div id="terms" style="display:none;">
      <h3>Web Intersect Terms Of Use</h3>
      <p>1. Play nice here.</p>
      <p>2. Take a bath before you visit.</p>
      <p>3. Brush your teeth before bed.</p>
    </div>
    <br /><br />
    <button id="signupbtn" onclick="signup()">Create Account</button>
    <span id="status"></span>
  </form>
</div>
<?php include_once("template_pageBottom.php"); ?>
</body>
</html>
<!-- ********************************** -->
<!-- *********** activation.php ******* -->
<!-- ********************************** -->
<?php
if (isset($_GET['id']) && isset($_GET['u']) && isset($_GET['e']) && isset($_GET['p'])) {
    // Connect to database and sanitize incoming $_GET variables
    include_once("php_includes/db_conx.php");
    $id = preg_replace('#[^0-9]#i', '', $_GET['id']); 
    $u = preg_replace('#[^a-z0-9]#i', '', $_GET['u']);
    $e = mysqli_real_escape_string($db_conx, $_GET['e']);
    $p = mysqli_real_escape_string($db_conx, $_GET['p']);
    // Evaluate the lengths of the incoming $_GET variable
    if($id == "" || strlen($u) < 3 || strlen($e) < 5 || strlen($p) != 74){
        // Log this issue into a text file and email details to yourself
        header("location: message.php?msg=activation_string_length_issues");
        exit(); 
    }
    // Check their credentials against the database
    $sql = "SELECT * FROM users WHERE id='$id' AND username='$u' AND email='$e' AND password='$p' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $numrows = mysqli_num_rows($query);
    // Evaluate for a match in the system (0 = no match, 1 = match)
    if($numrows == 0){
        // Log this potential hack attempt to text file and email details to yourself
        header("location: message.php?msg=Your credentials are not matching anything in our system");
        exit();
    }
    // Match was found, you can activate them
    $sql = "UPDATE users SET activated='1' WHERE id='$id' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    // Optional double check to see if activated in fact now = 1
    $sql = "SELECT * FROM users WHERE id='$id' AND activated='1' LIMIT 1";
    $query = mysqli_query($db_conx, $sql);
    $numrows = mysqli_num_rows($query);
    // Evaluate the double check
    if($numrows == 0){
        // Log this issue of no switch of activation field to 1
        header("location: message.php?msg=activation_failure");
        exit();
    } else if($numrows == 1) {
        // Great everything went fine with activation!
        header("location: message.php?msg=activation_success");
        exit();
    }
} else {
    // Log this issue of missing initial $_GET variables
    header("location: message.php?msg=missing_GET_variables");
    exit(); 
}
?>
<!-- ********************************** -->
<!-- *********** message.php ********** -->
<!-- ********************************** -->
<?php
$message = "";
$msg = preg_replace('#[^a-z 0-9.:_()]#i', '', $_GET['msg']);
if($msg == "activation_failure"){
    $message = '<h2>Activation Error</h2> Sorry there seems to have been an issue activating your account at this time. We have already notified ourselves of this issue and we will contact you via email when we have identified the issue.';
} else if($msg == "activation_success"){
    $message = '<h2>Activation Success</h2> Your account is now activated. <a rel="nofollow" href="login.php">Click here to log in</a>';
} else {
    $message = $msg;
}
?>
<div><?php echo $message; ?></div>
<!-- ********************************** -->
<!-- ********* randStrGen.php ********* -->
<!-- ********************************** -->
<?php
function randStrGen($len){
    $result = "";
    $chars = "abcdefghijklmnopqrstuvwxyz0123456789$$$$$$$1111111";
    $charArray = str_split($chars);
    for($i = 0; $i < $len; $i++){
        $randItem = array_rand($charArray);
        $result .= "".$charArray[$randItem];
    }
    return $result;
}
?>
 

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

#1 Adam
Nechce se mi číst celou špagetu, ale vidím chybu hned na prvním řádku: Před session_start() nesmíš mít žádný výstup. Ty tam máš 3 řádky komentářů.

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.
Pancreas0
Duch
27. 10. 2014   #3
-
0
-

#2 Kit
Hned to změním :) děkuji za první myslím si že dost užitečnou radu :) já na to pořád zapomínám jelikož programuju sotva tak 1 měsíc ... 

Nahlásit jako SPAM
IP: 78.45.200.–
Pancreas0
Duch
27. 10. 2014   #4
-
0
-

Jo aha ty tři řádky tak ty tam pochopitelně nemám .. píšu dřív než myslím :D ty tři řádky jsou pro Vás ať víte kde je co umístěno v jakém souboru. :-)

Myslíš si že mi tady ještě někdo poradí ? jelikož tuhle stránku neznám až dneska jsem k ní přišel . jsou tu lidi aktivní ?

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

#3 Pancreas
Neboj, jsme tady aktivní. Jenom nevím, kolik nás tady dnes je. Jsou prázdniny...

Také jsem si už stačil všimnout, že je to jen komentář pro nás. To víš, jsem zvyklý mít na prvním řádku "<?php". Je toho dost, asi si to budu muset nalámat do jednotlivých souborů - takhle je to pro mne nečitelné.

Pokud začínáš, tak ti ještě dám pár rad:

  • Nešetři znaky na názvu proměnné nebo funkce, nedávej zkratky (kromě těch běžných), názvy by měly být vyslovitelné. Obvykle se spojí 1-3 slova, často používám jen jedno.
  • Zkus místo MySQLi ovladač PDO. Je to podobné, ale bude to dlouhodobě podporováno
  • Začni se učit OOP. Názvy proměnných a metod se tím hezky zkrátí a kód zpřehlední.
  • Nemíchej PHP/HTML/JS/CSS. Alespoň ne víc, než kolik je nutné.

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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #6
-
0
-

Moc ti děkuji za radu na to OOP mrknu a jinak ty názvy  proměných jsem zbytečně moc zkrátil ... to je pravda. Jinak to CSS jak mám napsáno #signupform{
    margin-top:24px;    
}
#signupform > div {
    margin-top: 12px;    
}

to mám normálně dané ve složce Style.css ale aby jste to vše viděli jak mám tak jsem Vám to chtěl co nejvíce přispůsobit. Určitě se mrkni na můj web tam pochopíš určitě více o jakou chybu jde. :-) Jinak si toho moc Vážím že mi tu pomáháš a jestli ti budu moct nějak dát ocenění nebo něco co se tu sbírá tak mi jen řekni a určitě tě ohodnotím :-) moc si toho Vážím. Chci si vytvořit prostě systém jednoduché sociální sítě která bude sloužit pro hráče League of Legends a potřebuji aby měl každý svůj profil i s možností editace apod. a zasekl jsem se hned na registraci ... takže super :D Login funguje ale registračka je to nejdůležitější a nejde...

Nahlásit jako SPAM
IP: 78.45.200.–
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #7
-
0
-

Tak už jsem si to nakonec předělal jinak takže už se nad tím nemusíte zabývat... A pokud jste se zabýval tak si toho vážím a hodnocení Vám určitě dám :-). řekněte jen jak :-)

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #8
-
0
-

#7 Pancreas
To nestojí za řeč. Poděkování jsem už dostal.

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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #9
-
0
-

#8 Kit
Děkuji ti mockrát ale všeho dočasu za chvíli budu mít zase problém nebo spíše už jeden mám sice jsem to dal na řešení wedosu ale jestli mi můžeš pomoct tak tohle je ta chyba a nevím co mám dělat ...  Warning: Cannot modify header information - headers already sent by (output started at /data/web/virtuals/69145/virtual/www/inc/header.inc.php:36) in /data/web/virtuals/69145/virtual/www/index.php on line 81    

vše je uloženo bez BOM apod... Dělá to jen když se chci přihlásit přihlásit se přihlásím ale místo toho aby mě to hodilo na stránku .../home.php tak zustávám na ../index.php nevím kde je rpoblém jestli u mě v kodu nebo u wedosu...

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #10
-
0
-

#9 Pancreas
Je to běžná chyba, která se stane tak, že pošleš prohlížeči třeba začátek HTML a pak mu chceš poslat třeba cookie - např. funkcí session_start(). To z principu nejde - hlavičky HTTP musí být kompletně odeslány ještě před prvním znakem HTML.

Řešením je po každém zpracování formuláře přesměrovat stránku pomocí 

header("Location: nasledujici-stranka.php");
exit();
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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #11
-
0
-

#10 Kit
Takže jaké je teda řešení ? :-) Musím session start dát zcela dopředu ? zde je kod:

------------Header.inc.php----------------

<?php 
include( "./inc/connect.inc.php" );
session_start();
if (!isset($_SESSION["user_login"])) {

}
else
{
    $username = $_SESSION["user_login"];
}
?>
<!doctype html>
<html>
    <head>
        <title>LoL|Battles</title>
        <link rel="stylesheet" type="text/css" rel="nofollow" href="./css/style.css"/>
    </head>
    <body>
    <div class="headerMenu">
        <div id="wrapper">
            <div class="logo">
                <img src="./img/find_friends_logo.png" />
            </div>
            <div class="search_box">
                <form action="search.php" method="GET" id="search">
                    <input type="text" name="q" size="60" placeholder="Search ..." />
                </form>
            </div>
            <div id="menu">
                <a rel="nofollow" href="#" />Home</a>
                <a rel="nofollow" href="#" />About</a>
                <a rel="nofollow" href="#" />Sign Up</a>
                <a rel="nofollow" href="#" />Sign In</a>
            </div>
        </div>
    </div>

a zde je index.php

<?php include ( "./inc/header.inc.php" ) ?>
<?php
$reg = @$_POST['reg'];
//Hledání errorů
$fn = ""; //First name
$ln = ""; //Last Name
$un = ""; //user name
$em = ""; //email
$em2 = ""; //emial2
$pswd = ""; //heslo
$pswd2 = ""; //heslo2
$d = ""; //datum
$u_check = ""; //jestli existuje user
//registrace
$fn = strip_tags(@$_POST['fname']);
$ln = strip_tags(@$_POST['lname']);
$un = strip_tags(@$_POST['username']);
$em = strip_tags(@$_POST['email']);
$em2 = strip_tags(@$_POST['email2']);
$pswd = strip_tags(@$_POST['password']);
$pswd2 = strip_tags(@$_POST['password2']);
$d = date("Y-m-d");

if    ($reg) {
if    ($em==$em2) {
$u_check = mysql_query("SELECT username FROM users WHERE username='$un'");
$check = mysql_num_rows($u_check);
if  ($check == 0) {
if    ($fn&&$ln&&$un&&$em&&$em2&&$pswd&&$pswd2) {
if    ($pswd == $pswd2) {
if    (strlen($un)>25||strlen($fn)>25||strlen($ln)>25) {
echo "Tvoje jméno obsahuje příliš mnoho textu! max je 25! v Username, Jménu, Příjmení!";
}
else
{
if(strlen($pswd)>30||strlen($pswd)<5) {
echo "Tvoje heslo musí obsahovat minimálně 5 a macimálně 30 písmen!";
}
else
{
$pswd = md5($pswd);
$pswd2 = md5($pswd2);
$query = mysql_query("INSERT INTO users VALUES ('','$un','$fn','$ln','$em','$pswd','$d','0')");
die("<h2>Vítej na LOL|Battles!</h2>Přihlášení k tvému účtu je nyní možné ...");
}
}
}
else {
echo "Tvoje hesla se neshodují";
}
}
else
{
echo "Prosím vyplňte vše!";
}
}
else
{
echo "Jméno již existuje ...";
}
}
else {
echo "Tvoje e-maily se neshodují!";
}
}

// Uživatelský login na indexu zde

if(isset($_POST["user_login"]) && isset($_POST["password_login"])) {
    $user_login = preg_replace('#[^A-Za-z0-9]#i','',$_POST["user_login"]);
    $password_login = preg_replace('#[^A-Za-z0-9]#i','',$_POST["password_login"]);
    $password_login_md5 = md5($password_login);
    $sql = mysql_query("SELECT id FROM users WHERE username='$user_login' AND password='$password_login_md5' LIMIT 1");
    // Ověření existence
    $userCount = mysql_num_rows($sql);
    if($userCount == 1) {
        while($row = mysql_fetch_array($sql)){
            $id = $row["id"];
    }
        $_SESSION["user_login"] = $user_login;
        header("location: home.php");
       exit();
       }else{
       echo "Informace se neshodují zkuste to ještě jednou.";
       exit();
    }
}
?>
    <div style="width: 800px; margin: 0px auto 0px auto;">
    <table>
        <tr>
            <td width="60%" valign="top">
                <h2>Already a Member? Sign in below!</h2>
                <form action="index.php" method="POST">
                    <input type="text" name="user_login" size="25" placeholder="Username" /><br /><br />
                    <input type="text" name="password_login" size="25" placeholder="Password" /><br /><br />
                    <input type="submit" name="login" value="Login">    
                </form>
            </td>
            <td width="40%" valign="top">
                <h2>Sign Up Below!</h2>
                <form action="index.php" method="POST">
                    <input type="text" name="fname" size="25" placeholder="First Name" /><br /><br />
                    <input type="text" name="lname" size="25" placeholder="Last Name" /><br /><br />
                    <input type="text" name="username" size="25" placeholder="Username" /><br /><br />
                    <input type="text" name="email" size="25" placeholder="E-mail" /><br /><br />
                    <input type="text" name="email2" size="25" placeholder="E-mail znovu" /><br /><br />
                    <input type="text" name="password" size="25" placeholder="Heslo" /><br /><br />
                    <input type="text" name="password2" size="25" placeholder="Heslo znovu" /><br /><br />
                    <input type="submit" name="reg" value="Sign Up!">
                </form> 
            </td>
        </tr>
    </table>
<?php include ( "./inc/footer.inc.php" ) ?>

Nahlásit jako SPAM
IP: 78.45.200.–
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #12
-
0
-

Aha ... už jsem si všiml toho co si mi poslal :D promiň už kod uplně ignoruju ... dneska celý den jen všude CSS PHP ahh... :D

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #13
-
0
-

#11 Pancreas
Přehoď řádky takto: 

<?php 
session_start();
include( "./inc/connect.inc.php" );

i když je mi podezřelé, že v souboru connect.inc.php máš nějaký HTML výstup.

BTW: Občas do svého příspěvku něco dodatečně doplním, tak se tomu nediv.

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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #14
-
0
-

#13 Kit
To že tam mám HTML výstup je myslíš blbě ? :/

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #15
-
0
-

#11 Pancreas
Doporučuji také přejmenovat proměnné. Místo 

$fn = ""; //First name
$ln = ""; //Last Name
$un = ""; //user name
$em = ""; //email

raději piš 

$firstName = "";
$lastName = "";
$userName = "";
$eMail = "";

Program pak bude mnohem čitelnější a zbavíš se zbytečných komentářů.

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.
Kit+15
Guru
28. 10. 2014   #16
-
0
-

#14 Pancreas
Při navazování spojení s databází nemá žádnou logiku vypisovat jakékoli HTML na výstup.

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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #17
-
0
-

#13 Kit
V pohodě ;) přehodil jsem to a je tam stále stejný error a co se týče toho co je header tak ten mám s html proto aby mi dělal hlavičku webu poté už nemusím psát celý kod ale napíšu si jen include( "./inc/connect.inc.php" ); nahoru do webu a mám to tam zobrazené :-)

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #18
-
0
-

#17 Pancreas
Ten soubor se jmenuje connect.inc.php - měl by tedy pouze navazovat spojení s databází. Nic jiného už dělat nemá.

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.
Pancreas
~ Anonymní uživatel
15 příspěvků
28. 10. 2014   #19
-
0
-

#18 Kit
jj ten connect.inc.php má jen php kod ale ten header.inc.php ten má v sobě také Html jelikož potřebuji hlavičku jediný můj problém jsou ty zkratky ... a také ten error při loginu i když mám změněno že Location :home.php jak to mělo být.. možná jen mě teď napadá nemá mít i index napsáno uplně nahoře místo

<?php include( "./inc/connect.inc.php" );

tohle ?

<?php session_start();

include( "./inc/connect.inc.php" );

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #20
-
0
-

#19 Pancreas
Nemáš tam těch includů nějak moc? Vím, že se v tom dá udělat slušný zmatek a proto používám jen jeden include v celé aplikaci.

Jednoduchým pravidlem je nejprve zpracovat všechna data, naskládat výsledky do proměnných a teprve potom začít vypisovat první řádek HTML - a to jen v případě, když nedělám přesměrování.

Přesměrování dělám po každém zpracování požadavku metodou POST. Je zbytečné vypisovat ještě nějaké HTML. Prohlížeč si načte až následující stránku.

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.
Kit+15
Guru
28. 10. 2014   #21
-
0
-

#19 Pancreas
Namátkou: 

header("location: message.php?msg=NO to that weenis");

je špatně. Musí to vypadat takto: 

header("Location: message.php?msg=NO+to+that+weenis");

Copak nevíš, že v URL nesmí být mezery a že se nahrazují znakem "+"?

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.
Pancreas0
Duch
28. 10. 2014   #22
-
0
-

#20 Kit
To je moudré :) Jak dlouho prsím tě programuješ ? jinak mám tam 3 inc pro connect pak footer a pak header je to asi zmatkové ale abych to pochopil tak mi to takhle rozdělené dává větší smysl ... i když je v to asi pro lidi co se v programováni pohybují delší dobu "bordel..."

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #23
-
0
-

#19 Pancreas
Nauč se konečně vkládat zdrojové kódy tlačítkem "<?".

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.
Kit+15
Guru
28. 10. 2014   #24
-
0
-

#22 Pancreas
Programuji už hodně dlouho, programování je i mým koníčkem.

V PHP už dělám jen objektově, protože pak se všechny includy natahují zcela automaticky. Pouze v index.php mám uvedeno, kde ty includy má hledat. Je to velmi praktické a hlavně velmi rychlé.

Do PHP nedávám vůbec žádné HTML. Pouze si z dat vytvářím DOM, který pak předhodím výstupní šabloně.

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.
Pancreas0
Duch
28. 10. 2014   #25
-
0
-

#21 Kit
Díky za radu já jsme na to uplně zapoměl na ty + mezi slovy... jsem teď v tom fakt pomatený no ... díky za radu poznačím si to .. :D

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
28. 10. 2014   #26
-
+1
-
Zajímavé

#25 Pancreas
Používá se na to funkce urlencode(), která doplní nejen ta "+", ale poradí si i s dalšími znaky, jako jsou třeba &#@% apod.

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.
Pancreas0
Duch
28. 10. 2014   #27
-
0
-

ty si mi odepisoval  
header("location: message.php?msg=NO to that weenis");

je špatně. Musí to vypadat takto: 

header("Location: message.php?msg=NO+to+that+weenis");

a to není už aktuální tam ten celý kod jsem smazal a dělám to právě znovu takže tam to už nemusíš řešit ...

nyní mi již registrace jde a login taky jen při loginu jak jsem již psal je chyba Cannot modify header information - headers already sent by (output started at /data/web/virtuals/69145/virtual/www/inc/header.inc.php:36) in /data/web/virtuals/69145/virtual/www/index.php on line 81     

tu doufám nějak fixneme... :)

Nahlásit jako SPAM
IP: 78.45.200.–
Kit+15
Guru
29. 10. 2014   #28
-
0
-

#27 Pancreas 

<?php include ( "./inc/header.inc.php" ) ?>
<?php

Koukni na to. Máš v tom vložený jeden prázdný řádek. Udělej to jednodušší: 

<?php
include "./inc/header.inc.php";
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.
Pancreas0
Duch
29. 10. 2014   #29
-
0
-

#28 Kit
myslíš že to pomůže ?

Nahlásit jako SPAM
IP: 78.45.200.–
Pancreas0
Duch
29. 10. 2014   #30
-
0
-

#28 Kit
Napsal jsem to tak ... bohužel stále stejný problém s tím že když dám login tak mi to hodí tu chybu.... asi budu muset počkat do zítřka na wedos... 

Nahlásit jako SPAM
IP: 78.45.200.–
peter
~ Anonymní uživatel
4007 příspěvků
29. 10. 2014   #31
-
0
-

Cannot modify header information - headers already sent by ...
Bud zmenis php.ini, httpd.ini nebo tam pridas jako prvni radek ob_start.
Pise ti to proto, ze kazde echo nebo prazdny znak mimo php zavorky <?php ?> zpusobi odeslani uzivateli. Cili, 10x echo, 10x posila uzivateli soubor po kousickach. Prvni odeslani vytvori hlavicky a tudiz je pak uz nelze menit pres header() nebo session_start(). To prave resi ten ob_start(), ob_flush().

Nahlásit jako SPAM
IP: 2001:718:2601:1f7:a418:ad...–
Kit+15
Guru
29. 10. 2014   #32
-
+1
-
Zajímavé

#31 peter
To jsem si mohl myslet, že mu někdo poradí output buffering, jehož účelem není maskovat programátorovy chyby, ale skládat výstup do jednoho datového proudu.

Nahlásit jako SPAM
IP: 2a00:1028:83a0:37a6:3597:...–
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

Kodování java Script — založil John Jewell

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ý