Felix Опубликовано 5 Ноября 2004 Автор Жалоба Поделиться Опубликовано 5 Ноября 2004 А как ссылку в базу добавить?Есть форма с выбором типа (ftp,http и тд)При передаче данных скрипту ему надо узнать какой тип указали и вставить ссылку типа вот как я нарисовал (правда это не работает )if ($HTTP_GET_VARS["type"] == "ftp") { { $remote = $REMOTE_ADDR; $add = "<a href='ftp://$remote'>перейти</a>"; $type = $add; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; else { echo "error."; exit; } } } Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Cepera Опубликовано 5 Ноября 2004 Жалоба Поделиться Опубликовано 5 Ноября 2004 после $add = "<a href='ftp://$remote'>перейти</a>";добавить$add = str_replace("'", "\'", $add); Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Felix Опубликовано 5 Ноября 2004 Автор Жалоба Поделиться Опубликовано 5 Ноября 2004 Все равно гад не хочет ип-адреса в ссылки конвертировать... ( Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Cepera Опубликовано 5 Ноября 2004 Жалоба Поделиться Опубликовано 5 Ноября 2004 задача не ясна Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Felix Опубликовано 5 Ноября 2004 Автор Жалоба Поделиться Опубликовано 5 Ноября 2004 (изменено) Объясню поподробнее. При заполнении формы юзер указывает значения (ftp,http,radio,games,samba)После нажатия submit данные отправляются скрипту, который их обрабатывает и добавляет в бд.сам скрипт ниже<?php require_once ('ini.php'); mysql_connect ("$host", "$user_db", "$pass_db"); mysql_select_db("$dbase"); $type = $HTTP_GET_VARS["type"]; $name = $HTTP_GET_VARS["name"]; $description = $HTTP_GET_VARS["description"]; $password = $HTTP_GET_VARS["password"]; $ip = $REMOTE_ADDR; $dns = $HTTP_GET_VARS["dns"]; $lan = $HTTP_GET_VARS["lan"]; $time = $HTTP_GET_VARS["time"]; $icq = $HTTP_GET_VARS["icq"]; $ipdetect = $REMOTE_ADDR; // проверки на отсутствие заполнения форм. # 1. // dns-имя, возвращает else если не указано. if ((!$dns) || ($dns < 0)) { $dns = 'Не указан'; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } else { $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } # 2. // описание, возвращает else если не указано. if ((!$description) || ($description < 0)) { $description = 'Не указано'; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } else { $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } # 3. // сегмент\сеть, возвращает else если не указана. if ((!$lan) || ($lan < 0)) { $lan = 'Не указана'; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } else { $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } # 4. // время работы, возвращает else если не указано. if ((!$time) || ($time < 0)) { $time = 'Не указано'; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } else { $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } # 5. // icq-номер владельца, возвращает else если не указано. if ((!$icq) || ($icq < 0)) { $icq = 'Не указан'; $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } else { $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; } // Проверка на отсутствие заполнения необходимых форм. // Name if ((!$name) || ($name < 0)) { { echo "Вы не указали имя ресурса! Вернитесь назад и повторите попытку."; exit; } } // Password if ((!$password) || ($password < 0)) { { echo "Вы не указали пароль! Вернитесь назад и повторите попытку."; exit; } } // А теперь будем вставлять ип как ссылку в зависимости от типа ресурса. if ($HTTP_GET_VARS["type"] == "ftp") { { $remote = $REMOTE_ADDR; $type = $add; $add = "<a href='ftp://$remote'>перейти</a>"; $add = str_replace("'", "\'", $add); $sql = "INSERT INTO $dtable (id,type,name,description,ip,dns,lan,time,icq,ipdetect,password) "; $sql .= "VALUES ('','$type','$name','$description','$ip','$dns','$lan','$time','$icq','$ipdetect','$password')"; echo "error."; exit; } } $result = mysql_query($sql); if(!$result) { echo "<H2>Ошибка!</H2>\n"; echo mysql_errno().": ".mysql_error()."<P>"; } else { print "<META HTTP-EQUIV=\"Refresh\" CONTENT=\"2; URL=index.php\">"; echo "Ресурс <b>$name</b> был успешно добавлен! Переходим на главную страницу..."; } ?> Задача: вставить введенные данные в форме в базу данных как ссылку вида ,a href='Ip-адрес добавившего'>перейти</a>Ип-адрес в форме передается и добавляется в бд автоматически через $REMOTE_ADDR.Вроде все. Изменено 5 Ноября 2004 пользователем Felix Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Cepera Опубликовано 5 Ноября 2004 Жалоба Поделиться Опубликовано 5 Ноября 2004 во-первых, сразу замените везде $HTTP_GET_VARS на $_GET во-вторых, уже говорил, лучше от GET отказываться и переходить к POST, переменные могут быть длиннее 56 символов дальше$remote = $REMOTE_ADDR;меняем на$remote = $_SERVER['REMOTE_ADDR']; $add = "<a href='ftp://$remote'>перейти</a>";меняем на$add = "<a href=\"ftp://".$remote."\">перейти</a>"; в таком случае след. строку можно опустить$add = str_replace("'", "\'", $add); а дальше уже надо добавлять везде эхо (echo) и смотреть, что и где передается/получается Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Felix Опубликовано 5 Ноября 2004 Автор Жалоба Поделиться Опубликовано 5 Ноября 2004 Вообщем все хорошо, спасибо, правда ссылка так и не отображается, сам я подозреваю это или в if ($HTTP_GET_VARS["type"] == "ftp") { или в бд надо не varchar указать... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.