Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Skracanie Linków, nie mod_rewrite!
Forum PHP.pl > Forum > Przedszkole
fredzio90
a wiec wpadlem na pomysł aby zrobić coś w podobie do tego:

http://www.byy.pl/

lecz niewiem od czego sie zabrac.... podpowiedzielibyscie jakie funkcje mi sie przydadza...
np. aby generować 3 znakowy dowolny ciąg.. np 4sd...
aby wylosowany ciąg nie powtarzal sie z wpisem znajdujacym się już w bazie...

od czego mam zacząć questionmark.gif

mam tkaie pytanie.. jak mam zoribć aby gdy ktoś nie wpisze nic do formualrza generowało automatycznie kilku znakowy ciąg questionmark.gif
ponieważ zrobiłem już wszytsko tylko niewiem wlasnie jak ten poblem rozwikłac....
Michal2000
Dlaczego nie mod_rewrite? Ten plik też można generować za pomocą php, co prawda nie jest to zbyt wydajne, ale powinno wystarczyć. Możesz też tworzyć foldery i w nim plik index.php z przekierowaniem, ale to też nie jest najlepszy pomysł. Mozesz też zmieniać w konfiguracji Apache (czy innego serwera) przekierowania. Nic innego mi di głowy nie przychodzi. Albo możesz zapisywać te linki do bazy danych, a jako stronę błędu 404 dac skrypt php, który pobierze adres błędnej strony, sformatuje go, sprawdzi czy w w bazie danych jest jakieś odwołanie, i jeśli jest to wtedy przekierowuje na odpowiednią stronę.
fredzio90
tak dziękuje już zrobiłem... ale mam jedne pytanko jescze pomodziłem z tymi rzeczami i wyszło mi takie coś:

  1. <?php
  2. function url_add_sql() {
  3. global $url_new, $url_old, $s_url_tbl, $PHP_SELF, $REMOTE_ADDR, $id, $adres;
  4.  
  5. $sqlIns = mysql_query("INSERT INTO $s_url_tbl SET old='$url_old', ip='$REMOTE_ADDR', data=now()");
  6.  
  7. $tabelka = '1234567890qwertyuiopasdfghjkklzxcvbnm';
  8. $id = '';
  9. for ($i=0; $i<3; $i++)
  10. {
  11.  $liczba .= $tabelka[rand()%(strlen($tabelka))];
  12. }
  13.  
  14. */ Pocztątek mojego kombinowania z tym */
  15.  
  16. $sprZap = "SELECT * FROM $s_url_tbl WHERE old='$url_old'"; //
  17. $rr = @mysql_fetch_array($sprZap); //
  18.  
  19. $nnew = $rr['new']; //
  20.  
  21. */ a tutaj skończyłem.... */
  22.  
  23.  
  24. if($url_new=='') {
  25. $sqlIns_n = mysql_query("UPDATE $s_url_tbl SET new='$liczba' WHERE old='$url_old'");
  26. } else {
  27. $sqlIns_n = mysql_query("UPDATE $s_url_tbl SET new='$url_new' WHERE old='$url_old'");
  28. }
  29.  
  30.  
  31.  
  32. if($sqlIns_n AND $sqlIns) {
  33. echo '<br><center>Dziękujemy, twoje zgłoszenie zostało przyjęte.<br><br><b>Twój Stary adres</b>: '.$url_old.' <br>
  34. <b>Twój Nowy Adres</b>: '.$adres.''.$PHP_SELF.'?url=';
  35. if($url_new<>'') {
  36. echo ''.$url_new.'';
  37. } else {
  38. echo ''.$liczba.'';
  39. }
  40.  
  41. echo '<br><br><br><center><a href="'.$PHP_SELF.'">Short URL</a></center>';
  42. } else {
  43. echo '<br><center>Niestety nie udało się przyjąć twojego zgłoszenia na stronie!.<br> Skontaktuj się z <a href="mailer.php">Administratorem</a><br><br><a href="'.$PHP_SELF.'">Short URL</a></center>';
  44. }
  45. }
  46. ?>


i jak moge ejecze do tego pola zaminowanego if-ami dodać jescze sprawdzanie że if($nnew==$url_new) { echo'komunikat';}


coś w tym stylu.. aby działał kod.. ;D

PS. $url_new pochodiz z formularza....., tak jak $url_old
$liczba jest to kod gdy nikt nie wpsial do pola $url_new i jest on generowany i dodawany do bazy..
Michal2000
A w jaki sposób rozwiązałeś ten problem?
fredzio90
wiecie moze jak objąc ten kod :

  1. <?php
  2. if($url_new=='') {
  3. $sqlIns_n = mysql_query("UPDATE $s_url_tbl SET new='$liczba' WHERE old='$url_old'");
  4. } else {
  5. $sqlIns_n = mysql_query("UPDATE $s_url_tbl SET new='$url_new' WHERE old='$url_old'");
  6. }
  7. ?>


dodatkowo jescze jednym ifem questionmark.gif
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.