PHP URL in Variable speichern
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
beispiel
code
datei
datenbank
double
eintragen
fehler
funktion
header
http
not
null
problem
server
service
treffer
url
variable speichern
zeichenkette
ziel
-
Hallo,
mal eine ganz kurze Frage im Bereich PHP von mir:
Ich habe bspw. eine .de Adresse bei einem Anbieter (www.meineAdresse.de) diese leitet weiter auf eine PHP-Datei bei Lima
Wenn die die Seite aufrufe per www.meineAdresse.de/111
Kann ich dann in der PHP Datei diese "111" in eine Variable speichern? und wenn ja, mit welcher Funktion?
Danke schon mal :-))
Beitrag zuletzt geändert: 16.12.2011 15:15:08 von kigollogik -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
alfr3d schrieb:
Ich verstehe dein Problem nicht ganz, du möchtest einfach den Verzeichnisnamen z.B. http://meineadresse.de/test/ in eine PHP-Variable speichern?
als Beispiel:
http://tinyurl.com/6lawp9 leitet auf http://www.lima-city.de/ weiter
Wie speichere ich diese angehängte Zeichenkette - 6lawp9 - in eine Variable?
Man hinterlegt ja nicht, für jede Mögliche Zeichenkette ein neues Verzeichnis, sondern arbeitet mit Datenbanken, hoffe ich
Beitrag zuletzt geändert: 16.12.2011 14:28:03 von kigollogik -
Mit dieser Funktion kannst du einzelne "Teile" einer URL extraieren.
http://php.net/manual/de/function.parse-url.php
Mit $_SEFVER['HTTP_REFERER'] kannst du (meistens) den Referer bekommen. -
Herzlichen Dank dir.
Thema kann somit als geschlossen betrachtet werden, solange bis ich mich wieder melde, sollten Probleme auftreten :-)
-
Hallo
ich dachte Du willst selber solche Links erstellen, naja ..
hier noch eine Beispiel ... eigener Short-URL-Service ....
<?php // ------------------------------------------- $key_length = 6; // ------------------------------------------- $db_host = ''; // ---- MySQL Server $db_user = ''; // ---- MySQL Username $db_pass = ''; // ---- MySQL Passwort $db_name = ''; // ---- MySQL Datenbank $db_prefix = 'su_'; $db_tabelle1 = $db_prefix.'links'; // ------------------------------------------- $con = mysql_connect($db_host, $db_user, $db_pass); if (!$con) { die('<br />Error ... Could not connect: <br />' . mysql_error()); exit; } $sel = mysql_select_db($db_name, $con); if (!$sel) { die('<br />Error ... Could not select: <br />' . mysql_error()); exit; } // ------------------------------------------- $setup1_sql = "CREATE TABLE IF NOT EXISTS `".$db_tabelle1."` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `url` varchar(255) NOT NULL, `ukey` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `ukey` (`ukey`), KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 "; $setup1_res = mysql_query($setup1_sql); if (!$setup1_res) { echo 'Error: Setup 1 <br />' . mysql_error(); exit; } // ------------------------------------------- // ------------------------------------------- if (!empty($_REQUEST['uid'])) { $gouid = trim(chop($_REQUEST['uid'])); $result1 = mysql_query("SELECT * FROM ".$db_tabelle1." WHERE id = '".$gouid."'"); $ergres1 = mysql_fetch_assoc($result1); $gourl = $ergres1['url']; header('Location: '.$gourl.''); ## echo "<br />........... Ziel: <a href=\"".$gourl."\">".$gourl."</a>\r\n"; exit; } // ------------------------------------------- if (!empty($_REQUEST['key'])) { $gokey = trim(chop($_REQUEST['key'])); $result2 = mysql_query("SELECT * FROM ".$db_tabelle1." WHERE ukey = '".$gokey."'"); $ergres2 = mysql_fetch_assoc($result2); $gourl = $ergres2['url']; header('Location: '.$gourl.''); ## echo "<br />........... Ziel: <a href=\"".$gourl."\">".$gourl."</a>\r\n"; exit; } // ------------------------------------------- // ------------------------------------------- function random_key($length) { if (empty($length)) { $length = 7; } $chars = 'abcdefghijklmnopqrstuvwxyz12345678901234567890'; $out = ''; $chars_length = strlen($chars)-1; mt_srand((double)microtime()*1000000); while(strlen($out) < $length){ $rand_char = mt_rand(0, $chars_length); $out .= $chars[$rand_char]; } return $out; } echo "<h2>HOME - <a href=\"index.php\">Start</a></h2>\r\n"; // ------------------------------------------- if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'new_url') { $gourl = trim(chop($_REQUEST['url'])); // --------------------------- if (empty($gourl) || $gourl == 'http://') { echo "<br /> Fehler ... bitte eine URL eintragen ... <a href=\"javascript:history.back();\">Zurück</a> \r\n"; exit; } else { $result1 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." WHERE url = '".$gourl."'"); $rcount1 = mysql_result($result1,0); // ------------------- if ( 0 < $rcount1 ) { echo "<br /> Fehler ... diese URL ist bereits eintragen ... <a href=\"javascript:history.back();\">Zurück</a> \r\n"; exit; } else { // ----- hier evtl. noch pruefen ob die neue URL erreichbar ist ---- $newkey = random_key($key_length); $result2 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." AS treffer WHERE ukey = '".$newkey."'"); $rowres2 = mysql_fetch_assoc($result2); $oldkey = $rowres2['treffer']; while ( $oldkey == 1 ) { $newkey = random_key($key_length); $result2 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." AS treffer WHERE ukey = '".$newkey."'"); $rowres2 = mysql_fetch_assoc($result2); $oldkey = $rowres2['treffer']; } $save_res = mysql_query("INSERT INTO ".$db_tabelle1." (url, ukey) VALUES ('".$gourl."', '".$newkey."')"); $neue_uid = mysql_insert_id(); echo "<br />OK\r\n"; echo "<br />\r\n"; echo "<br />ID: ".$neue_uid."\r\n"; echo "<br />URL: ".$gourl."\r\n"; echo "<br />KEY: ".$newkey."\r\n"; echo "<br />\r\n"; echo "<br />\r\n"; } // ------------------- } // --------------------------- // ------------------------------------------- } // ------------------------------------------- ?> <br> <br> <br> <form name="form1" method="post" action="index.php"> Link hinzufügen / Neue URL: <br> <br> <table width="540" border="0" cellspacing="2" cellpadding="2" bgcolor="#CCCCCC"> <tr align="left" valign="top"> <td width="54">URL:</td> <td width="342"> <input type="text" name="url" size="50" maxlength="250" value="http://"> <input type="hidden" name="action" value="new_url"> </td> <td width="142" align="center"> OK: <input type="submit" name="go" value="Speichern"> </td> </tr> </table> </form> <br> <br> <br> <?php // ------------------------------------------- $result_links = mysql_query("SELECT * FROM ".$db_tabelle1.""); $datalinks = array(); while($rowlinks = mysql_fetch_assoc($result_links)) { $datalinks[] = $rowlinks; } echo "<br />\r\n"; echo "<br />Alle Links: \r\n"; echo "<br />\r\n"; ## echo "<pre>\r\n"; ## print_r($datalinks); ## echo "</pre>\r\n"; foreach ($datalinks as $linkitem) { echo "<br /> "; echo "--- ID: <a href=\"index.php?uid=".$linkitem['id']."\" target=\"_blank\">".$linkitem['id']."</a> \r\n"; echo "--- URL: ".$linkitem['url']." \r\n"; echo "--- KEY: <a href=\"index.php?key=".$linkitem['ukey']."\" target=\"_blank\">".$linkitem['ukey']."</a> \r\n"; } echo "<br />\r\n"; echo "<br />\r\n"; // ------------------------------------------- ?>
erstellt je eingetragene URL eine ID (auto increment)
und einen n-Stelligen Zufalls-String (ukey)
beides kann für Rewrite-URLs verwendet werden ....
:)
Beitrag zuletzt geändert: 16.12.2011 16:53:11 von seofav -
seofav schrieb:
Hallo
ich dachte Du willst selber solche Links erstellen, naja ..
hier noch eine Beispiel ... eigener Short-URL-Service ....
<?php // ------------------------------------------- $key_length = 6; // ------------------------------------------- $db_host = ''; // ---- MySQL Server $db_user = ''; // ---- MySQL Username $db_pass = ''; // ---- MySQL Passwort $db_name = ''; // ---- MySQL Datenbank $db_prefix = 'su_'; $db_tabelle1 = $db_prefix.'links'; // ------------------------------------------- $con = mysql_connect($db_host, $db_user, $db_pass); if (!$con) { die('<br />Error ... Could not connect: <br />' . mysql_error()); exit; } $sel = mysql_select_db($db_name, $con); if (!$sel) { die('<br />Error ... Could not select: <br />' . mysql_error()); exit; } // ------------------------------------------- $setup1_sql = "CREATE TABLE IF NOT EXISTS `".$db_tabelle1."` ( `id` int(9) unsigned NOT NULL AUTO_INCREMENT, `url` varchar(255) NOT NULL, `ukey` varchar(20) NOT NULL, PRIMARY KEY (`id`), KEY `ukey` (`ukey`), KEY `url` (`url`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 "; $setup1_res = mysql_query($setup1_sql); if (!$setup1_res) { echo 'Error: Setup 1 <br />' . mysql_error(); exit; } // ------------------------------------------- // ------------------------------------------- if (!empty($_REQUEST['uid'])) { $gouid = trim(chop($_REQUEST['uid'])); $result1 = mysql_query("SELECT * FROM ".$db_tabelle1." WHERE id = '".$gouid."'"); $ergres1 = mysql_fetch_assoc($result1); $gourl = $ergres1['url']; header('Location: '.$gourl.''); ## echo "<br />........... Ziel: <a href=\"".$gourl."\">".$gourl."</a>\r\n"; exit; } // ------------------------------------------- if (!empty($_REQUEST['key'])) { $gokey = trim(chop($_REQUEST['key'])); $result2 = mysql_query("SELECT * FROM ".$db_tabelle1." WHERE ukey = '".$gokey."'"); $ergres2 = mysql_fetch_assoc($result2); $gourl = $ergres2['url']; header('Location: '.$gourl.''); ## echo "<br />........... Ziel: <a href=\"".$gourl."\">".$gourl."</a>\r\n"; exit; } // ------------------------------------------- // ------------------------------------------- function random_key($length) { if (empty($length)) { $length = 7; } $chars = 'abcdefghijklmnopqrstuvwxyz12345678901234567890'; $out = ''; $chars_length = strlen($chars)-1; mt_srand((double)microtime()*1000000); while(strlen($out) < $length){ $rand_char = mt_rand(0, $chars_length); $out .= $chars[$rand_char]; } return $out; } echo "<h2>HOME - <a href=\"index.php\">Start</a></h2>\r\n"; // ------------------------------------------- if (!empty($_REQUEST['action']) && $_REQUEST['action'] == 'new_url') { $gourl = trim(chop($_REQUEST['url'])); // --------------------------- if (empty($gourl) || $gourl == 'http://') { echo "<br /> Fehler ... bitte eine URL eintragen ... <a href=\"javascript:history.back();\">Zurück</a> \r\n"; exit; } else { $result1 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." WHERE url = '".$gourl."'"); $rcount1 = mysql_result($result1,0); // ------------------- if ( 0 < $rcount1 ) { echo "<br /> Fehler ... diese URL ist bereits eintragen ... <a href=\"javascript:history.back();\">Zurück</a> \r\n"; exit; } else { // ----- hier evtl. noch pruefen ob die neue URL erreichbar ist ---- $newkey = random_key($key_length); $result2 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." AS treffer WHERE ukey = '".$newkey."'"); $rowres2 = mysql_fetch_assoc($result2); $oldkey = $rowres2['treffer']; while ( $oldkey == 1 ) { $newkey = random_key($key_length); $result2 = mysql_query("SELECT COUNT(*) FROM ".$db_tabelle1." AS treffer WHERE ukey = '".$newkey."'"); $rowres2 = mysql_fetch_assoc($result2); $oldkey = $rowres2['treffer']; } $save_res = mysql_query("INSERT INTO ".$db_tabelle1." (url, ukey) VALUES ('".$gourl."', '".$newkey."')"); $neue_uid = mysql_insert_id(); echo "<br />OK\r\n"; echo "<br />\r\n"; echo "<br />ID: ".$neue_uid."\r\n"; echo "<br />URL: ".$gourl."\r\n"; echo "<br />KEY: ".$newkey."\r\n"; echo "<br />\r\n"; echo "<br />\r\n"; } // ------------------- } // --------------------------- // ------------------------------------------- } // ------------------------------------------- ?> <br> <br> <br> <form name="form1" method="post" action="index.php"> Link hinzufügen / Neue URL: <br> <br> <table width="540" border="0" cellspacing="2" cellpadding="2" bgcolor="#CCCCCC"> <tr align="left" valign="top"> <td width="54">URL:</td> <td width="342"> <input type="text" name="url" size="50" maxlength="250" value="http://"> <input type="hidden" name="action" value="new_url"> </td> <td width="142" align="center"> OK: <input type="submit" name="go" value="Speichern"> </td> </tr> </table> </form> <br> <br> <br> <?php // ------------------------------------------- $result_links = mysql_query("SELECT * FROM ".$db_tabelle1.""); $datalinks = array(); while($rowlinks = mysql_fetch_assoc($result_links)) { $datalinks[] = $rowlinks; } echo "<br />\r\n"; echo "<br />Alle Links: \r\n"; echo "<br />\r\n"; ## echo "<pre>\r\n"; ## print_r($datalinks); ## echo "</pre>\r\n"; foreach ($datalinks as $linkitem) { echo "<br /> "; echo "--- ID: <a href=\"index.php?uid=".$linkitem['id']."\" target=\"_blank\">".$linkitem['id']."</a> \r\n"; echo "--- URL: ".$linkitem['url']." \r\n"; echo "--- KEY: <a href=\"index.php?key=".$linkitem['ukey']."\" target=\"_blank\">".$linkitem['ukey']."</a> \r\n"; } echo "<br />\r\n"; echo "<br />\r\n"; // ------------------------------------------- ?>
Dankeschön. Nein, die Links zu erstellen ist kein Problem.
Aber danke für die Hilfe.
Wo ich mir gerade den Code anschaue, wäre es nicht besser/sicherer, wenn du MySQLi verwenden würdest?
Beitrag zuletzt geändert: 16.12.2011 17:02:44 von kigollogik -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage