Привет всем, опыта не хватает, но пытаюсь написать скрипт, который ищет строку с ключом и прописывает в переменную все ключи(слова) с той же строки. Txt содержит следующий текст-базу Код (Text): gydfgTEFdm|2yrhsykrw|8jktet|sjs5j SHrujhfd54|kftwrb|6hrh7|kfkrjdyrshd 575hfvng|fghyhrt|dfghfk|drh5j и т.д Например я ввожу в форму для ввода gydfgTEFdm (первая строка) жму кнопку и скрипт должен точно до знака | прописать это слово в переменную, все слова из строки до знака | прописать в переменные. И вывести результат примерно так: PHP: echo 'stolb1='.$stolb1; результат вывода примернотак- stolb1=gydfgTEFdm echo 'stolb2='.$stolb2; результат вывода примернотак- stolb2=2yrhsykrw echo 'stolb3='.$stolb3; результат вывода примернотак- stolb3=8jktet echo 'stolb4='.$stolb4; результат вывода примернотак- stolb4=sjs5j искать слова только по первому столбцу. Я слово ищу и если оно есть записываю в сессию следующим кодом пока что PHP: <form method="post"> <button type="sumbit" name="" value="" class="css3button">ok</button> <input type="text" name="name" /> </form> <?php $var = $_POST['name']; if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) { echo $_SESSION["name"]; echo "<p><a href='sess.php'>$var</a></p>"; } else echo "Error"; ?> в файле sess.php следующий код : PHP: <?php session_start(); echo $_SESSION['name']; ?> но при переходе на sess.php сессии не отображаются, почему? Помогите В одном из двух вопросов пацаны/мужики please
в первом файле (в котором форма) напиши session_start(); в начале. Да и записать что-то нужно в переменную эту. Например: PHP: $_SESSION['name'] = $_POST['name']; --- Добавлено --- А с переменными примерно так: PHP: $string = 'gydfgTEFdm|2yrhsykrw|8jktet|sjs5j SHrujhfd54|kftwrb|6hrh7|kfkrjdyrshd 575hfvng|fghyhrt|dfghfk|drh5j'; $array = explode('|', $string); if(in_array($_POST['name'], $array)) { $i = 1; foreach($array as $result) { echo "stolb$i=$result"; $i++; } } else { echo 'Error'; }
Не тот код скинул, он не рабочий сори, сессии были, не работал код, при переходе на страницу не выводит сессии. Вот код PHP: <html> <head> <link rel="icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" /favicon.ico" type="image/x-icon" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form method="POST"> <centr> <input type="text" name="login" /> <button type="sumbit" name="" value="" class="css3button">ok</button> </centr> </form> <?php session_start(); $var = $_POST['login']; //$_SESSION["name"] = "$var"; $_SESSION['name'] = $_POST['login']; if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) { echo $_SESSION["name"]; echo "<p><a href='sess.php'>$var</a></p>"; } else echo "Error"; ?> </body> </html> в принципе сеcсии отображаются после чтения файла txt , но после перехода на sess.php не выводит, при использовании обычного кода работает Код (Text): <?php session_start(); $_SESSION["test"] = "Php.ru"; ?> фаил sess.php Код (Text): <?php session_start(); echo $_SESSION['test']; ?> при переходе на sess.php выводит данные из сессии
@Fox-, сессию нужно стартовать до вывода чего-либо на страницу. А у вас сначала html выводится, а потом уже стартует сессия. Вот так должно работать: PHP: <?php session_start(); $var = $_POST['login']; $_SESSION['name'] = $var; ?> <html> <head> <link rel="icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" /favicon.ico" type="image/x-icon" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form method="POST"> <centr> <input type="text" name="login" /> <button type="sumbit" name="" value="" class="css3button">ok</button> </centr> </form> <?php if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) { echo $_SESSION["name"]; echo "<p><a href='sess.php'>$var</a></p>"; } else echo "Error"; ?> </body> </html>
Наконец-то, неужели заработало, я читал о том, что до кодов должен код старта сессии стоять, местами менял html и php коды, в начале php код размещал, но страница не отвечала. Спасибо) Код поиска по txt файлу у меня не работает, не выводит результат PHP: <html> <head> <link rel="icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" /favicon.ico" type="image/x-icon" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form method="POST"> <centr> <input type="text" name="login" /> <button type="sumbit" name="" value="" class="css3button">ok</button> </centr> </form> <?php $string = 'gydfgTEFdm|2yrhsykrw|8jktet|sjs5j SHrujhfd54|kftwrb|6hrh7|kfkrjdyrshd 575hfvng|fghyhrt|dfghfk|drh5j'; $array = explode('|', $string); if(in_array($_POST['name'], $array)) { $i = 1; foreach($array as $result) { echo "stolb$i=$result"; $i++; } } else { echo 'Error'; } ?> </html>
name на login заменил, отображает, но он отображает всё из переменной, а нужно 4 слова и в разных переменных каждое.. Возможно найти определенное слово из первого столбца и каждое слово с этой строки, которые разделены символом | передать в сессии ( в строке 4 слова) ?. Например искомое слово gydfgTEFdm, если это слово найдено( ищет по первому столбцу слова), то добавляет само искомое слово в сессию и те 3 слова которые рядом с права тоже в сессии, каждое слово добавить в отдельную сессию, что б была возможность вывести значение каждой сессии.
@Fox- PHP: <?php $string = 'gydfgTEFdm|2yrhsykrw|8jktet|sjs5j SHrujhfd54|kftwrb|6hrh7|kfkrjdyrshd 575hfvng|fghyhrt|dfghfk|drh5j'; $array = explode('|', $string); if($array[0] == $_POST['name']) { $i = 1; foreach($array as $result) { $_SESSION["stolb_$i"] = $result; $i++; } } else { echo 'Error'; } ?>
Спасибо, но этот код список весь список выводит. Попробую нагляднее привести пример Хотелось бы пробежаться кодом по никам(Alex123,Vova123,Sasha12) и если найден ник прописать сам ник в переменные и данные которые рядом,например ищу Sasha12 найти этот ник и данные именно с этой строки в отдельные переменные добавить,чтоб ник,город,почта,число - были в разных переменных. Если не найден ник то echo "ник не найден". Пример txt : Код (Text): Alex123|Moskva|Mail|50 Vova123|Ufa|Mail|70 Sasha12|Piter|Mail|1000 ники пользователей это, и рядом их данные, находим ник и все данные об этом пользователе в отдельную переменную прописываем -Город, mail , число. И спасибо, за то что помогаете
если у тебя data.txt с содержимым: Alex123|Moskva|Mail|50 Vova123|Ufa|Mail|70 Sasha12|Piter|Mail|1000 тогда читаешь файл в массив: PHP: $arrayDump = file("./data.txt", FILE_IGNORE_NEW_LINES); затем проходишься по массиву в цикле разбивая строку на подстроку и занося каждую подстроку в переменную PHP: foreach($arrayDump as $stringDump){ list($name, $city, $mail, $price) = explode("|", $stringDump); if($qwery == $name){ echo $name; echo $city; echo $mail; echo $price; } } вот рабочий вариант: PHP: <?php $qwery = "Sasha12"; $arrayDump = file("./data.dat", FILE_IGNORE_NEW_LINES); foreach ($arrayDump as $strDump) { list($name, $city, $mail, $price) = explode("|", $strDump); if (trim($name) == trim($qwery)) { echo $name."<br>"; echo $city."<br>"; echo $mail."<br>"; echo $price."<br>"; // break; } } ?> Но тут есть такой момент, если к примеру у тебя будет несколько одинаковых имен по которому будешь искать он выдаст все варианты , к примеру будет у тебя вот так: Sasha12|Piter|Mail|1000 Sasha12|Krasnodar|Mail|500 тебе выдаст их обоих, если нужен только первый попавшийся, то нужно раскомментировать break; Кроме всего этого если $qwery будет приходить из формы через GET или POST то нужно обязательно проверять то чтоприходит, на существование, пустая или нет наличие лишних символов и т.п. т.е. обезопасить себя от любой попытки вмешательства из вне!
почему код не работает, в чем ошибка? Код (Text): <?php session_start(); $var = $_POST['login']; $_SESSION['name'] = $var; ?> <html> <head> <link rel="icon" href="/favicon.ico" type="image/x-icon" /> <link rel="shortcut icon" /favicon.ico" type="image/x-icon" /> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> </head> <body> <form method="POST"> <centr> <input type="text" name="login" /> <button type="sumbit" name="login" value="" class="css3button">ok</button> </centr> </form> <?php if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) { echo $_SESSION["name"]; echo "<p><a href='sess.php'>$var</a></p>"; } else echo "Error"; if( isset( $_POST['login'] ) ) { $arrayDump = file("./test.txt", FILE_IGNORE_NEW_LINES); foreach ($arrayDump as $strDump) { list($name, $city, $mail, $price) = explode("|", $strDump); if (trim($name) == trim($var)) { echo $name."<br>"; echo $city."<br>"; echo $mail."<br>"; echo $price."<br>"; // break; } echo 'Кнопка нажата!'; } ?> </body> </html>
HTML: <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon" /> забыл href=" это проверь, скобки {} PHP: } else echo "Error"; if( isset( $_POST['login'] ) ) Там код вообще весь с ошибками написан, да и PHP: if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) почитай как работает strpos(), если у тебя будет имя к примеру Alex789, а в поиске будет Alex7 или Alex или Alex78 или lex7 и т.п. то всё это прокатит как истина (TRUE), а потом при проходе в цикле где будет искаться точное совпадение это будет FALSE Я не считаю себя каким-то профессиональным программистом, так любитель, но чтоб в этом деле разбираться нужно не просить кого-то писать код, а ковырять его самому в поисках того или иного косяка, быть параноиком и не стараться закидывать на сервер то, в чем до конца не разобрался т.к. это чревато не приятными последствиями. А еще, по правилам хорошего тона, в качестве благодарности можно ставить большой палец вверх так сказать в карму помогающего или отвечающего.
@AlexandrS об этом я знаю PHP: if (strpos(file_get_contents("/storage/ssd3/042/1566042/public_html/1/list-installs.txt"), $var)) код поиска всего слова до знака | нужен, по этому я и просил, как найти текст. Пока хотя бы так. --- Добавлено --- PHP: } { else echo "Error"; } if( isset( $_POST['login'] ) ) или как не помогло
в конце не закрыта была 1 скобка --- Добавлено --- @AlexandrS Спасибо, от души, + к карме естественно не только виртуально, но и реально для души)))