Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Funkcja Random
Forum PHP.pl > Forum > Przedszkole
bartek4175
Witam!

Mam sobię funkcję random i taK:
wysyłam ten wylosowany kod mailem i dodaje do bazy.

Jednak do bazy losuje zawsze kod:
  1. 2147483647
">
  1. 2147483647


(do maila dobry )

KOD:

  1. <?
  2. require_once("admin/config.php");
  3. ?>
  4. <!DOCTYPE HTML>
  5. <HTML>
  6. <link rel="stylesheet" type="text/css" href="style/style.css" />
  7. <meta charset='utf-8'>
  8. <title>System Mailingu By Bartek4175</title>
  9. </HTML>
  10. <body>
  11. <center>
  12. <form action="" method="post"><Br>
  13. <b>Podaj swój Mail:</b><input name="mail">&nbsp&nbsp&nbsp&nbsp
  14. <input type="hidden" name="send" value="1" /><br>
  15. <input type="submit" value="Zapisz się!" />
  16. </form>
  17. </center>
  18. </body>
  19. <?
  20. if ($_POST['send'] == 1) {
  21.  
  22. $mail = $_POST['mail'];
  23. $random = rand(12945995989,99999995989);
  24. $grupa = "33";
  25. mysql_query("INSERT INTO uzytkownicy (mail, kod, grupa) VALUES('$mail','$random','$grupa')") or die(mysql_error());
  26.  
  27. $email_do = $_POST['mail'];
  28. $email_temat = "System Mailingu - Aktywacja konta.";
  29.  
  30.  
  31.  
  32.  
  33. $email_wiadomosc = "Witaj! \nTwoj link aktywacyjny: <a href="http://pileczka.xaa.pl/Maile/aktywacja.php?kod=$random" target="_blank">http://pileczka.xaa.pl/Maile/aktywacja.php?kod=$random</a> \n\n\n\n\n\n\n\n\n Jezeli to nie ty zapisywales sie do tego systemu mailingowego ziignoruj ta wiadomosc!";
  34. if(mail($email_do, $email_temat, $email_wiadomosc)){
  35. echo "<b>Na podany adres Mailowy został wysłany link aktywacyjny!</b>";
  36. } else {
  37. echo "<b>Wystąpił bład!</b>";
  38. }
  39. }
  40. ?>
johny_s
Jakiego typu masz pole w bazie? może przekraczasz zakres
bartek4175
Cytat(johny_s @ 25.05.2014, 19:51:23 ) *
Jakiego typu masz pole w bazie? może przekraczasz zakres

kod int(250)
kartin
Z pewności nie dodaje takiej wartości. Dodaje inną jednak ona przekracza maksymalną możliwą wartość dla tego pola w bazie i dlatego zostaje zapisana maksymalna wartość.
Zamiast INT użyj BIGINT.
bartek4175
Cytat(kartin @ 25.05.2014, 19:56:48 ) *
Z pewności nie dodaje takiej wartości. Dodaje inną jednak ona przekracza maksymalną możliwą wartość dla tego pola w bazie i dlatego zostaje zapisana maksymalna wartość.
Zamiast INT użyj BIGINT.

na maila dochodzą takie kody:
83800253541

a zapisuje takie:

2147483647



OK! Zmieniłem na brigint i działa smile.gif Dzięki smile.gif
by_ikar
Dla pól typu int nie istnieje limit ilości znaków jakby mogło to sugerować. Więc zapis typu int (250) nic nie daje, bo to typ pola określa jego limit (tinyint, smallint, int, bigint etc). Dodatkowo możesz użyć unsigned jeżeli nie będziesz przetrzymywać ujemnych wartości, co dodatkowo zwiększy zakres takiego pola.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.