Permalänk
Medlem

Problem med färdig PHP-mall

Hej! Jag gör en hemsida för vår förening (www.spelpunkten.org) men är väldigt grön på php. Jag använde http://www.phpportalen.net/wiki/index.php?page=Enkel+Inloggning+med+Mysql+och+sessioner+-+Komplett+kod för att göra medlemssystemet, men får inte till det. Så här ser det ut på registersidan: http://spelpunkten.org/register.php antar att den inte får kontakt med MySQL eller inte hittar conn.php, men så här ser register koden ut:

<?php session_start(); // Alltid överst på sidan include "conn.php"; // Databasanslutningen if (isset($_POST['submit'])){ $_POST = db_escape($_POST); // Tag bort eventuella blanksteg i början eller slutet foreach($_POST as $key => $val){ $_POST[$key] = trim($val); } //Kolla efter tomma fält if (empty($_POST['passwd']) || empty($_POST['V'])) || empty($_POST['name']) || empty($_POST['email'])) { $reg_error[] = 0; } // Kolla om användarnamnet är upptaget $sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['email']}'"; $result = mysql_query($sql); if (mysql_result($result, 0) > 0) { $reg_error[] = 1; } // Kolla om e-post kan tänkas vara ok if (!preg_match('/^[-A-Za-z0-9_.]+[@][A-Za-z0-9_-]+([.][A-Za-z0-9_-]+)*[.][A-Za-z]{2,8}$/', $_POST['email'])) { $reg_error[] = 2; } // Inga fel? Spara och logga in samt skicka till välkomstsida if (!isset($reg_error)) { $sql = "INSERT INTO members(user, pass, name,) VALUES('{$_POST['email']}', '{$_POST['passwd']}', '{$_POST['name']}', )"; mysql_query($sql); $_SESSION['sess_id'] = mysql_insert_id(); $_SESSION['sess_user'] = $_POST['user']; header("Location: welcome.php"); exit; } } else { // Sätt variabler för tomt formulär for ($i=0; $i<4; $i++) { $back[$i] = ""; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>SpelPunkten - registrera dig</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <link href="style.css" rel="stylesheet" type="text/css" /> <link href="layout.css" rel="stylesheet" type="text/css" /> <!--[if lte IE 7]> <script type="text/javascript" src="ie_png.js"></script> <script type="text/javascript"> ie_png.fix('.png_bg, .png img'); </script> <![endif]--> <style type="text/css"> <!-- --> </style> </head> <div class="top-bg"> <div class="bot-bg png_bg"> <div id="main"> <div class="flash"></div> <!--header --> <div id="header"> <div class="top"> <?php // Om inte inloggad visa formulär, annars logga ut-länk if (!isset($_SESSION['sess_user'])){ echo "<h3>Logga in</h3>\n"; // Visa felmeddelande vid felaktig inloggning if (isset($_GET['badlogin'])){ echo "Fel användarnamn eller lösenord!<br>\n"; echo "Försök igen!\n"; } ?> <form action="login.php" method="post" id="LoginForm"> <div> email <input type="text" name="user" value="" class="input1" /> Password <input type="password" name="passwd" value="" class="input2" /> <input type="submit" name="submit" value="Logga in"> <br /> <a href="#" class="link1">Lost password?</a>|<a href="register.php" class="link2">Inte medlem än?</a><a href="register.php" class="link3">Registrera dig!</a> <!--<a href="?logout" class="link1" onClick="return confirm('Är du säker på att du vill logga ut?');">Logga ut</a> --> </div> </form> <?php } else { echo "<a href=\"index.php?logout=\">Logga ut</a>\n"; } ?> <div class="logo png"><a href="index.html"><img src="images/logo.png" alt="" /></a></div> </div> <div class="menu"> <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swfla..." width="963" height="61"> <param name="movie" value="flash/menyn.swf?button=0" /> <param name="quality" value="high" /> <param name="menu" value="false" /> <!--[if !IE]> <--> <object data="flash/menyn.swf?button=0" width="963" height="61" type="application/x-shockwave-flash"> <param name="quality" value="high" /> <param name="menu" value="false" /> <param name="pluginurl" value="http://www.macromedia.com/go/getflashplayer" /> FAIL (the browser should render some flash content, not this). </object> <!--> <![endif]--> </object> <div id="apDiv2"><img src="images/SpelPunktenpng.png" width="400" height="84" alt="SpelPunkten" longdesc="images/SpelPunktenpng.png" /></div> </div> </div> <!--header end--> <div id="content"> <div class="box5"> <div class="title3"> <div id="apDiv1">Registrera dig</div> </div> <div style="padding: 10px;"> </p> <?php if (isset($reg_error)){ // Felmeddelanden $error_list[0] = "Alla fält är inte infyllda"; $error_list[1] = "Användarnamnet är upptaget"; $error_list[2] = "Felaktig e-postadress"; echo "Något blev fel:<br>\n"; echo "<ul>\n"; for ($i=0; $i<sizeof($reg_error); $i++) { echo "<li>{$error_list[$reg_error[$i]]}</li>\n"; } echo "</ul>\n"; // Sätter returvariabler till formuläret $back[1] = $_POST['passwd']; $back[2] = $_POST['name']; $back[0] = $_POST['user']; $back[3] = $_POST['last_name']; $back[4] = $_POST['birth']; $back[5] = $_POST['street']; $back[6] = $_POST['zip_code']; $back[7] = $_POST['city']; $back[8] = $_POST['user']; $back[9] = $_POST['user']; $back[10] = $_POST['user']; $back[11] = $_POST['user']; $back[12] = $_POST['user']; $back[13] = $_POST['user']; } ?> <form action="register.php" method="post"> <table cellspacing="3"> <tr> <td>E-postadress:</td> <td><input type="text" name="user" value="<?=$back[0] ?>"></td> </tr> <tr> <td>Lösenord:</td> <td><input type="text" name="passwd" value="<?=$back[1] ?>"></td> </tr> <tr> <td>Förnamn:</td> <td><input type="text" name="name" value="<?=$back[2] ?>"></td> </tr> <tr> <td>Efternamn:</td> <td><input type="text" name="lastname" value="<?=$back[3] ?>"></td> </tr> <tr> <td>Födelsedatum:</td> <td><input type="text" name="birth" value="<?=$back[4] ?>"></td> </tr> <tr> <td>Adress:</td> <td><input type="text" name="street" value="<?=$back[5] ?>"></td> </tr> <tr> <td>Postnummer:</td> <td><input type="text" name="zip_code" value="<?=$back[6] ?>"></td> </tr> <tr> <td>Ort:</td> <td><input type="text" name="City" value="<?=$back[7] ?>"></td> </tr> <tr> <td>Personnummer:</td> <td><input type="text" name="Pnummer" value="<?=$back[8] ?>"></td> </tr> <tr> <td>Kön:</td> <td><input type="radio" name="sex" value="male<?=$back[9] ?>" /> Man<br /> <input type="radio" name="sex" value="female<?=$back[10] ?>" /> Kvinna</td> </tr> <tr> <td>Mobil:</td> <td><input type="text" name="City" value="<?=$back[11] ?>"></td> </tr> <tr> <td>Land:</td> <td><select name="country"> <option value="sweden">Sweden</option> <?=$back[12] ?> </select></td> </tr> <tr> <td>Datum</td> <td><input type="text" name="City" value="<?=$back[13] ?>"></td> </tr> <tr> <td> Jag sodkänner medlemsavtalet och är medveten om att <br />SVEROK kan ringa och kontrollera om jag är med i SpelPunkten </td> <td><input type="checkbox" name="v" value="JA" /></td> </tr> <tr> <td colspan="2" align="center"> <input type="submit" name="submit" value="Spara dina uppgifter"> </td> </tr> </table> </form> <p> </p> </div> </div> </div> <!--footer --> <div id="footer"> <div class="text">SpelPunkten © 2010<a href="index-2.html"></a> | #SpelPunkten @ Quakenet</div> </div> <!--coded by Impro--> </div> </div> </div> </body> </html>

ledsen om koden är väligt lång :S

conn.php ser likadan ut förutom inloggningsuppgifterna då

Permalänk
Medlem

byt include "conn.php"; till require "conn.php"; så avbryts laddningen om filen inte hittas för att se över din första fråga.

Permalänk
Medlem

Det var inte det som var felet, ganska invecklat men jag har fixat det nu, däremot har jag fått två nya fel nu. För det första laddas inte informationen om medlemmen upp till databasen och för det andra, när man loggar in får jag följande meddelande:

Warning: mysql_num_rows() expects parameter 1 to be resource, boolean given in /customers/spelpunkten.org/spelpunkten.org/httpd.www/index.php on line 18 Warning: Cannot modify header information - headers already sent by (output started at /customers/spelpunkten.org/spelpunkten.org/httpd.www/index.php:18) in /customers/spelpunkten.org/spelpunkten.org/httpd.www/index.php on line 19

Här är login koden:

<?php session_start(); // Alltid överst på sidan include "conn.php"; // Databasanslutningen // Inloggning if (isset($_POST['submit'])){ $_POST = db_escape($_POST); $sql = "SELECT id FROM members WHERE user='{$_POST['user']}' AND pass='{$_POST['passwd']}'"; $result = mysql_query($sql); // Hittades inte användarnamn och lösenord // skicka till formulär med felmeddelande if (mysql_num_rows($result) == 0){ header("Location: index.php?badlogin="); exit; } // Sätt sessionen med unikt index $_SESSION['sess_id'] = mysql_result($result, 0); $_SESSION['sess_user'] = $_POST['user']; header("Location: welcome.php"); exit; } // Utloggning if (isset($_GET['logout'])){ $_SESSION = array(); session_destroy(); header("Location: index.php"); exit; } ?>