1<?php 2$_SERVER['BASE_PAGE'] = 'mailing-lists.php'; 3include_once __DIR__ . '/include/prepend.inc'; 4include_once __DIR__ . '/include/posttohost.inc'; 5include_once __DIR__ . '/include/email-validation.inc'; 6 7$SIDEBAR_DATA = ' 8<h3>Would like to unsubscribe yourself?</h3> 9 10<p> 11 If you have trouble getting off from any of our mailing lists, or 12 would like to unsubscribe from a mailing list not listed here, we 13 have more information for you on <a href="/unsub.php">the 14 unsubscription page</a>. 15</p> 16 17<h3>Other PHP related mailing lists</h3> 18 19<p> 20 Find the <a href="http://pear.php.net/support/lists.php">PEAR 21 lists</a>, the <a href="http://pecl.php.net/support.php">PECL 22 lists</a>, and the <a href="http://gtk.php.net/resources.php">PHP-GTK 23 lists</a> on their own pages. 24</p> 25 26<a id="local"></a> 27<h3>Local Mailing Lists and Newsgroups</h3> 28 29<ul class="toc"> 30 <li><a href="http://groups.google.com/group/dk.edb.internet.webdesign.serverside.php/topics">Danish Newsgroup</a></li> 31 <li><a href="http://groups.google.com/group/fr.comp.lang.php/topics">French Newsgroup</a></li> 32 <li><a href="http://lists.phpbar.de/mailman/listinfo">German Mailing List</a></li> 33 <li><a href="http://groups.google.com/group/de.comp.lang.php.misc/topics">German Newsgroup</a> (also other topics under de.comp.lang.php)</li> 34 <li><a href="http://groups.yahoo.com/group/php_greek/">Greek Mailing List</a></li> 35 <li><a href="http://weblabor.hu/levlistak">Hungarian Mailing List</a></li> 36 <li><a href="http://www.domeus.it/circles/php">Italian Mailing List (at PHPItalia)</a></li> 37 <li><a href="http://ml.php.gr.jp/">The Japanese PHP User Group\'s Mailing lists</a></li> 38 <li><a href="http://br.groups.yahoo.com/group/php-pt/">Portuguese Mailing List</a></li> 39</ul> 40'; 41 42site_header("Mailing Lists", ["current" => "help"]); 43 44// Some mailing list is selected for [un]subscription 45if (isset($_POST['action'])) { 46 47 // No error found yet 48 $error = ""; 49 50 // Check email address 51 if (empty($_POST['email']) || $_POST['email'] == 'user@example.com' || 52 $_POST['email'] == 'fake@from.net' || !is_emailable_address($_POST['email'])) { 53 $error = "You forgot to specify an email address to be added to the list, or specified an invalid address." . 54 "<br>Please go back and try again."; 55 } 56 57 // Check if any mailing list was selected 58 elseif (empty($_POST['maillist'])) { 59 $error = "You need to select at least one mailing list to subscribe to." . 60 "<br>Please go back and try again."; 61 } 62 63 // Seems to be a valid email address 64 else { 65 66 // Decide on request mode, email address part and IP address 67 $request = strtolower($_POST['action']); 68 if ($request != "subscribe" && $request != "unsubscribe") { 69 $request = "subscribe"; 70 } 71 $remote_addr = i2c_realip(); 72 73 // Get in contact with main server to [un]subscribe the user 74 $result = posttohost( 75 "https://main.php.net/entry/subscribe.php", 76 [ 77 "request" => $request, 78 "email" => $_POST['email'], 79 "maillist" => $_POST['maillist'], 80 "remoteip" => $remote_addr, 81 "referer" => $MYSITE . "mailing-lists.php", 82 ], 83 ); 84 85 // Provide error if unable to [un]subscribe 86 if ($result) { 87 $error = "We were unable to subscribe you due to some technical problems.<br>" . 88 "Please try again later."; 89 } 90 } 91 92 // Give error information or success report 93 if (!empty($error)) { 94 echo "<p class=\"formerror\">$error</p>"; 95 } else { 96?> 97<p> 98 A request has been entered into the mailing list processing queue. You 99 should receive an email at <?php echo clean($_POST['email']); ?> shortly describing 100 how to complete your request. 101</p> 102<?php 103 } 104 site_footer(); 105 exit; 106} 107 108// No form submitted 109?> 110<h1>Mailing Lists</h1> 111 112<p> 113 There are many PHP-related mailing lists available on our server. 114 Most of them are archived, and all of them are available as newsgroups 115 on our <a href="news://news.php.net">news server</a>. You can search 116 some mailing lists right from this website from <a href="/search.php">the 117 search page</a> or by using the search input box selecting the 118 appropriate option on the top-right of every page. 119</p> 120<p> 121 There is an experimental web interface for the news server at 122 <a href="http://news.php.net/">http://news.php.net/</a>, and 123 there are also other archives provided by 124 <a href="http://marc.info/">Marc</a>. 125</p> 126 127<h2>Twitter</h2> 128<p> 129 The PHP team maintains an official PHP.net account on twitter, 130 <a href="https://twitter.com/official_php">@official_php</a>, for those 131 interested in following news and other announcements from the PHP project. 132</p> 133 134<h2>Mailing List Posting guidelines</h2> 135 136<p> 137 When posting to mailing lists or newsgroups, please keep the following in mind: 138</p> 139 140<ul> 141 <li> 142 Use a valid email address. Every new poster's email address 143 is checked for validity through confirmation. 144 </li> 145 <li> 146 Send plain ASCII messages, no HTML-formatted emails please. 147 </li> 148 <li> 149 Turn on word wrapping so your entire message doesn't show up on 150 a single line. 151 </li> 152 <li> 153 Be sure to click <strong>Reply-All</strong> to reply to list. Clicking 154 <strong>Reply</strong> will email the author of the message privately. 155 </li> 156 <li> 157 No attachments please, just post a URL if you want someone to 158 look at something. 159 </li> 160 <li> 161 Don't GPG/PGP sign your messages. If you want people to be able 162 to send you encrypted email, stick your key-locator in your signature 163 </li> 164 <li> 165 Don't hijack other peoples' threads. To post on a new topic, start 166 a new message, don't reply and just change the subject. 167 </li> 168 <li> 169 Check the archives before posting a question, chances are it has 170 already been asked and answered a few times. 171 </li> 172 <li> 173 When asking a question, don't just tell us, "it doesn't work". 174 Tell us what you are trying to accomplish, a <strong>short</strong> code 175 snippet showing how you tried to solve it, what you expected to get and 176 what you got instead. 177 </li> 178</ul> 179<p> 180 And make sure you have read our 181 <a href="https://github.com/php/php-src/blob/master/docs/mailinglist-rules.md">Mailinglist Rules</a>. 182</p> 183<?php 184 185 // array of lists (list, name, short desc., moderated, archive, digest, newsgroup) 186 $general_mailing_lists = [ 187 188 'General mailing lists for PHP users', 189 [ 190 'php-announce', 'Announcements', 191 'Announcements of new PHP releases are sent to this very low-volume list', 192 true, false, false, "php.announce", 193 ], 194 [ 195 'php-general', 'General user list', 196 'This is a high volume list for general PHP support; ask PHP questions here', 197 false, true, true, "php.general", 198 ], 199 [ 200 'php-windows', 'Windows PHP users list', 201 'Using PHP on Microsoft Windows', 202 false, true, true, "php.windows", 203 ], 204 205 'Subject specific lists for PHP users', 206 [ 207 'php-install', 'Installation issues and problems', 208 'How to install PHP with particular configurations and servers', 209 false, true, true, "php.install", 210 ], 211 [ 212 'php-db', 'Databases and PHP', 213 'This list is for the discussion of PHP database topics', 214 false, true, true, "php.db", 215 ], 216 [ 217 'php-i18n', 'Unicode and Internationalization', 218 'Unicode support, Internationalization (i18n) and localization (l10n) issues and features', 219 false, true, true, "php.i18n", 220 ], 221 [ 222 'php-evangelism', 'PHP evangelism mailing list', 223 'A list for people interested in promoting PHP and learning good reasons to support PHP in the enterprise', 224 true, true, true, "php.evangelism", 225 ], 226 [ 227 'soap', 'PHP SOAP list', 228 'List for the SOAP developers', 229 false, false, false, 'php.soap', 230 ], 231 'Non-English language mailing lists', 232 [ 233 'php-es', 'Spanish PHP Mailing list', 234 'List for Spanish speaking people interested in PHP', 235 false, false, false, 'php.general.es', 236 ], 237 238 ]; 239 240 // array of lists (list, name, short desc., moderated, archive, digest, newsgroup) 241 $internals_mailing_lists = [ 242 243 'PHP and Zend Engine internals lists', 244 [ 245 'internals', 'Internals list', 246 'A medium volume list for those who want to help out with the development of PHP', 247 false, 'php-internals', true, "php.internals", 248 ], 249 [ 250 'internals-win', 'Windows Internals list', 251 'A low volume list for those who want to help out with the development of PHP on Windows', 252 false, false, true, "php.internals.win", 253 ], 254 [ 255 'php-cvs', 'Git commit list', 256 'All commits to internals (php-src) and the Zend Engine are posted to this list automatically', 257 true, true, false, "php.cvs", 258 ], 259 [ 260 'git-pulls', 'Git pull requests', 261 'Pull requests from Github', 262 false, false, false, "php.git-pulls", 263 ], 264 [ 265 'php-qa', 'Quality Assurance list', 266 'List for the members of the PHP-QA Team', 267 false, true, false, "php.qa", 268 ], 269 [ 270 'php-bugs', 'General bugs', 271 'General bug activity are posted here', 272 false, false, false, "php.bugs", 273 ], 274 [ 275 'standards', 'PHP Standardization and interoperability list', 276 'Development of language standards', 277 false, false, false, "php.standards", 278 ], 279 280 'PHP internal website mailing lists', 281 [ 282 'php-webmaster', 'PHP php.net internal infrastructure discussion', 283 'List for discussing and maintaining the php.net web infrastructure.<br> 284 For general PHP support questions, see "General Mailing Lists" or the <a href="/support.php">support page</a>', 285 false, false, false, "php.webmaster", 286 ], 287 288 'PHP documentation mailing lists', 289 [ 290 'phpdoc', 'Documentation discussion', 291 'List for discussing the PHP documentation', 292 false, true, false, "php.doc", 293 ], 294 [ 295 'doc-cvs', 'Documentation changes and commits', 296 'Changes to the documentation are posted here', 297 true, "php-doc-cvs", false, "php.doc.cvs", 298 ], 299 [ 300 'doc-bugs', 'Documentation bugs', 301 'Documentation bug activity (translations, sources, and build system) are posted here', 302 true, 'php-doc-bugs', false, "php.doc.bugs", 303 ], 304 ]; 305 306// Print out a table for a given list array 307function output_lists_table($mailing_lists): void 308{ 309 echo '<table cellpadding="5" border="0" class="standard mailing-lists">', "\n"; 310 foreach ($mailing_lists as $listinfo) { 311 if (!is_array($listinfo)) { 312 echo "<tr><th>{$listinfo}</th><th>Moderated</th><th>Archive</th>" . 313 "<th>Newsgroup</th><th>Normal</th><th>Digest</th></tr>\n"; 314 } else { 315 echo '<tr align="center">'; 316 echo '<td align="left"><strong>' . $listinfo[1] . '</strong> <small><<a href="mailto:' . $listinfo[0] . '@lists.php.net">' . $listinfo[0] . '@lists.php.net</a>></small><br><small>' . $listinfo[2] . '</small></td>'; 317 echo '<td>' . ($listinfo[3] ? 'yes' : 'no') . '</td>'; 318 319 // Let the list name defined with a string, if the 320 // list is archived under a different name then php.net 321 // uses for it (for backward compatibilty for example) 322 if ($listinfo[4] !== false) { 323 $larchive = ($listinfo[4] === true ? $listinfo[0] : $listinfo[4]); 324 } else { $larchive = false; } 325 echo '<td>' . ($larchive ? "<a href=\"http://marc.info/?l={$larchive}\">yes</a>" : 'n/a') . '</td>'; 326 echo '<td>' . ($listinfo[6] ? "<a href=\"news://news.php.net/{$listinfo[6]}\">yes</a> <a href=\"http://news.php.net/group.php?group={$listinfo[6]}\">http</a>" : 'n/a') . '</td>'; 327 echo '<td><input name="maillist" type="radio" value="' . $listinfo[0] . '"></td>'; 328 echo '<td>' . ($listinfo[5] ? '<input name="maillist" type="radio" value="' . $listinfo[0] . '-digest">' : 'n/a') . '</td>'; 329 echo "</tr>\n"; 330 } 331 } 332 echo "</table>\n"; 333} 334 335?> 336 337<form method="post" action="/mailing-lists.php"> 338 339<h2 id="general">General Mailing Lists</h2> 340 341<?php output_lists_table($general_mailing_lists); ?> 342 343<h2 id="internals">Internals Mailing Lists</h2> 344 345<?php output_lists_table($internals_mailing_lists); ?> 346 347<p class="center"> 348 <strong>Email:</strong> 349 <input type="text" name="email" size="40" value="user@example.com"> 350 <input type="submit" name="action" value="Subscribe"> 351 <input type="submit" name="action" value="Unsubscribe"> 352</p> 353 354</form> 355 356<p> 357 You will be sent a confirmation mail at the address you wish to 358 be subscribed or unsubscribed, and only added to the list after 359 following the directions in that mail. 360</p> 361 362<p> 363 <strong>Warning:</strong> The PHP users mailing list gets close to 1500-2000 364 messages per month currently. Do the math. That translates to about 60 365 messages per day. If your mailbox can't handle this sort of traffic you 366 might want to consider subscribing to the digest list instead (two messages 367 per day), using the news server, or reading the mailing list using the 368 archives. 369</p> 370 371<h2>Subscribe via Email</h2> 372 373<p> 374 If you experience trouble subscribing via the form above, you may also 375 subscribe by sending an email to the list server. 376 To subscribe to any mailing list, send an email to 377 <code><em>listname</em>+subscribe@lists.php.net</code> 378 (substituting the name of the list for <code><em>listname</em></code> 379 — for example, <code>php-general+subscribe@lists.php.net</code>). 380</p> 381 382<h2>Mailing list options</h2> 383 384<p> 385 All of the mailing lists hosted at <a 386 href="http://lists.php.net/">lists.php.net</a> are managed using the <a 387 href="http://mlmmj.org/">mlmmj</a> mailing list software. 388 There are a variety of commands you can use to modify your subscription. 389 Either send a message to <code>php-whatever+help@lists.php.net</code> (as in, 390 <code>php-general+help@lists.php.net</code>).</a> 391</p> 392 393<?php site_footer(); ?> 394