woody Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 Jag gjorde ett inloggnings system i .php igår. Allt fungerar utmärkt, det finns 3 funktioner kvar som jag vill ändra. 1. När man loggar in vill jag ha någon kod som skriver ut det här "Välkommen "namn"! 2. Finns det någon kod som raderar från Mysql databasen? 3. Någon som vet en kod som skickar en registrerings länk till den angivna eposten? Kan ganska mycket inom php men jag har väldigt lite tid till att koda, max 2 timmar per dag. Får jag någon kod/svar som hjälper mig med ovanstående så kan jag betala en summa fuska mynt. EDIT: Ok, hittade en kod på internet. $visa2 = "SELECT * FROM orderrader WHERE ordernr = '$_POST[ordernr]'"; $resultat2 = mysql_query($visa2) ; $antal = @mysql_num_rows($resultat2); if ($antal > 0) { while ($rad2 = mysql_fetch_array ($resultat2)) { $data1 =$rad2["artikelnr"]; } $benamning = $_rad2["benamning"]; $mailadress; $subject = " "; $message = " "; $headers = " "; echo " "; mail($mailadress, $subject, $message, $headers); $link = "<a href=\"http://www.minadress.se/confirm.php\">HÄR</a> ;"; $mail_body = "Tack för registeringen! Vänligen bekräfta registreringen med kod: ". $confcode . " Klicka ". $link ." för att komma till konfirmeringen."; `activation_code` int(10) NOT NULL default '0', `user_activated` int(1) NOT NULL default '0', Denna kod är bara en början, vore tacksam om någon fixar så att det skickas ut en bekräftelse till den angivna eposten. När man klickar på länken ska den skicka ny information till databasen och bekräfta att kontot är aktiverat. Aktiveras inte kontot inom tre dagar vill jag att kontot ska tas bort från databasen. :) Citera Länk till kommentar Dela på andra sajter More sharing options...
laynus Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 (redigerat) en fråga har du några kunskaper inom php? svar på 2:an: Ja det finns en kod för det kolla här Redigerat 8 Augusti 2009 av datornord Citera Länk till kommentar Dela på andra sajter More sharing options...
woody Skrivet 8 Augusti 2009 Författare Rapport Dela Skrivet 8 Augusti 2009 Ja, har ju gjort själva logga-in-scriptet utan att kopiera. Dock som du säger kan jag inte allt så jag behöver hjälp. Citera Länk till kommentar Dela på andra sajter More sharing options...
laynus Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 kan du inte ha en aktiverings tab i databasen som blir generarar en aktiverings länk via rand()? Citera Länk till kommentar Dela på andra sajter More sharing options...
woody Skrivet 8 Augusti 2009 Författare Rapport Dela Skrivet 8 Augusti 2009 Vad är det? Citera Länk till kommentar Dela på andra sajter More sharing options...
laynus Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 Vad är det?generar ett random number! Citera Länk till kommentar Dela på andra sajter More sharing options...
woody Skrivet 8 Augusti 2009 Författare Rapport Dela Skrivet 8 Augusti 2009 Har du någon kod till den? Citera Länk till kommentar Dela på andra sajter More sharing options...
laynus Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 Har du någon kod till den? http://se2.php.net/manual/en/function.rand.php asså jag kan ju inte bara ge dig koder du får ju sätta ihop själv! Citera Länk till kommentar Dela på andra sajter More sharing options...
woody Skrivet 8 Augusti 2009 Författare Rapport Dela Skrivet 8 Augusti 2009 Problemet är löst, webbservern skickar automatiskt en kod till den angivna eposten. En kille hjälpte mig på sweclockers. Dock så behöver jag något script som raderar det inloggade kontot, ska räcka med att skriva in sitt lösenord. 100 fuska mynt till den som finner/skapar ett sådant skript åt mig. Citera Länk till kommentar Dela på andra sajter More sharing options...
Kerby Skrivet 8 Augusti 2009 Rapport Dela Skrivet 8 Augusti 2009 mysql_query("DELETE FROM accounts WHERE name='$kontonamn'"); Du menar typ så? *ändra accounts till namnet på din table *ändra name till namnet på kolumnen som kontonamnen är i *Ändra $kontonamn till variabeln i din PHP kod som håller det inloggade kontonamnet. Citera Länk till kommentar Dela på andra sajter More sharing options...
PunkArne Skrivet 9 Augusti 2009 Rapport Dela Skrivet 9 Augusti 2009 Jag gjorde ett inloggnings system i .php igår. Allt fungerar utmärkt, det finns 3 funktioner kvar som jag vill ändra. 1. När man loggar in vill jag ha någon kod som skriver ut det här "Välkommen "namn"! 2. Finns det någon kod som raderar från Mysql databasen? 3. Någon som vet en kod som skickar en registrerings länk till den angivna eposten? Kan ganska mycket inom php men jag har väldigt lite tid till att koda, max 2 timmar per dag. Får jag någon kod/svar som hjälper mig med ovanstående så kan jag betala en summa fuska mynt. EDIT: Ok, hittade en kod på internet. $visa2 = "SELECT * FROM orderrader WHERE ordernr = '$_POST[ordernr]'"; $resultat2 = mysql_query($visa2) ; $antal = @mysql_num_rows($resultat2); if ($antal > 0) { while ($rad2 = mysql_fetch_array ($resultat2)) { $data1 =$rad2["artikelnr"]; } $benamning = $_rad2["benamning"]; $mailadress; $subject = " "; $message = " "; $headers = " "; echo " "; mail($mailadress, $subject, $message, $headers); $link = "<a href=\"http://www.minadress.se/confirm.php\">HÄR</a> ;"; $mail_body = "Tack för registeringen! Vänligen bekräfta registreringen med kod: ". $confcode . " Klicka ". $link ." för att komma till konfirmeringen."; `activation_code` int(10) NOT NULL default '0', `user_activated` int(1) NOT NULL default '0', Denna kod är bara en början, vore tacksam om någon fixar så att det skickas ut en bekräftelse till den angivna eposten. När man klickar på länken ska den skicka ny information till databasen och bekräfta att kontot är aktiverat. Aktiveras inte kontot inom tre dagar vill jag att kontot ska tas bort från databasen. :) Om du kunde det elementära i PHP hade inte punkt ett behövts (du verkar ju dessutom redan ha vetat svaret då du använt det i din kod). Du använder . (punkt) för att konkatera strängar och echo() för att skriva ut det du vill till webservern. För att inte folk ska förstöra din sida bör du använda mysql_real_escape() på alla strängar du använder som värden i mysqlfrågor. Ex: mysql_query("DELETE FROM users WHERE name='".mysql_real_escape($_POST['user'])."'"); kan du inte ha en aktiverings tab i databasen som blir generarar en aktiverings länk via rand()?Jag skulle säga kolumn istället för tab (om jag nu gissade rätt på vad du menade). Det är rätt svårt för ts (alla andra också) att förstå vad som åsyftas när man inte använder sqlpraxis eller vilket språk det än är. Citera Länk till kommentar Dela på andra sajter More sharing options...
woody Skrivet 10 Augusti 2009 Författare Rapport Dela Skrivet 10 Augusti 2009 Skrotade mitt egna login system och kopierade ett från nätet. Dock verkar inte mail aktiveringen fungera. De filerna som håller ihop allt är : conn.php, index.php, register.php, inloggad.php, link.php och ejaktiverat.php. Koden för register.php : <?php error_reporting(E_ALL); ini_set("display_errors", "1"); session_start(); // Alltid överst på sidan include "conn.php"; // aktivera kontot if (isset($_GET['code'])) { $sql = "SELECT aktiv, md5 from members WHERE md5 = '{$_GET['code']}' AND aktiv = '0'"; $result = mysql_query($sql); $md5 = mysql_result($result, 0, 'md5'); $aktiv = mysql_result($result, 0, 'aktiv'); if ($md5 == $_GET['code'] && $aktiv == '0') { $sql = "UPDATE members SET aktiv = '1' WHERE md5 = '{$md5}'"; mysql_query($sql) or die("SQL: $sql<br>" . mysql_error()); } } 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['user']) || empty($_POST['passwd']) || empty($_POST['email'])) { $reg_error[] = 0; } // Kolla om användarnamnet är upptaget $sql = "SELECT COUNT(*) FROM members WHERE user='{$_POST['user']}'"; $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 skicka mail med aktiveringslänk if (!isset($reg_error)) { //Fixa lite md5 $salt1 = time(); $salt2 = microtime(); $salt3 = mt_rand(0, 100000); $salt4 = date("H:i:s"); $salt5 = date("W"); $seed = $salt1.$salt2.$salt3.$salt4.$salt5; // Skicka in hela rasket i en md5 som seed och få fram unikt värde $md5 = md5($seed); $password = md5($_POST['passwd']); $sql = "INSERT INTO members(user, pass, email, md5, aktiv) VALUES('{$_POST['user']}', '{$_POST['passwd']}', '{$_POST['email']}', '{$md5}', '0')"; mysql_query($sql); $subject = "Ditt konto!"; $email = $_POST['email']; $from = "From: root@localhost"; $message = "\n Ett konto har registerats med denna mailadress, om du inte har registerat detta konto så har någon använt din mailadress vid registeringen. Om du inte aktiverar ditt konto inom en timme tas kontot hos oss bort.\n För att aktivera ditt konto tryck på länken nedan:\n\nhttp://localhost/members_area/register.php?code=" . $md5 . "\n\n Om det inte går att klicka på länken så kopiera den och klistra in den i din webbläsare.\n\n mail($email, $subject, $message, $from); echo '<meta http-equiv="refresh" content="0; URL=http://localhost/members_area/register.php?close=true">'; // stänger rutan exit; } } else { // Sätt variabler för tomt formulär for ($i=0; $i<6; $i++) { $back[$i] = ""; } } $error_list[0] = "Alla fält är inte infyllda"; $error_list[1] = "Användarnamnet är upptaget"; $error_list[2] = "Felaktig e-postadress"; $error_list[3] = "Lösenorden du skrev stämmer inte överrens"; ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <title>Registrera dig</title> </head> <body> <font face="Arial"> <h3>Registrera dig</h3> Att tänka på: <ul> <li>Din epost-adress måste vara korrekt!</li> <li>Alla ip-adresser loggas!</li> </ul> <?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[0] = $_POST['user']; $back[1] = $_POST['passwd']; $back[2] = $_POST['email']; } ?> <form action="register.php" method="post"> <table cellspacing="3"> <tr> <td>Namn</td> <td><input type="text" name="user" value=""></td> </tr> <tr> <td>Lösenord</td> <td><input type="text" name="passwd" value=""></td> </tr> <tr> <td>Email</td> <td><input type="text" name="email" value=""></td> </tr> <tr> <td colspan="2" align="left"> <input type="submit" name="submit" value="Spara dina uppgifter"> </td> </tr> </table> </form> </body> </html> Koden för index.php : <?php session_start(); // Alltid överst på sidan include "conn.php"; // Databasanslutningen // Inloggning if (isset($_POST['submit'])){ $password = md5($_POST['passwd']); $sql = "SELECT id, admin, aktiv FROM members WHERE user='{$_POST['user']}' AND pass='{$password}'"; $result = mysql_query($sql); $sessid = mysql_result($result, 0, 'id'); $sessadmin = mysql_result($result, 0, 'admin'); $aktiv = mysql_result($result, 0, 'aktiv'); $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; } // Är kontot inte aktiverat skicka personen till sida med info om att kontot inte är aktiverat if ($aktiv == '0') { header("Location: ejaktiverat.php"); exit; } // Sätt sessionen med unikt index $_SESSION['sess_id'] = mysql_result($result, 0); $_SESSION['sess_user'] = $_POST['user']; $_SESSION['sess_email'] = $_POST['email']; header("Location: inloggad.php"); exit; } // Utloggning if (isset($_GET['logout'])){ $_SESSION = array(); session_destroy(); header("Location: index.php"); exit; } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> <html> <head> <title>Logga in</title> </head> <body> <font face="Arial"> <h3>Logga in</h3> <?php // Om inte inloggad visa formulär, annars logga ut-länk if (!isset($_SESSION['sess_user'])){ // Visa felmeddelande vid felaktig inloggning if (isset($_GET['badlogin'])){ echo "Något blev fel:<p>"; echo "<ul>\n"; echo "<li>Fel användarnamn eller lösenord!<br></li>\n"; echo "<li>Försök igen!\n</li>"; echo "</ul>\n"; } ?> <form action="index.php" method="post"> Användarnamn:<br> <input type="text" name="user"><br> Lösenord:<br> <input type="password" name="passwd"><br> <input type="submit" name="submit" value="Logga in"> </form> <p>Inte medlem ?<br> <a href="register.php">Registera dig</a> <?php } else { header("Location: inloggad.php"); } ?> </body> </html> Mer info hittar ni här: http://www.phpportalen.net/viewtopic.php?t=48910 ;) Citera Länk till kommentar Dela på andra sajter More sharing options...
Rekommendera inlägg
Gå med i konversationen
Du kan skriva nu och registrera dig senare. Om du har ett konto, logga in nu för att posta med ditt konto.